From 766d4d0c082cc9bca68d4221f9be21b49475e330 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Wed, 22 Nov 2023 17:00:20 +0100 Subject: [PATCH 01/97] chore: start investigating LTE vs v0.4 See https://github.com/ooni/probe/issues/2628 See https://github.com/ooni/probe/issues/2634 --- internal/experiment/webconnectivitylte/cleartextflow.go | 2 +- internal/experiment/webconnectivitylte/secureflow.go | 8 +++++++- internal/experiment/webconnectivitylte/testkeys.go | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/experiment/webconnectivitylte/cleartextflow.go b/internal/experiment/webconnectivitylte/cleartextflow.go index 8ec7cc663c..57650736e5 100644 --- a/internal/experiment/webconnectivitylte/cleartextflow.go +++ b/internal/experiment/webconnectivitylte/cleartextflow.go @@ -274,7 +274,7 @@ func (t *CleartextFlow) httpTransaction(ctx context.Context, network, address, a err, finished, ) - t.TestKeys.AppendRequests(ev) + t.TestKeys.PrependRequests(ev) return resp, body, err } diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index 6284eca649..be5800ef6c 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -107,6 +107,10 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { // create trace trace := measurexlite.NewTrace(index, t.ZeroTime) + // TODO(bassosimone): the DSL starts measuring for throttling when we start + // fetching the body while here we start immediately. We should come up with + // a consistent policy otherwise data won't be comparable. + // start measuring throttling sampler := throttling.NewSampler(trace) defer func() { @@ -329,7 +333,7 @@ func (t *SecureFlow) httpTransaction(ctx context.Context, network, address, alpn err, finished, ) - t.TestKeys.AppendRequests(ev) + t.TestKeys.PrependRequests(ev) return resp, body, err } @@ -344,6 +348,8 @@ func (t *SecureFlow) maybeFollowRedirects(ctx context.Context, resp *http.Respon if err != nil { return // broken response from server } + // TODO(https://github.com/ooni/probe/issues/2628): we need to handle + // the care where the redirect URL is incomplete t.Logger.Infof("redirect to: %s", location.String()) resolvers := &DNSResolvers{ CookieJar: t.CookieJar, diff --git a/internal/experiment/webconnectivitylte/testkeys.go b/internal/experiment/webconnectivitylte/testkeys.go index dd2e5be31a..71ccd711be 100644 --- a/internal/experiment/webconnectivitylte/testkeys.go +++ b/internal/experiment/webconnectivitylte/testkeys.go @@ -217,8 +217,8 @@ func (tk *TestKeys) AppendQueries(v ...*model.ArchivalDNSLookupResult) { tk.mu.Unlock() } -// AppendRequests appends to Requests. -func (tk *TestKeys) AppendRequests(v ...*model.ArchivalHTTPRequestResult) { +// PrependRequests appends to Requests. +func (tk *TestKeys) PrependRequests(v ...*model.ArchivalHTTPRequestResult) { tk.mu.Lock() // Implementation note: append at the front since the most recent // request must be at the beginning of the list. From f3701a0a4f4f846c58f8c43085ffd7e766a0b253 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 10:31:06 +0100 Subject: [PATCH 02/97] document why some QA tests with redirects are broken --- .../webconnectivitylte/analysishttpcore.go | 8 +++++++ .../webconnectivitylte/secureflow.go | 23 ++++++++++++++++++- .../experiment/webconnectivityqa/redirect.go | 2 +- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/internal/experiment/webconnectivitylte/analysishttpcore.go b/internal/experiment/webconnectivitylte/analysishttpcore.go index 8d7d34c9e2..aa7ea46f74 100644 --- a/internal/experiment/webconnectivitylte/analysishttpcore.go +++ b/internal/experiment/webconnectivitylte/analysishttpcore.go @@ -5,6 +5,8 @@ package webconnectivitylte // import ( + "log" + "github.com/ooni/probe-cli/v3/internal/model" "github.com/ooni/probe-cli/v3/internal/netxlite" ) @@ -33,6 +35,12 @@ func (tk *TestKeys) analysisHTTPToplevel(logger model.Logger) { finalRequest := tk.Requests[0] tk.HTTPExperimentFailure = finalRequest.Failure + { + for idx, req := range tk.Requests { + log.Printf("REQUEST STACK: #%d %s", idx, req.Request.URL) + } + } + // don't perform any futher analysis without TH data if tk.Control == nil || tk.ControlRequest == nil { return diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index be5800ef6c..c544d957af 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -104,6 +104,27 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { return err } + // TODO(bassosimone): we're missing high-level information about the + // transaction, which implies we are missing failed HTTP requests + // to compare to, which causes netemx integration tests such as this + // + // TestQA/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP + // + // to fail because they cannot find the corresponding request to + // compare to. Therefore, in such a test case, we incorrectly say + // that bit.ly is accessible where instead we should conclude + // there's blocking at the TCP/IP level. + // + // An initial fix for this issue probably relies on making sure + // that we don't conclude there is a success when the actual + // endpoint fails. However, I think there are broader ooni/data + // implications at stake here. The fact that we do not have a + // request violates the assumptions of the analysis code we have + // written, which means, whatever we do, we need to respect the + // previously agreed conventions in some way. + // + // For this reason, any fix for this should be carefully thought out. + // create trace trace := measurexlite.NewTrace(index, t.ZeroTime) @@ -349,7 +370,7 @@ func (t *SecureFlow) maybeFollowRedirects(ctx context.Context, resp *http.Respon return // broken response from server } // TODO(https://github.com/ooni/probe/issues/2628): we need to handle - // the care where the redirect URL is incomplete + // the case where the redirect URL is incomplete t.Logger.Infof("redirect to: %s", location.String()) resolvers := &DNSResolvers{ CookieJar: t.CookieJar, diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index 0f265090fd..03b5656f47 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -11,7 +11,7 @@ import ( func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionRefusedForHTTP", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/32447", Configure: func(env *netemx.QAEnv) { From f1cc4bbd73a19b484c5dd6c6d2ac24fdd31dc2b6 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 10:40:57 +0100 Subject: [PATCH 03/97] document more doubts about emmitting events --- internal/experiment/webconnectivitylte/secureflow.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index c544d957af..a5f22493ad 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -323,6 +323,11 @@ func (t *SecureFlow) httpTransaction(ctx context.Context, network, address, alpn txp model.HTTPTransport, req *http.Request, trace *measurexlite.Trace) (*http.Response, []byte, error) { const maxbody = 1 << 19 started := trace.TimeSince(trace.ZeroTime()) + // TODO(bassosimone): I am wondering whether we should have the HTTP transaction + // start at the beginning of the flow rather than here. If we start it at the + // beginning this is nicer, but, at the same time, starting it at the beginning + // of the flow means we're not collecting information about DNS. So, I am a + // bit torn about what is the best approach to follow here. t.TestKeys.AppendNetworkEvents(measurexlite.NewAnnotationArchivalNetworkEvent( trace.Index(), started, "http_transaction_start", )) From 0b2203d4dda09ad22087761ee5f1bcbf5623055f Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 10:47:14 +0100 Subject: [PATCH 04/97] document more caveats --- internal/experiment/webconnectivitylte/secureflow.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index a5f22493ad..9e0ee3ae6d 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -206,6 +206,17 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { netxlite.NewSingleUseTLSDialer(tlsConn), ) + // TODO(bassosimone): the request we're creating here is bound to the httpCtx + // context. So, if we choose to create the request earlier, then we should make + // sure that here we are assigning the correct context to the request. + // + // Additionally, and maybe tangentially, I am wondering whether we should + // separate a request and a response inside the dataset. This would make it + // possible to create the request early and provide the response when it + // becomes available. Though, this means we don't have anymore an HTTP + // structure according to the archival data format and instead we have to + // generate it on the fly, which comes with its own drawbacks. + // create HTTP request const httpTimeout = 10 * time.Second httpCtx, httpCancel := context.WithTimeout(parentCtx, httpTimeout) From 8eb1ba1313a4a4e160d09ac5d79768ac4ec65a16 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 10:47:58 +0100 Subject: [PATCH 05/97] [ci skip] remember to update files in sync --- internal/experiment/webconnectivitylte/secureflow.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index 9e0ee3ae6d..adfaf20a31 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -206,6 +206,9 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { netxlite.NewSingleUseTLSDialer(tlsConn), ) + // TODO(bassosimone): whatever changes we apply here, we also need to + // apply the same changes inside the cleartextflow.go file. + // TODO(bassosimone): the request we're creating here is bound to the httpCtx // context. So, if we choose to create the request earlier, then we should make // sure that here we are assigning the correct context to the request. From 92eb7b7cfddf20816c11cc817a01207fe5d6c824 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 11:32:09 +0100 Subject: [PATCH 06/97] doc: document more doubts that I have --- internal/experiment/webconnectivitylte/secureflow.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index adfaf20a31..8cf95150e4 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -124,6 +124,13 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { // previously agreed conventions in some way. // // For this reason, any fix for this should be carefully thought out. + // + // I cannot know which is the request that will win the race and + // attempt measuring HTTP/HTTPS. Also, I cannot create records for + // all requests because that would break the fastpath, which assumes + // that requests[0] is the latest request in a linear chain. So, I + // need somehow to introduce a request into the test keys in a different + // way. Yet, how do I know which connection I am going to use? // create trace trace := measurexlite.NewTrace(index, t.ZeroTime) From ea0d3bf2db2f1d92ad2e4264c2c556b3e839200d Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 15:00:29 +0100 Subject: [PATCH 07/97] [ci skip] more documentation on what to do --- internal/experiment/webconnectivitylte/cleartextflow.go | 1 + internal/experiment/webconnectivitylte/secureflow.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/internal/experiment/webconnectivitylte/cleartextflow.go b/internal/experiment/webconnectivitylte/cleartextflow.go index 57650736e5..55045ee527 100644 --- a/internal/experiment/webconnectivitylte/cleartextflow.go +++ b/internal/experiment/webconnectivitylte/cleartextflow.go @@ -120,6 +120,7 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) if err != nil { + // TODO(bassosimone): add failed HTTP request to the heap ol.Stop(err) return err } diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index 8cf95150e4..31da071bc6 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -97,6 +97,9 @@ func (t *SecureFlow) Start(ctx context.Context) { }() } +// TODO(bassosimone): document the heap-like organization of the +// requests that we plan on adding to webconnectivity. + // Run runs this task in the current goroutine. func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { if err := allowedToConnect(t.Address); err != nil { @@ -159,6 +162,7 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) if err != nil { + // TODO(bassosimone): add failed HTTP request to the heap ol.Stop(err) return err } @@ -189,6 +193,7 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { tlsConn, err := tlsHandshaker.Handshake(tlsCtx, tcpConn, tlsConfig) t.TestKeys.AppendTLSHandshakes(trace.TLSHandshakes()...) if err != nil { + // TODO(bassosimone): add failed HTTP request to the heap ol.Stop(err) return err } @@ -199,6 +204,7 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { // Determine whether we're allowed to fetch the webpage if t.PrioSelector == nil || !t.PrioSelector.permissionToFetch(t.Address) { + // TODO(bassosimone): add failed HTTP request to the heap ol.Stop("stop after TLS handshake") return errNotPermittedToFetch } From fd06406afea22230de41c53fd71cf8922a882d5d Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 15:36:33 +0100 Subject: [PATCH 08/97] feat: progress towards fixing some fundamental issues --- .../webconnectivitylte/analysishttpcore.go | 1 + .../webconnectivitylte/cleartextflow.go | 53 +++++++++---- .../webconnectivitylte/httpfailure.go | 28 +++++++ .../webconnectivitylte/secureflow.go | 76 ++++++++++++++----- .../experiment/webconnectivityqa/redirect.go | 4 +- 5 files changed, 125 insertions(+), 37 deletions(-) create mode 100644 internal/experiment/webconnectivitylte/httpfailure.go diff --git a/internal/experiment/webconnectivitylte/analysishttpcore.go b/internal/experiment/webconnectivitylte/analysishttpcore.go index aa7ea46f74..794bfbd871 100644 --- a/internal/experiment/webconnectivitylte/analysishttpcore.go +++ b/internal/experiment/webconnectivitylte/analysishttpcore.go @@ -58,6 +58,7 @@ func (tk *TestKeys) analysisHTTPToplevel(logger model.Logger) { switch *failure { case netxlite.FailureConnectionReset, netxlite.FailureGenericTimeoutError, + netxlite.FailureConnectionRefused, netxlite.FailureEOFError: tk.BlockingFlags |= analysisFlagHTTPBlocking logger.Warnf( diff --git a/internal/experiment/webconnectivitylte/cleartextflow.go b/internal/experiment/webconnectivitylte/cleartextflow.go index 55045ee527..55b4ef1f4b 100644 --- a/internal/experiment/webconnectivitylte/cleartextflow.go +++ b/internal/experiment/webconnectivitylte/cleartextflow.go @@ -8,6 +8,7 @@ package webconnectivitylte import ( "context" + "errors" "io" "net" "net/http" @@ -97,6 +98,18 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { return err } + httpReq, err := t.newHTTPRequest() + if err != nil { + if t.Referer == "" { + // when the referer is empty, the failing URL comes from our backend + // or from the user, so it's a fundamental failure. After that, we + // are dealing with websites provided URLs, so we should not flag a + // fundamental failure, because we want to see the measurement submitted. + t.TestKeys.SetFundamentalFailure(err) + } + return err + } + // create trace trace := measurexlite.NewTrace(index, t.ZeroTime) @@ -120,7 +133,15 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) if err != nil { - // TODO(bassosimone): add failed HTTP request to the heap + // TODO(bassosimone): document why we're adding a request to the heap here + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + err, + )) ol.Stop(err) return err } @@ -133,6 +154,15 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { // Determine whether we're allowed to fetch the webpage if t.PrioSelector == nil || !t.PrioSelector.permissionToFetch(t.Address) { + // TODO(bassosimone): document why we're adding a request to the heap here + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + errors.New("http_request_canceled"), // TODO(bassosimone): define this error + )) ol.Stop("stop after TCP connect") return errNotPermittedToFetch } @@ -147,22 +177,13 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { netxlite.NewNullTLSDialer(), ) - // create HTTP request + // create HTTP context const httpTimeout = 10 * time.Second httpCtx, httpCancel := context.WithTimeout(parentCtx, httpTimeout) defer httpCancel() - httpReq, err := t.newHTTPRequest(httpCtx) - if err != nil { - if t.Referer == "" { - // when the referer is empty, the failing URL comes from our backend - // or from the user, so it's a fundamental failure. After that, we - // are dealing with websites provided URLs, so we should not flag a - // fundamental failure, because we want to see the measurement submitted. - t.TestKeys.SetFundamentalFailure(err) - } - ol.Stop(err) - return err - } + + // make sure the request uses the context + httpReq = httpReq.WithContext(httpCtx) // perform HTTP transaction httpResp, httpRespBody, err := t.httpTransaction( @@ -209,7 +230,7 @@ func (t *CleartextFlow) urlHost(scheme string) (string, error) { } // newHTTPRequest creates a new HTTP request. -func (t *CleartextFlow) newHTTPRequest(ctx context.Context) (*http.Request, error) { +func (t *CleartextFlow) newHTTPRequest() (*http.Request, error) { const urlScheme = "http" urlHost, err := t.urlHost(urlScheme) if err != nil { @@ -221,7 +242,7 @@ func (t *CleartextFlow) newHTTPRequest(ctx context.Context) (*http.Request, erro Path: t.URLPath, RawQuery: t.URLRawQuery, } - httpReq, err := http.NewRequestWithContext(ctx, "GET", httpURL.String(), nil) + httpReq, err := http.NewRequest("GET", httpURL.String(), nil) if err != nil { return nil, err } diff --git a/internal/experiment/webconnectivitylte/httpfailure.go b/internal/experiment/webconnectivitylte/httpfailure.go new file mode 100644 index 0000000000..4d0ef73cf4 --- /dev/null +++ b/internal/experiment/webconnectivitylte/httpfailure.go @@ -0,0 +1,28 @@ +package webconnectivitylte + +import ( + "net/http" + + "github.com/ooni/probe-cli/v3/internal/measurexlite" + "github.com/ooni/probe-cli/v3/internal/model" +) + +// TODO(bassosimone): document this func +func newArchivalHTTPRequestResultWithError(trace *measurexlite.Trace, network, address, alpn string, + req *http.Request, err error) *model.ArchivalHTTPRequestResult { + duration := trace.TimeSince(trace.ZeroTime()) + return measurexlite.NewArchivalHTTPRequestResult( + trace.Index(), + duration, + network, + address, + alpn, + network, // TODO(bassosimone): get rid of this duplicate field? + req, + nil, + 0, + nil, + err, + duration, + ) +} diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index 31da071bc6..0540ce0778 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -9,6 +9,7 @@ package webconnectivitylte import ( "context" "crypto/tls" + "errors" "io" "net" "net/http" @@ -107,6 +108,21 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { return err } + // Create the request early such that we can immediately bail in case + // it's broken and such that we can insert it into the heap in case there + // is a failure when connecting or TLS handshaking. + httpReq, err := t.newHTTPRequest() + if err != nil { + if t.Referer == "" { + // when the referer is empty, the failing URL comes from our backend + // or from the user, so it's a fundamental failure. After that, we + // are dealing with websites provided URLs, so we should not flag a + // fundamental failure, because we want to see the measurement submitted. + t.TestKeys.SetFundamentalFailure(err) + } + return err + } + // TODO(bassosimone): we're missing high-level information about the // transaction, which implies we are missing failed HTTP requests // to compare to, which causes netemx integration tests such as this @@ -162,7 +178,17 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) if err != nil { - // TODO(bassosimone): add failed HTTP request to the heap + // TODO(bassosimone): document why we're adding a request to the heap here + if t.PrioSelector != nil { + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + err, + )) + } ol.Stop(err) return err } @@ -193,7 +219,17 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { tlsConn, err := tlsHandshaker.Handshake(tlsCtx, tcpConn, tlsConfig) t.TestKeys.AppendTLSHandshakes(trace.TLSHandshakes()...) if err != nil { - // TODO(bassosimone): add failed HTTP request to the heap + // TODO(bassosimone): document why we're adding a request to the heap here + if t.PrioSelector != nil { + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + err, + )) + } ol.Stop(err) return err } @@ -204,7 +240,17 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { // Determine whether we're allowed to fetch the webpage if t.PrioSelector == nil || !t.PrioSelector.permissionToFetch(t.Address) { - // TODO(bassosimone): add failed HTTP request to the heap + // TODO(bassosimone): document why we're adding a request to the heap here + if t.PrioSelector != nil { + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + errors.New("http_request_canceled"), // TODO(bassosimone): define this error + )) + } ol.Stop("stop after TLS handshake") return errNotPermittedToFetch } @@ -233,22 +279,13 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { // structure according to the archival data format and instead we have to // generate it on the fly, which comes with its own drawbacks. - // create HTTP request + // create HTTP context const httpTimeout = 10 * time.Second httpCtx, httpCancel := context.WithTimeout(parentCtx, httpTimeout) defer httpCancel() - httpReq, err := t.newHTTPRequest(httpCtx) - if err != nil { - if t.Referer == "" { - // when the referer is empty, the failing URL comes from our backend - // or from the user, so it's a fundamental failure. After that, we - // are dealing with websites provided URLs, so we should not flag a - // fundamental failure, because we want to see the measurement submitted. - t.TestKeys.SetFundamentalFailure(err) - } - ol.Stop(err) - return err - } + + // make sure the context owns the request + httpReq = httpReq.WithContext(httpCtx) // perform HTTP transaction httpResp, httpRespBody, err := t.httpTransaction( @@ -315,7 +352,7 @@ func (t *SecureFlow) urlHost(scheme string) (string, error) { } // newHTTPRequest creates a new HTTP request. -func (t *SecureFlow) newHTTPRequest(ctx context.Context) (*http.Request, error) { +func (t *SecureFlow) newHTTPRequest() (*http.Request, error) { const urlScheme = "https" urlHost, err := t.urlHost(urlScheme) if err != nil { @@ -327,7 +364,7 @@ func (t *SecureFlow) newHTTPRequest(ctx context.Context) (*http.Request, error) Path: t.URLPath, RawQuery: t.URLRawQuery, } - httpReq, err := http.NewRequestWithContext(ctx, "GET", httpURL.String(), nil) + httpReq, err := http.NewRequest("GET", httpURL.String(), nil) if err != nil { return nil, err } @@ -354,7 +391,8 @@ func (t *SecureFlow) httpTransaction(ctx context.Context, network, address, alpn // start at the beginning of the flow rather than here. If we start it at the // beginning this is nicer, but, at the same time, starting it at the beginning // of the flow means we're not collecting information about DNS. So, I am a - // bit torn about what is the best approach to follow here. + // bit torn about what is the best approach to follow here. Maybe it does not + // even matter to emit transaction_start/end events given that we have transaction ID. t.TestKeys.AppendNetworkEvents(measurexlite.NewAnnotationArchivalNetworkEvent( trace.Index(), started, "http_transaction_start", )) diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index 03b5656f47..199314cc69 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -11,7 +11,7 @@ import ( func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionRefusedForHTTP", - Flags: 0, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/32447", Configure: func(env *netemx.QAEnv) { @@ -37,7 +37,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 8320, // StatusExperimentHTTP | StatusAnomalyConnect XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, From ad757147fd9aeca479ef403373cfb6dc64218d6a Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 15:39:27 +0100 Subject: [PATCH 09/97] resolve one more test case --- internal/experiment/webconnectivityqa/redirect.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index 199314cc69..f2c50beb95 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -49,7 +49,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { func redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -75,7 +75,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 8320, // StatusExperimentHTTP | StatusAnomalyConnect XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, From d6cbfd996c13c871f3ecc3cba56108c7b619422c Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 15:59:58 +0100 Subject: [PATCH 10/97] more fixes --- .../experiment/webconnectivityqa/redirect.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index f2c50beb95..248a3c29ea 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -125,7 +125,7 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTP() *TestCase { func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionResetForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -162,8 +162,12 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { // works but then there's NXDOMAIN for the URL's domain func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { return &TestCase{ - Name: "redirectWithConsistentDNSAndThenNXDOMAIN", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Name: "redirectWithConsistentDNSAndThenNXDOMAIN", + // TODO(bassosimone): this test case cannot be fixed by providing a suitable HTTP + // response because we do not create any HTTP response during the DNS step. We would + // need to create one in order for this test case to become green. In turn, I think + // to overcome this case, we need to restructure LTE's implementation a bit. + Flags: TestCaseFlagNoLTE, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -232,7 +236,7 @@ func redirectWithConsistentDNSAndThenEOFForHTTP() *TestCase { func redirectWithConsistentDNSAndThenEOFForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenEOFForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -258,7 +262,7 @@ func redirectWithConsistentDNSAndThenEOFForHTTPS() *TestCase { HTTPExperimentFailure: "eof_error", XStatus: 8448, // StatusExperimentHTTP | StatusAnomalyReadWrite XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, @@ -309,7 +313,7 @@ func redirectWithConsistentDNSAndThenTimeoutForHTTP() *TestCase { func redirectWithConsistentDNSAndThenTimeoutForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenTimeoutForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/21645", LongTest: true, Configure: func(env *netemx.QAEnv) { @@ -336,7 +340,7 @@ func redirectWithConsistentDNSAndThenTimeoutForHTTPS() *TestCase { HTTPExperimentFailure: "generic_timeout_error", XStatus: 8704, // StatusExperimentHTTP | StatusAnomalyUnknown XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, From 41fbd3f280215e625fc353278fba42f34f0c0c47 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 16:10:53 +0100 Subject: [PATCH 11/97] doc: explain issues caused by adding HTTP response We're introducing failure modes that do not exist hence it seems this is not the correct way of moving forward. --- internal/experiment/webconnectivityqa/tcpblocking.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/experiment/webconnectivityqa/tcpblocking.go b/internal/experiment/webconnectivityqa/tcpblocking.go index dc568f9d10..9bc89515ec 100644 --- a/internal/experiment/webconnectivityqa/tcpblocking.go +++ b/internal/experiment/webconnectivityqa/tcpblocking.go @@ -11,7 +11,11 @@ import ( // where the connection is timed out. func tcpBlockingConnectTimeout() *TestCase { return &TestCase{ - Name: "tcpBlockingConnectTimeout", + Name: "tcpBlockingConnectTimeout", + // TODO(bassosimone): this test case transitions from 2 (TCP/IP blocking) to + // 10 (both TCP/IP blocking and HTTP blocking). The reason why this happens is + // that we're now adding an HTTP request to the mix. This is unfortunate. We + // should not flag HTTP failures here inside of the bitmask. Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { From e5e4c3756bdcbc200d3f282bbf03263a38b341bf Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 23 Nov 2023 23:36:43 +0100 Subject: [PATCH 12/97] try to sketch out an ooni/data-inspired pipeline I'm doing this mainly to explore whether we could have more robust webconnectivity v0.5 analysis code --- internal/pipeline/canonical.go | 42 ++++ internal/pipeline/db.go | 185 ++++++++++++++++ internal/pipeline/dns.go | 78 +++++++ internal/pipeline/headers.go | 12 + internal/pipeline/qa_test.go | 39 ++++ internal/pipeline/testdata/youtube.json | 1 + internal/pipeline/testdata/youtube_db.json | 1 + internal/pipeline/th.go | 152 +++++++++++++ internal/pipeline/web.go | 246 +++++++++++++++++++++ 9 files changed, 756 insertions(+) create mode 100644 internal/pipeline/canonical.go create mode 100644 internal/pipeline/db.go create mode 100644 internal/pipeline/dns.go create mode 100644 internal/pipeline/headers.go create mode 100644 internal/pipeline/qa_test.go create mode 100644 internal/pipeline/testdata/youtube.json create mode 100644 internal/pipeline/testdata/youtube_db.json create mode 100644 internal/pipeline/th.go create mode 100644 internal/pipeline/web.go diff --git a/internal/pipeline/canonical.go b/internal/pipeline/canonical.go new file mode 100644 index 0000000000..39fe839a58 --- /dev/null +++ b/internal/pipeline/canonical.go @@ -0,0 +1,42 @@ +package pipeline + +import ( + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// CanonicalMeasurement is the canonical measurement structure assumed +// by the probe-engine data processing pipeline. +type CanonicalMeasurement struct { + // Input contains the input we measured. + Input string `json:"input"` + + // TestKeys contains the test-specific measurements. + TestKeys optional.Value[*CanonicalTestKeys] `json:"test_keys"` +} + +// CanonicalTestKeys is the canonical container for observations +// generated by most OONI experiments. This is the data format ingested +// by this package for generating, e.g., [*WebEndpointObservations] +type CanonicalTestKeys struct { + // Control contains the OPTIONAL TH response. + Control optional.Value[*model.THResponse] `json:"control"` + + // NetworkEvents contains I/O events. + NetworkEvents []*model.ArchivalNetworkEvent `json:"network_events"` + + // Queries contains the DNS queries results. + Queries []*model.ArchivalDNSLookupResult `json:"queries"` + + // Requests contains HTTP request results. + Requests []*model.ArchivalHTTPRequestResult `json:"requests"` + + // TCPConnect contains the TCP connect results. + TCPConnect []*model.ArchivalTCPConnectResult `json:"tcp_connect"` + + // TLSHandshakes contains the TLS handshakes results. + TLSHandshakes []*model.ArchivalTLSOrQUICHandshakeResult `json:"tls_handshakes"` + + // QUICHandshakes contains the QUIC handshakes results. + QUICHandshakes []*model.ArchivalTLSOrQUICHandshakeResult `json:"quic_handshakes"` +} diff --git a/internal/pipeline/db.go b/internal/pipeline/db.go new file mode 100644 index 0000000000..b13a7ef676 --- /dev/null +++ b/internal/pipeline/db.go @@ -0,0 +1,185 @@ +package pipeline + +import ( + "errors" + "net/url" + + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// DB is a database containing observations. +// +// This struct is not goroutine safe. The zero value is invalid. Use the +// [NewDB] to construct a valid instance. +type DB struct { + dnsByTxID map[int64]*DNSObservation + thDNSAddrs map[string]bool + thDNSFailure *string + thEpntByEpnt map[string]*EndpointObservationTH + thWeb optional.Value[*WebObservationTH] + urlHostname string + webByTxID map[int64]*WebEndpointObservation + webFinalRequest optional.Value[*WebEndpointObservation] +} + +// NewObservationsDB constructs a new [*DB] instance. +func NewDB() *DB { + return &DB{ + dnsByTxID: map[int64]*DNSObservation{}, + thDNSAddrs: map[string]bool{}, + thDNSFailure: nil, + thEpntByEpnt: map[string]*EndpointObservationTH{}, + thWeb: optional.None[*WebObservationTH](), + urlHostname: "", + webByTxID: map[int64]*WebEndpointObservation{}, + webFinalRequest: optional.None[*WebEndpointObservation](), + } +} + +// Ingest ingests measurement results and populates the database. +func (db *DB) Ingest(m *CanonicalMeasurement) error { + // Extra the hostname from the input URL + URL, err := url.Parse(m.Input) + if err != nil { + return err + } + db.urlHostname = URL.Hostname() + + // Obtain the test keys or stop early + tk := m.TestKeys.UnwrapOr(nil) + if tk == nil { + return nil + } + + // Build knowledge about existing TCP endpoints + if err := db.addNetworkEventsTCPConnect(tk.NetworkEvents...); err != nil { + return err + } + if err := db.addTLSHandshakeEvents(tk.TLSHandshakes...); err != nil { + return err + } + + // Build knowledge about QUIC endpoints + if err := db.addQUICHandshakeEvents(tk.QUICHandshakes...); err != nil { + return err + } + + // Enrich dataset with HTTP round trips information + if err := db.addHTTPRoundTrips(tk.Requests...); err != nil { + return err + } + + // Build knowledge about DNS lookups. + if err := db.addDNSLookups(tk.Queries...); err != nil { + return err + } + + // Process a control response if available + if thResp := tk.Control.UnwrapOr(nil); thResp != nil { + // Add DNS results first + if err := db.thAddDNS(thResp); err != nil { + return err + } + + // Then create TCP connect entries + if err := db.thAddTCPConnect(thResp); err != nil { + return err + } + + // Then extend information using TLS + if err := db.thAddTLSHandshake(thResp); err != nil { + return err + } + + // Finally, add information about HTTP + if err := db.thAddHTTPResponse(thResp); err != nil { + return err + } + } + + // Cross reference data structures. + db.buildXrefsDNS() + db.buildXrefTH() + if err := db.maybeFindFinalRequest(); err != nil { + return err + } + + return nil +} + +func (db *DB) buildXrefsDNS() { + // map addresses to who resolved them + addrToGetaddrinfo := make(map[string][]*DNSObservation) + addrToUDP := make(map[string][]*DNSObservation) + addrToHTTPS := make(map[string][]*DNSObservation) + for _, dobs := range db.dnsByTxID { + switch dobs.Engine { + case "system", "getaddrinfo", "golang_net_resolver", "go": + for _, addr := range dobs.IPAddrs { + addrToGetaddrinfo[addr] = append(addrToGetaddrinfo[addr], dobs) + } + + case "udp": + for _, addr := range dobs.IPAddrs { + addrToUDP[addr] = append(addrToUDP[addr], dobs) + } + + case "doh": + for _, addr := range dobs.IPAddrs { + addrToHTTPS[addr] = append(addrToHTTPS[addr], dobs) + } + } + } + + // create cross references inside the endpoints + for _, wobs := range db.webByTxID { + wobs.DNSLookupGetaddrinfoXref = addrToGetaddrinfo[wobs.IPAddress] + wobs.DNSLookupUDPXref = addrToUDP[wobs.IPAddress] + wobs.DNSLookupHTTPSXref = addrToHTTPS[wobs.IPAddress] + } +} + +func (db *DB) buildXrefTH() { + for _, wobs := range db.webByTxID { + // create cross references with TH DNS lookups + _, ok := db.thDNSAddrs[wobs.IPAddress] + wobs.DNSLookupTHXref = ok + + // create cross references with TH endpoints + if xref, ok := db.thEpntByEpnt[wobs.Endpoint]; ok { + wobs.THEndpointXref = optional.Some(xref) + } + } +} + +var errMultipleFinalRequests = errors.New("analysis: multiple final requests") + +func (db *DB) maybeFindFinalRequest() error { + // find all the possible final request candidates + var finals []*WebEndpointObservation + for _, wobs := range db.webByTxID { + switch code := wobs.HTTPResponseStatusCode.UnwrapOr(0); code { + case 0, 301, 302, 307, 308: + // this is a redirect or a nonexisting response in the case of zero + + default: + // found candidate + finals = append(finals, wobs) + } + } + + // Implementation note: the final request is a request that is not a redirect and + // we expect to see just one of them. This code is written assuming we will have + // more than a final request in the future and to fail in such a case. + switch { + case len(finals) > 1: + return errMultipleFinalRequests + + case len(finals) == 1: + db.webFinalRequest = optional.Some(finals[0]) + return nil + + default: + return nil + } +} diff --git a/internal/pipeline/dns.go b/internal/pipeline/dns.go new file mode 100644 index 0000000000..55638ee0b8 --- /dev/null +++ b/internal/pipeline/dns.go @@ -0,0 +1,78 @@ +package pipeline + +import ( + "github.com/ooni/probe-cli/v3/internal/model" +) + +// DNSObservation is a DNS observation made by the probe. +// +// Optional values represent data that may not be there if we do not +// find the expected events. Non-optional data should always be there. +// +// This type is inspired by and adapted from https://github.com/ooni/data +// and adapts the WebObservation type to probe-engine. +type DNSObservation struct { + // TransactionID is the ID of the transaction. + TransactionID int64 + + // QueryType is the DNS query type (e.g., "A"). + QueryType string + + // Failure is the failure that occurred. + Failure *string + + // Engine is the engined used by the probe to lookup. + Engine string + + // ResolverAddress contains the resolver endpoint address. + ResolverAddress string + + // IPAddrs contains the resolved IP addresses. + IPAddrs []string + + // T0 is when we started performing the lookup. + T0 float64 + + // T is when the lookup completed. + T float64 +} + +func (db *DB) addDNSLookups(evs ...*model.ArchivalDNSLookupResult) error { + for _, ev := range evs { + dobs, err := db.newDNSObservation(ev.TransactionID) + if err != nil { + return err + } + dobs.QueryType = ev.QueryType + dobs.Failure = ev.Failure + dobs.Engine = ev.Engine + dobs.ResolverAddress = ev.ResolverAddress + dobs.T0 = ev.T0 + dobs.T = ev.T + + for _, ans := range ev.Answers { + switch ans.AnswerType { + case "A": + dobs.IPAddrs = append(dobs.IPAddrs, ans.IPv4) + + case "AAAA": + dobs.IPAddrs = append(dobs.IPAddrs, ans.IPv6) + + default: + // nothing + } + } + } + return nil +} + +func (db *DB) newDNSObservation(txid int64) (*DNSObservation, error) { + if _, good := db.webByTxID[txid]; good { + return nil, errTransactionAlreadyExists + } + dobs := &DNSObservation{ + TransactionID: txid, + } + db.dnsByTxID[txid] = dobs + return dobs, nil +} diff --git a/internal/pipeline/headers.go b/internal/pipeline/headers.go new file mode 100644 index 0000000000..1a838efdcd --- /dev/null +++ b/internal/pipeline/headers.go @@ -0,0 +1,12 @@ +package pipeline + +// HeaderOrigin indicates the header origin +type HeaderOrigin int64 + +const ( + // HeaderOriginProbe indicates that the header was seen by the probe + HeaderOriginProbe = HeaderOrigin(1 << iota) + + // HeaderOriginTH indicates that the header was seen by the TH + HeaderOriginTH +) diff --git a/internal/pipeline/qa_test.go b/internal/pipeline/qa_test.go new file mode 100644 index 0000000000..4669389798 --- /dev/null +++ b/internal/pipeline/qa_test.go @@ -0,0 +1,39 @@ +package pipeline + +import ( + "fmt" + "path/filepath" + + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/optional" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +type flatDB struct { + XdnsByTxID map[int64]*DNSObservation + XthEpntByEpnt map[string]*EndpointObservationTH + XthWeb optional.Value[*WebObservationTH] + XwebByTxID map[int64]*WebEndpointObservation +} + +func Example() { + rawJSON := must.ReadFile(filepath.Join("testdata", "youtube.json")) + var meas CanonicalMeasurement + must.UnmarshalJSON(rawJSON, &meas) + + db := NewDB() + runtimex.Try0(db.Ingest(&meas)) + + fdb := &flatDB{ + XdnsByTxID: db.dnsByTxID, + XthEpntByEpnt: db.thEpntByEpnt, + XthWeb: db.thWeb, + XwebByTxID: db.webByTxID, + } + rawDB := must.MarshalJSON(fdb) + must.WriteFile(filepath.Join("testdata", "youtube_db.json"), rawDB, 0600) + + fmt.Printf("true\n") + // Output: + // true +} diff --git a/internal/pipeline/testdata/youtube.json b/internal/pipeline/testdata/youtube.json new file mode 100644 index 0000000000..f19a0cfeaf --- /dev/null +++ b/internal/pipeline/testdata/youtube.json @@ -0,0 +1 @@ +{"annotations":{"architecture":"arm64","engine_name":"ooniprobe-engine","engine_version":"3.20.0-alpha","go_version":"go1.20.11","platform":"macos","vcs_modified":"true","vcs_revision":"41fbd3f280215e625fc353278fba42f34f0c0c47","vcs_time":"2023-11-23T15:10:53Z","vcs_tool":"git"},"data_format_version":"0.2.0","extensions":{"dnst":0,"httpt":0,"netevents":0,"tcpconnect":0,"tlshandshake":0,"tunnel":0},"input":"https://www.youtube.com/","measurement_start_time":"2023-11-23 18:26:42","probe_asn":"AS30722","probe_cc":"IT","probe_ip":"127.0.0.1","probe_network_name":"Vodafone Italia S.p.A.","report_id":"20231123T182642Z_webconnectivity_IT_30722_n1_KHv4e5lLWrluBMke","resolver_asn":"AS30722","resolver_ip":"91.80.36.88","resolver_network_name":"Vodafone Italia S.p.A.","software_name":"miniooni","software_version":"3.20.0-alpha","test_helpers":{"backend":{"address":"https://2.th.ooni.org","type":"https"}},"test_keys":{"agent":"redirect","client_resolver":"","retries":null,"socksproxy":null,"network_events":[{"address":"216.58.209.46:443","failure":null,"operation":"connect","proto":"tcp","t0":0.396053,"t":0.411923,"transaction_id":7},{"failure":null,"operation":"tls_handshake_start","t0":0.411989,"t":0.411989,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.412338,"t":0.412402,"transaction_id":7},{"address":"142.251.209.46:443","failure":null,"operation":"connect","proto":"tcp","t0":0.395832,"t":0.413203,"transaction_id":6},{"failure":null,"operation":"tls_handshake_start","t0":0.41324,"t":0.41324,"transaction_id":6},{"address":"142.251.209.46:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.413554,"t":0.41359,"transaction_id":6},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":0.395951,"t":0.415468,"transaction_id":13},{"failure":null,"operation":"tls_handshake_start","t0":0.415515,"t":0.415515,"transaction_id":13},{"address":"142.250.180.174:443","failure":null,"operation":"connect","proto":"tcp","t0":0.39635,"t":0.41553,"transaction_id":4},{"failure":null,"operation":"tls_handshake_start","t0":0.415573,"t":0.415573,"transaction_id":4},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.415824,"t":0.415886,"transaction_id":13},{"address":"142.250.180.174:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.415893,"t":0.415931,"transaction_id":4},{"address":"[2a00:1450:4002:403::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":0.396408,"t":0.416441,"transaction_id":9},{"failure":null,"operation":"tls_handshake_start","t0":0.416468,"t":0.416468,"transaction_id":9},{"address":"[2a00:1450:4002:416::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":0.396461,"t":0.416484,"transaction_id":11},{"failure":null,"operation":"tls_handshake_start","t0":0.416512,"t":0.416512,"transaction_id":11},{"address":"[2a00:1450:4002:403::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.416766,"t":0.416797,"transaction_id":9},{"address":"[2a00:1450:4002:416::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.416866,"t":0.416917,"transaction_id":11},{"address":"[2a00:1450:4002:410::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":0.396471,"t":0.417629,"transaction_id":10},{"failure":null,"operation":"tls_handshake_start","t0":0.417656,"t":0.417656,"transaction_id":10},{"address":"[2a00:1450:4002:410::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.417959,"t":0.417998,"transaction_id":10},{"address":"142.250.180.142:443","failure":null,"operation":"connect","proto":"tcp","t0":0.396707,"t":0.418861,"transaction_id":15},{"failure":null,"operation":"tls_handshake_start","t0":0.418894,"t":0.418894,"transaction_id":15},{"address":"[2a00:1450:4002:414::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":0.396723,"t":0.418956,"transaction_id":12},{"failure":null,"operation":"tls_handshake_start","t0":0.419044,"t":0.419044,"transaction_id":12},{"address":"142.250.180.142:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.419204,"t":0.41925,"transaction_id":15},{"address":"[2a00:1450:4002:414::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.419413,"t":0.419449,"transaction_id":12},{"address":"216.58.204.142:443","failure":null,"operation":"connect","proto":"tcp","t0":0.395722,"t":0.419464,"transaction_id":8},{"address":"142.251.209.14:443","failure":null,"operation":"connect","proto":"tcp","t0":0.395747,"t":0.41948,"transaction_id":14},{"failure":null,"operation":"tls_handshake_start","t0":0.419487,"t":0.419487,"transaction_id":8},{"failure":null,"operation":"tls_handshake_start","t0":0.419504,"t":0.419504,"transaction_id":14},{"address":"142.251.209.14:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.41981,"t":0.419836,"transaction_id":14},{"address":"216.58.204.142:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.419801,"t":0.419839,"transaction_id":8},{"address":"216.58.205.46:443","failure":null,"operation":"connect","proto":"tcp","t0":0.395701,"t":0.421933,"transaction_id":5},{"failure":null,"operation":"tls_handshake_start","t0":0.421961,"t":0.421961,"transaction_id":5},{"address":"216.58.205.46:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":0.422255,"t":0.422299,"transaction_id":5},{"address":"216.58.209.46:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.412412,"t":0.444687,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2224,"operation":"read","proto":"tcp","t0":0.445023,"t":0.445031,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":3969,"operation":"read","proto":"tcp","t0":0.445033,"t":0.446059,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.452279,"t":0.452314,"transaction_id":7},{"failure":null,"operation":"tls_handshake_done","t0":0.452334,"t":0.452334,"transaction_id":7},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.415892,"t":0.45237,"transaction_id":13},{"address":"142.251.209.46:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.413594,"t":0.452384,"transaction_id":6},{"failure":null,"operation":"http_transaction_start","t0":0.452397,"t":0.452397,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":86,"operation":"write","proto":"tcp","t0":0.452463,"t":0.452487,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":199,"operation":"write","proto":"tcp","t0":0.452536,"t":0.452557,"transaction_id":7},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"num_bytes":632,"operation":"read","proto":"tcp","t0":0.452644,"t":0.452651,"transaction_id":13},{"address":"142.251.209.46:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":0.452634,"t":0.452664,"transaction_id":6},{"address":"142.250.180.174:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.415939,"t":0.453985,"transaction_id":4},{"address":"142.250.180.174:443","failure":null,"num_bytes":6195,"operation":"read","proto":"tcp","t0":0.454166,"t":0.454201,"transaction_id":4},{"address":"[2a00:1450:4002:416::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.416924,"t":0.455605,"transaction_id":11},{"address":"[2a00:1450:4002:410::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.418002,"t":0.455612,"transaction_id":10},{"address":"[2a00:1450:4002:403::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.416801,"t":0.455612,"transaction_id":9},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"num_bytes":5563,"operation":"read","proto":"tcp","t0":0.452654,"t":0.455644,"transaction_id":13},{"address":"[2a00:1450:4002:416::200e]:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":0.455781,"t":0.455817,"transaction_id":11},{"address":"[2a00:1450:4002:410::200e]:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":0.455829,"t":0.455856,"transaction_id":10},{"address":"[2a00:1450:4002:403::200e]:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":0.45582,"t":0.455856,"transaction_id":9},{"address":"142.251.209.14:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.419839,"t":0.457647,"transaction_id":14},{"address":"142.250.180.142:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.419255,"t":0.457651,"transaction_id":15},{"address":"142.251.209.14:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":0.458566,"t":0.458591,"transaction_id":14},{"address":"142.250.180.142:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":0.459027,"t":0.459351,"transaction_id":15},{"address":"216.58.205.46:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.422303,"t":0.459863,"transaction_id":5},{"address":"216.58.205.46:443","failure":null,"num_bytes":6193,"operation":"read","proto":"tcp","t0":0.460035,"t":0.460066,"transaction_id":5},{"address":"142.251.209.46:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.460464,"t":0.460497,"transaction_id":6},{"failure":null,"operation":"tls_handshake_done","t0":0.460508,"t":0.460508,"transaction_id":6},{"address":"216.58.204.142:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.419846,"t":0.460664,"transaction_id":8},{"address":"216.58.204.142:443","failure":null,"num_bytes":824,"operation":"read","proto":"tcp","t0":0.460844,"t":0.460847,"transaction_id":8},{"address":"142.250.180.174:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.461245,"t":0.461271,"transaction_id":4},{"failure":null,"operation":"tls_handshake_done","t0":0.461278,"t":0.461278,"transaction_id":4},{"address":"216.58.204.142:443","failure":null,"num_bytes":5370,"operation":"read","proto":"tcp","t0":0.460849,"t":0.461315,"transaction_id":8},{"address":"[2a00:1450:4002:416::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.462249,"t":0.462299,"transaction_id":11},{"failure":null,"operation":"tls_handshake_done","t0":0.462307,"t":0.462307,"transaction_id":11},{"address":"[2a00:1450:4002:414::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.41947,"t":0.462355,"transaction_id":12},{"address":"[2a00:1450:4002:410::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.462465,"t":0.462498,"transaction_id":10},{"failure":null,"operation":"tls_handshake_done","t0":0.462505,"t":0.462505,"transaction_id":10},{"address":"[2a00:1450:4002:414::200e]:443","failure":null,"num_bytes":6195,"operation":"read","proto":"tcp","t0":0.462549,"t":0.462605,"transaction_id":12},{"address":"[2a00:1450:4002:403::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.462844,"t":0.462876,"transaction_id":9},{"failure":null,"operation":"tls_handshake_done","t0":0.46288,"t":0.46288,"transaction_id":9},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.463203,"t":0.463226,"transaction_id":13},{"failure":null,"operation":"tls_handshake_done","t0":0.463236,"t":0.463236,"transaction_id":13},{"address":"142.251.209.14:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.464897,"t":0.464921,"transaction_id":14},{"failure":null,"operation":"tls_handshake_done","t0":0.464932,"t":0.464932,"transaction_id":14},{"address":"142.250.180.142:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.464975,"t":0.464999,"transaction_id":15},{"failure":null,"operation":"tls_handshake_done","t0":0.465008,"t":0.465008,"transaction_id":15},{"address":"216.58.205.46:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.465288,"t":0.465319,"transaction_id":5},{"failure":null,"operation":"tls_handshake_done","t0":0.465331,"t":0.465331,"transaction_id":5},{"address":"216.58.204.142:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.46631,"t":0.46633,"transaction_id":8},{"failure":null,"operation":"tls_handshake_done","t0":0.466341,"t":0.466341,"transaction_id":8},{"address":"[2a00:1450:4002:414::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":0.467377,"t":0.467396,"transaction_id":12},{"failure":null,"operation":"tls_handshake_done","t0":0.467401,"t":0.467401,"transaction_id":12},{"address":"216.58.209.46:443","failure":null,"num_bytes":62,"operation":"read","proto":"tcp","t0":0.452619,"t":0.469035,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":31,"operation":"write","proto":"tcp","t0":0.46905,"t":0.46907,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":31,"operation":"read","proto":"tcp","t0":0.469075,"t":0.469857,"transaction_id":7},{"address":"142.251.209.46:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.470765,"t":0.470787,"transaction_id":6},{"address":"142.251.209.46:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.470819,"t":0.470819,"transaction_id":6},{"address":"142.250.180.174:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.471495,"t":0.471518,"transaction_id":4},{"address":"142.250.180.174:443","failure":null,"num_bytes":6771,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.471544,"t":0.471544,"transaction_id":4},{"address":"[2a00:1450:4002:416::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.47244,"t":0.472467,"transaction_id":11},{"address":"[2a00:1450:4002:416::200e]:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.472493,"t":0.472493,"transaction_id":11},{"address":"[2a00:1450:4002:410::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.472618,"t":0.472642,"transaction_id":10},{"address":"[2a00:1450:4002:410::200e]:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.47267,"t":0.47267,"transaction_id":10},{"address":"[2a00:1450:4002:403::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.472952,"t":0.472964,"transaction_id":9},{"address":"[2a00:1450:4002:403::200e]:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.472984,"t":0.472984,"transaction_id":9},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.47339,"t":0.473421,"transaction_id":13},{"address":"[2a00:1450:4002:402::200e]:443","failure":null,"num_bytes":6771,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.473447,"t":0.473447,"transaction_id":13},{"address":"142.251.209.14:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.475056,"t":0.47508,"transaction_id":14},{"address":"142.250.180.142:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.475067,"t":0.475087,"transaction_id":15},{"address":"142.251.209.14:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.475109,"t":0.475109,"transaction_id":14},{"address":"142.250.180.142:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.47512,"t":0.47512,"transaction_id":15},{"address":"216.58.205.46:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.475455,"t":0.475478,"transaction_id":5},{"address":"216.58.205.46:443","failure":null,"num_bytes":6769,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.475508,"t":0.475508,"transaction_id":5},{"address":"216.58.204.142:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.476528,"t":0.47655,"transaction_id":8},{"address":"216.58.204.142:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.476573,"t":0.476573,"transaction_id":8},{"address":"[2a00:1450:4002:414::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.477592,"t":0.477617,"transaction_id":12},{"address":"[2a00:1450:4002:414::200e]:443","failure":null,"num_bytes":6771,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.477641,"t":0.477641,"transaction_id":12},{"address":"216.58.209.46:443","failure":null,"num_bytes":6862,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.502822,"t":0.502822,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":8192,"operation":"read","proto":"tcp","t0":0.469863,"t":0.534912,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":504,"operation":"read","proto":"tcp","t0":0.53522,"t":0.535257,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2690,"operation":"read","proto":"tcp","t0":0.535265,"t":0.53574,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.535801,"t":0.535843,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":5600,"operation":"read","proto":"tcp","t0":0.535786,"t":0.561208,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":7000,"operation":"read","proto":"tcp","t0":0.561284,"t":0.562438,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":4200,"operation":"read","proto":"tcp","t0":0.562472,"t":0.563639,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.563724,"t":0.563774,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.563801,"t":0.563831,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":4200,"operation":"read","proto":"tcp","t0":0.563704,"t":0.564835,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":4200,"operation":"read","proto":"tcp","t0":0.564858,"t":0.566079,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":5600,"operation":"read","proto":"tcp","t0":0.566098,"t":0.566918,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1400,"operation":"read","proto":"tcp","t0":0.566941,"t":0.567762,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1400,"operation":"read","proto":"tcp","t0":0.567775,"t":0.56907,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.569145,"t":0.569186,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.569213,"t":0.569244,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":6792,"operation":"read","proto":"tcp","t0":0.569133,"t":0.57154,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1608,"operation":"read","proto":"tcp","t0":0.571585,"t":0.571604,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":6506,"operation":"read","proto":"tcp","t0":0.571612,"t":0.574505,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":494,"operation":"read","proto":"tcp","t0":0.574528,"t":0.574557,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":4200,"operation":"read","proto":"tcp","t0":0.574566,"t":0.57568,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.575751,"t":0.575794,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.575815,"t":0.575845,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2306,"operation":"read","proto":"tcp","t0":0.575735,"t":0.579153,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":3294,"operation":"read","proto":"tcp","t0":0.579177,"t":0.579211,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2800,"operation":"read","proto":"tcp","t0":0.579224,"t":0.580004,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1538,"operation":"read","proto":"tcp","t0":0.580021,"t":0.580636,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2662,"operation":"read","proto":"tcp","t0":0.580647,"t":0.580678,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1400,"operation":"read","proto":"tcp","t0":0.580692,"t":0.581548,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2938,"operation":"read","proto":"tcp","t0":0.581562,"t":0.582381,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2662,"operation":"read","proto":"tcp","t0":0.582396,"t":0.582428,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.582462,"t":0.582501,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.582518,"t":0.582549,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2800,"operation":"read","proto":"tcp","t0":0.582452,"t":0.583348,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1400,"operation":"read","proto":"tcp","t0":0.583363,"t":0.583458,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1400,"operation":"read","proto":"tcp","t0":0.583469,"t":0.584424,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2800,"operation":"read","proto":"tcp","t0":0.58444,"t":0.584746,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2800,"operation":"read","proto":"tcp","t0":0.58476,"t":0.585533,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":7138,"operation":"read","proto":"tcp","t0":0.585547,"t":0.586687,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1262,"operation":"read","proto":"tcp","t0":0.586727,"t":0.586759,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.586773,"t":0.586853,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.586906,"t":0.586939,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2800,"operation":"read","proto":"tcp","t0":0.586763,"t":0.587878,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2800,"operation":"read","proto":"tcp","t0":0.587893,"t":0.588024,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":1252,"operation":"read","proto":"tcp","t0":0.588039,"t":0.589145,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":4348,"operation":"read","proto":"tcp","t0":0.589157,"t":0.589184,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":2652,"operation":"read","proto":"tcp","t0":0.589201,"t":0.59016,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":148,"operation":"read","proto":"tcp","t0":0.590189,"t":0.590215,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.590239,"t":0.590267,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":35,"operation":"write","proto":"tcp","t0":0.590286,"t":0.590324,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":6852,"operation":"read","proto":"tcp","t0":0.590219,"t":0.591835,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":382486,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.802681,"t":0.802681,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":382486,"operation":"bytes_received_cumulative","proto":"tcp","t0":0.907738,"t":0.907738,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":382486,"operation":"bytes_received_cumulative","proto":"tcp","t0":1.183284,"t":1.183284,"transaction_id":7},{"failure":null,"operation":"http_transaction_done","t0":1.492867,"t":1.492867,"transaction_id":7},{"address":"216.58.209.46:443","failure":null,"num_bytes":599313,"operation":"bytes_received_cumulative","proto":"tcp","t0":1.493554,"t":1.493554,"transaction_id":7},{"address":"142.250.200.46:443","failure":null,"operation":"connect","proto":"tcp","t0":1.8941940000000002,"t":1.9308939999999999,"transaction_id":23},{"failure":null,"operation":"tls_handshake_start","t0":1.930963,"t":1.930963,"transaction_id":23},{"address":"[2a00:1450:4009:81e::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":1.894023,"t":1.930973,"transaction_id":25},{"failure":null,"operation":"tls_handshake_start","t0":1.9310070000000001,"t":1.9310070000000001,"transaction_id":25},{"address":"[2a00:1450:4009:81e::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.931243,"t":1.93128,"transaction_id":25},{"address":"142.250.200.46:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.9312390000000001,"t":1.9312909999999999,"transaction_id":23},{"address":"142.250.179.238:443","failure":null,"operation":"connect","proto":"tcp","t0":1.89411,"t":1.931396,"transaction_id":22},{"failure":null,"operation":"tls_handshake_start","t0":1.9314230000000001,"t":1.9314230000000001,"transaction_id":22},{"address":"142.250.179.238:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.931644,"t":1.9316719999999998,"transaction_id":22},{"address":"142.250.200.14:443","failure":null,"operation":"connect","proto":"tcp","t0":1.8946960000000002,"t":1.93338,"transaction_id":20},{"failure":null,"operation":"tls_handshake_start","t0":1.9334069999999999,"t":1.9334069999999999,"transaction_id":20},{"address":"142.250.200.14:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.9336,"t":1.93364,"transaction_id":20},{"address":"216.58.204.78:443","failure":null,"operation":"connect","proto":"tcp","t0":1.89452,"t":1.9342679999999999,"transaction_id":21},{"failure":null,"operation":"tls_handshake_start","t0":1.934302,"t":1.934302,"transaction_id":21},{"address":"216.58.204.78:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.934499,"t":1.934532,"transaction_id":21},{"address":"[2a00:1450:4009:815::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":1.8944800000000002,"t":1.935353,"transaction_id":31},{"failure":null,"operation":"tls_handshake_start","t0":1.935376,"t":1.935376,"transaction_id":31},{"address":"[2a00:1450:4009:815::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.935548,"t":1.935583,"transaction_id":31},{"address":"216.58.212.238:443","failure":null,"operation":"connect","proto":"tcp","t0":1.894834,"t":1.936283,"transaction_id":28},{"failure":null,"operation":"tls_handshake_start","t0":1.936303,"t":1.936303,"transaction_id":28},{"address":"142.250.187.238:443","failure":null,"operation":"connect","proto":"tcp","t0":1.894889,"t":1.936306,"transaction_id":26},{"failure":null,"operation":"tls_handshake_start","t0":1.936323,"t":1.936323,"transaction_id":26},{"address":"142.250.187.238:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.936543,"t":1.936576,"transaction_id":26},{"address":"216.58.212.238:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.936541,"t":1.9365839999999999,"transaction_id":28},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":1.89456,"t":1.938354,"transaction_id":27},{"failure":null,"operation":"tls_handshake_start","t0":1.9384000000000001,"t":1.9384000000000001,"transaction_id":27},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.938599,"t":1.938638,"transaction_id":27},{"address":"172.217.169.14:443","failure":null,"operation":"connect","proto":"tcp","t0":1.89481,"t":1.939539,"transaction_id":16},{"failure":null,"operation":"tls_handshake_start","t0":1.939556,"t":1.939556,"transaction_id":16},{"address":"142.250.187.206:443","failure":null,"operation":"connect","proto":"tcp","t0":1.895168,"t":1.939568,"transaction_id":18},{"failure":null,"operation":"tls_handshake_start","t0":1.939584,"t":1.939584,"transaction_id":18},{"address":"142.250.178.14:443","failure":null,"operation":"connect","proto":"tcp","t0":1.8953090000000001,"t":1.939593,"transaction_id":30},{"failure":null,"operation":"tls_handshake_start","t0":1.939614,"t":1.939614,"transaction_id":30},{"address":"216.58.201.110:443","failure":null,"operation":"connect","proto":"tcp","t0":1.895193,"t":1.939627,"transaction_id":24},{"failure":null,"operation":"tls_handshake_start","t0":1.9396879999999999,"t":1.9396879999999999,"transaction_id":24},{"address":"172.217.169.14:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.939737,"t":1.9397630000000001,"transaction_id":16},{"address":"142.250.187.206:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.939755,"t":1.939785,"transaction_id":18},{"address":"142.250.178.14:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.9398,"t":1.939824,"transaction_id":30},{"address":"216.58.201.110:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.939873,"t":1.939894,"transaction_id":24},{"address":"142.250.180.14:443","failure":null,"operation":"connect","proto":"tcp","t0":1.895467,"t":1.940271,"transaction_id":29},{"failure":null,"operation":"tls_handshake_start","t0":1.94029,"t":1.94029,"transaction_id":29},{"address":"172.217.16.238:443","failure":null,"operation":"connect","proto":"tcp","t0":1.895386,"t":1.940296,"transaction_id":19},{"failure":null,"operation":"tls_handshake_start","t0":1.9403190000000001,"t":1.9403190000000001,"transaction_id":19},{"address":"[2a00:1450:4009:820::200e]:443","failure":null,"operation":"connect","proto":"tcp","t0":1.895162,"t":1.940325,"transaction_id":17},{"failure":null,"operation":"tls_handshake_start","t0":1.940346,"t":1.940346,"transaction_id":17},{"address":"142.250.180.14:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.940475,"t":1.940496,"transaction_id":29},{"address":"172.217.16.238:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.940503,"t":1.940525,"transaction_id":19},{"address":"[2a00:1450:4009:820::200e]:443","failure":null,"num_bytes":281,"operation":"write","proto":"tcp","t0":1.9405350000000001,"t":1.940571,"transaction_id":17},{"address":"142.250.200.14:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.933643,"t":1.976154,"transaction_id":20},{"address":"142.250.200.14:443","failure":null,"num_bytes":6193,"operation":"read","proto":"tcp","t0":1.976648,"t":1.9766979999999998,"transaction_id":20},{"address":"142.250.200.14:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.983985,"t":1.984023,"transaction_id":20},{"failure":null,"operation":"tls_handshake_done","t0":1.984044,"t":1.984044,"transaction_id":20},{"address":"[2a00:1450:4009:815::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.935586,"t":1.9841069999999998,"transaction_id":31},{"address":"216.58.204.78:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.934535,"t":1.984108,"transaction_id":21},{"address":"216.58.212.238:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.9365860000000001,"t":1.9841090000000001,"transaction_id":28},{"address":"[2a00:1450:4009:81e::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.931286,"t":1.984115,"transaction_id":25},{"address":"142.250.200.46:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.931297,"t":1.984118,"transaction_id":23},{"address":"216.58.212.238:443","failure":null,"num_bytes":6193,"operation":"read","proto":"tcp","t0":1.984326,"t":1.98435,"transaction_id":28},{"address":"216.58.204.78:443","failure":null,"num_bytes":6193,"operation":"read","proto":"tcp","t0":1.9843250000000001,"t":1.9843549999999999,"transaction_id":21},{"address":"[2a00:1450:4009:815::200e]:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":1.984329,"t":1.984356,"transaction_id":31},{"address":"[2a00:1450:4009:81e::200e]:443","failure":null,"num_bytes":6193,"operation":"read","proto":"tcp","t0":1.984346,"t":1.984372,"transaction_id":25},{"address":"142.250.200.46:443","failure":null,"num_bytes":6193,"operation":"read","proto":"tcp","t0":1.984343,"t":1.984378,"transaction_id":23},{"address":"142.250.179.238:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.931675,"t":1.984474,"transaction_id":22},{"address":"142.250.187.238:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.936579,"t":1.984495,"transaction_id":26},{"address":"142.250.179.238:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":1.984677,"t":1.98469,"transaction_id":22},{"address":"142.250.187.238:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":1.984672,"t":1.984693,"transaction_id":26},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.938641,"t":1.987439,"transaction_id":27},{"address":"142.250.187.206:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.939787,"t":1.987447,"transaction_id":18},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"num_bytes":1840,"operation":"read","proto":"tcp","t0":1.987971,"t":1.9879769999999999,"transaction_id":27},{"address":"216.58.201.110:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.939897,"t":1.988016,"transaction_id":24},{"address":"142.250.187.206:443","failure":null,"num_bytes":3624,"operation":"read","proto":"tcp","t0":1.988113,"t":1.988134,"transaction_id":18},{"address":"142.250.178.14:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.939827,"t":1.9881760000000002,"transaction_id":30},{"address":"216.58.201.110:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":1.988208,"t":1.9882300000000002,"transaction_id":24},{"address":"142.250.178.14:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":1.988361,"t":1.9883769999999998,"transaction_id":30},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"num_bytes":4354,"operation":"read","proto":"tcp","t0":1.987992,"t":1.989522,"transaction_id":27},{"address":"142.250.187.206:443","failure":null,"num_bytes":2569,"operation":"read","proto":"tcp","t0":1.988138,"t":1.9896150000000001,"transaction_id":18},{"address":"142.250.200.46:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.990264,"t":1.990305,"transaction_id":23},{"failure":null,"operation":"tls_handshake_done","t0":1.990323,"t":1.990323,"transaction_id":23},{"address":"142.250.179.238:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.9907460000000001,"t":1.990774,"transaction_id":22},{"failure":null,"operation":"tls_handshake_done","t0":1.990783,"t":1.990783,"transaction_id":22},{"address":"216.58.204.78:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.9908860000000002,"t":1.990907,"transaction_id":21},{"failure":null,"operation":"tls_handshake_done","t0":1.990915,"t":1.990915,"transaction_id":21},{"address":"142.250.180.14:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.940499,"t":1.991041,"transaction_id":29},{"address":"142.250.180.14:443","failure":null,"num_bytes":2224,"operation":"read","proto":"tcp","t0":1.991276,"t":1.991357,"transaction_id":29},{"address":"172.217.169.14:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.939765,"t":1.992352,"transaction_id":16},{"address":"172.217.169.14:443","failure":null,"num_bytes":824,"operation":"read","proto":"tcp","t0":1.992518,"t":1.9925220000000001,"transaction_id":16},{"address":"142.250.180.14:443","failure":null,"num_bytes":2800,"operation":"read","proto":"tcp","t0":1.991362,"t":1.992548,"transaction_id":29},{"address":"216.58.212.238:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.992723,"t":1.992742,"transaction_id":28},{"failure":null,"operation":"tls_handshake_done","t0":1.992747,"t":1.992747,"transaction_id":28},{"address":"172.217.169.14:443","failure":null,"num_bytes":5371,"operation":"read","proto":"tcp","t0":1.992523,"t":1.992777,"transaction_id":16},{"address":"[2a00:1450:4009:81e::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.993441,"t":1.993474,"transaction_id":25},{"failure":null,"operation":"tls_handshake_done","t0":1.993483,"t":1.993483,"transaction_id":25},{"address":"172.217.16.238:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.940528,"t":1.993511,"transaction_id":19},{"address":"172.217.16.238:443","failure":null,"num_bytes":6195,"operation":"read","proto":"tcp","t0":1.993694,"t":1.993715,"transaction_id":19},{"address":"142.250.187.238:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.993968,"t":1.993989,"transaction_id":26},{"failure":null,"operation":"tls_handshake_done","t0":1.993995,"t":1.993995,"transaction_id":26},{"address":"142.250.180.14:443","failure":null,"num_bytes":1170,"operation":"read","proto":"tcp","t0":1.99255,"t":1.99403,"transaction_id":29},{"address":"[2a00:1450:4009:815::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.994164,"t":1.9941900000000001,"transaction_id":31},{"failure":null,"operation":"tls_handshake_done","t0":1.994195,"t":1.994195,"transaction_id":31},{"address":"216.58.201.110:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.9949569999999999,"t":1.994982,"transaction_id":24},{"failure":null,"operation":"tls_handshake_done","t0":1.994988,"t":1.994988,"transaction_id":24},{"address":"[2a00:1450:4009:820::200e]:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":1.940574,"t":1.995034,"transaction_id":17},{"address":"142.250.200.14:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":1.9951940000000001,"t":1.9952239999999999,"transaction_id":20},{"address":"142.250.200.14:443","failure":null,"num_bytes":6769,"operation":"bytes_received_cumulative","proto":"tcp","t0":1.9952670000000001,"t":1.9952670000000001,"transaction_id":20},{"address":"142.250.178.14:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.995417,"t":1.9954420000000002,"transaction_id":30},{"failure":null,"operation":"tls_handshake_done","t0":1.995451,"t":1.995451,"transaction_id":30},{"address":"[2a00:1450:4009:820::200e]:443","failure":null,"num_bytes":6194,"operation":"read","proto":"tcp","t0":1.995412,"t":1.995458,"transaction_id":17},{"address":"142.250.187.206:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.995847,"t":1.995884,"transaction_id":18},{"failure":null,"operation":"tls_handshake_done","t0":1.995897,"t":1.995897,"transaction_id":18},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.997795,"t":1.997819,"transaction_id":27},{"failure":null,"operation":"tls_handshake_done","t0":1.99783,"t":1.99783,"transaction_id":27},{"address":"172.217.169.14:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.998415,"t":1.9984410000000001,"transaction_id":16},{"failure":null,"operation":"tls_handshake_done","t0":1.99845,"t":1.99845,"transaction_id":16},{"address":"142.250.180.14:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.999146,"t":1.999161,"transaction_id":29},{"failure":null,"operation":"tls_handshake_done","t0":1.999167,"t":1.999167,"transaction_id":29},{"address":"172.217.16.238:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":1.999348,"t":1.999368,"transaction_id":19},{"failure":null,"operation":"tls_handshake_done","t0":1.9993750000000001,"t":1.9993750000000001,"transaction_id":19},{"address":"[2a00:1450:4009:820::200e]:443","failure":null,"num_bytes":64,"operation":"write","proto":"tcp","t0":2.000586,"t":2.000607,"transaction_id":17},{"failure":null,"operation":"tls_handshake_done","t0":2.00063,"t":2.00063,"transaction_id":17},{"address":"142.250.200.46:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.000695,"t":2.000711,"transaction_id":23},{"address":"142.250.200.46:443","failure":null,"num_bytes":6769,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.000737,"t":2.000737,"transaction_id":23},{"address":"142.250.179.238:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.001029,"t":2.001043,"transaction_id":22},{"address":"216.58.204.78:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.001035,"t":2.001054,"transaction_id":21},{"address":"142.250.179.238:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.001071,"t":2.001071,"transaction_id":22},{"address":"216.58.204.78:443","failure":null,"num_bytes":6769,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.001078,"t":2.001078,"transaction_id":21},{"address":"216.58.212.238:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.003056,"t":2.003073,"transaction_id":28},{"address":"216.58.212.238:443","failure":null,"num_bytes":6769,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.0031,"t":2.0031,"transaction_id":28},{"address":"[2a00:1450:4009:81e::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.003621,"t":2.003639,"transaction_id":25},{"address":"[2a00:1450:4009:81e::200e]:443","failure":null,"num_bytes":6769,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.003663,"t":2.003663,"transaction_id":25},{"address":"142.250.187.238:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.004128,"t":2.004144,"transaction_id":26},{"address":"142.250.187.238:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.004166,"t":2.004166,"transaction_id":26},{"address":"[2a00:1450:4009:815::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.004277,"t":2.004289,"transaction_id":31},{"address":"[2a00:1450:4009:815::200e]:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.004306,"t":2.004306,"transaction_id":31},{"address":"216.58.201.110:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.005157,"t":2.005184,"transaction_id":24},{"address":"216.58.201.110:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.005205,"t":2.005205,"transaction_id":24},{"address":"142.250.178.14:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.005556,"t":2.005576,"transaction_id":30},{"address":"142.250.178.14:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.005597,"t":2.005597,"transaction_id":30},{"address":"142.250.187.206:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.00602,"t":2.00604,"transaction_id":18},{"address":"142.250.187.206:443","failure":null,"num_bytes":6769,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.006062,"t":2.006062,"transaction_id":18},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.008148,"t":2.008177,"transaction_id":27},{"address":"[2a00:1450:4009:81f::200e]:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.008211,"t":2.008211,"transaction_id":27},{"address":"172.217.169.14:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.008565,"t":2.008587,"transaction_id":16},{"address":"172.217.169.14:443","failure":null,"num_bytes":6771,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.008611,"t":2.008611,"transaction_id":16},{"address":"142.250.180.14:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.009316,"t":2.009331,"transaction_id":29},{"address":"142.250.180.14:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.009349,"t":2.009349,"transaction_id":29},{"address":"172.217.16.238:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.009435,"t":2.009456,"transaction_id":19},{"address":"172.217.16.238:443","failure":null,"num_bytes":6771,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.009476,"t":2.009476,"transaction_id":19},{"address":"[2a00:1450:4009:820::200e]:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":2.010851,"t":2.010875,"transaction_id":17},{"address":"[2a00:1450:4009:820::200e]:443","failure":null,"num_bytes":6770,"operation":"bytes_received_cumulative","proto":"tcp","t0":2.010897,"t":2.010897,"transaction_id":17}],"x_dns_whoami":{"system_v4":[{"address":"91.80.36.88"}],"udp_v4":{"8.8.4.4:53":[{"address":"91.80.36.88"}]}},"x_doh":{"network_events":[{"failure":null,"operation":"resolve_start","t0":0.000609,"t":0.000609,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"operation":"connect","proto":"tcp","t0":0.023728,"t":0.052115,"transaction_id":2},{"failure":null,"operation":"tls_handshake_start","t0":0.052202,"t":0.052202,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":279,"operation":"write","proto":"tcp","t0":0.052485,"t":0.052546,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":576,"operation":"read","proto":"tcp","t0":0.052553,"t":0.08022,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":2304,"operation":"read","proto":"tcp","t0":0.080671,"t":0.080683,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":620,"operation":"read","proto":"tcp","t0":0.080687,"t":0.08123,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":80,"operation":"write","proto":"tcp","t0":0.085338,"t":0.085383,"transaction_id":2},{"failure":null,"operation":"tls_handshake_done","t0":0.085411,"t":0.085411,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":86,"operation":"write","proto":"tcp","t0":0.085494,"t":0.085519,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":164,"operation":"write","proto":"tcp","t0":0.085616,"t":0.085639,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":159,"operation":"write","proto":"tcp","t0":0.085651,"t":0.085668,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":38,"operation":"write","proto":"tcp","t0":0.085687,"t":0.085712,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":159,"operation":"write","proto":"tcp","t0":0.085718,"t":0.085738,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":1140,"operation":"read","proto":"tcp","t0":0.085574,"t":0.393895,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":31,"operation":"write","proto":"tcp","t0":0.393976,"t":0.394027,"transaction_id":2},{"failure":null,"operation":"resolve_done","t0":0.394471,"t":0.394471,"transaction_id":2},{"address":"149.112.112.112:443","failure":null,"num_bytes":24,"operation":"write","proto":"tcp","t0":0.394499,"t":0.394539,"transaction_id":2},{"address":"149.112.112.112:443","failure":"connection_already_closed","operation":"read","proto":"tcp","t0":0.394165,"t":0.394637,"transaction_id":2}],"queries":[{"answers":[{"asn":19281,"as_org_name":"Quad9","answer_type":"AAAA","ipv6":"2620:fe::fe","ttl":null},{"asn":19281,"as_org_name":"Quad9","answer_type":"AAAA","ipv6":"2620:fe::9","ttl":null},{"asn":19281,"as_org_name":"Quad9","answer_type":"A","ipv4":"149.112.112.112","ttl":null},{"asn":19281,"as_org_name":"Quad9","answer_type":"A","ipv4":"9.9.9.9","ttl":null},{"answer_type":"CNAME","hostname":"dns.quad9.net.","ttl":null}],"engine":"getaddrinfo","failure":null,"hostname":"dns.quad9.net","query_type":"ANY","resolver_hostname":null,"resolver_port":null,"resolver_address":"","t0":0.000792,"t":0.022736,"tags":[],"transaction_id":2}],"requests":[],"tcp_connect":[{"ip":"149.112.112.112","port":443,"status":{"failure":null,"success":true},"t0":0.023728,"t":0.052115,"tags":[],"transaction_id":2}],"tls_handshakes":[{"network":"tcp","address":"149.112.112.112:443","cipher_suite":"TLS_AES_256_GCM_SHA384","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIGyDCCBk6gAwIBAgIQDQsh8YVJ+5rl2I/Z0i4MlzAKBggqhkjOPQQDAzBWMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMTAwLgYDVQQDEydEaWdpQ2VydCBUTFMgSHlicmlkIEVDQyBTSEEzODQgMjAyMCBDQTEwHhcNMjMwNzMxMDAwMDAwWhcNMjQwODA2MjM1OTU5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTERMA8GA1UEBxMIQmVya2VsZXkxDjAMBgNVBAoTBVF1YWQ5MRQwEgYDVQQDDAsqLnF1YWQ5Lm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2L1x0DhQ0YJbM0HCmhJ9SsASVIiqDx6gK52FEsCGqsclbs+j2moJ9JCVWOrP65cxdcAvt4zCSRlG9DI4kOHWajggT3MIIE8zAfBgNVHSMEGDAWgBQKvAgpF4ylOW16Ds4zxy6z7fvDejAdBgNVHQ4EFgQUf6kSpdfGi0gCxz0qRW5AHkBg9JcwggGNBgNVHREEggGEMIIBgIILKi5xdWFkOS5uZXSCCXF1YWQ5Lm5ldIcECQkJCYcECQkJCocECQkJC4cECQkJDIcECQkJDYcECQkJDocECQkJD4cElXBwCYcElXBwCocElXBwC4cElXBwDIcElXBwDYcElXBwDocElXBwD4cElXBwcIcQJiAA/gAAAAAAAAAAAAAACYcQJiAA/gAAAAAAAAAAAAAAEIcQJiAA/gAAAAAAAAAAAAAAEYcQJiAA/gAAAAAAAAAAAAAAEocQJiAA/gAAAAAAAAAAAAAAE4cQJiAA/gAAAAAAAAAAAAAAFIcQJiAA/gAAAAAAAAAAAAAAFYcQJiAA/gAAAAAAAAAAAAAA/ocQJiAA/gAAAAAAAAAAAP4ACYcQJiAA/gAAAAAAAAAAAP4AEIcQJiAA/gAAAAAAAAAAAP4AEYcQJiAA/gAAAAAAAAAAAP4AEocQJiAA/gAAAAAAAAAAAP4AE4cQJiAA/gAAAAAAAAAAAP4AFIcQJiAA/gAAAAAAAAAAAP4AFTAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMIGbBgNVHR8EgZMwgZAwRqBEoEKGQGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwRqBEoEKGQGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMIGFBggrBgEFBQcBAQR5MHcwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBPBggrBgEFBQcwAoZDaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VExTSHlicmlkRUNDU0hBMzg0MjAyMENBMS0xLmNydDAJBgNVHRMEAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYmtrLxjAAAEAwBHMEUCIQCAWtmgTRnZsqjxZ7jdiDq0EEfxBB4kMj7oaZPv+URihQIgUJxBXliHw3ic/24+0NilFj/WfEcV1kNRARUhXS6xn08AdwBIsONr2qZHNA/lagL6nTDrHFIBy1bdLIHZu7+rOdiEcwAAAYmtrLxLAAAEAwBIMEYCIQClQbGksPNEGkRsO930WOdpYDBhFWVD44nw9ks9uyawJAIhAPypE9SPFDDkOgrOw+K++guz486lzdjaAfVzdyO6sw80AHUA2ra/az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sAAAGJray8FwAABAMARjBEAiBMmvofeflmsV3JoyFVid5GiJaPHkH9fDWkS93eP9fgEQIgfkTwCbSFNKnF47riYP4MJow7haBO+pFwRW5WAEC1AQQwCgYIKoZIzj0EAwMDaAAwZQIwOOsRrmNqg61CQTVH/6I6W1ZKb+5efJZpgZLVhCirpay7lyiuNyC1QkF6jfTAh+nGAjEAoRSNqC4pY/1GUJ3ygEjSOkUKlFnpXSxYIxJz9yJ43z05faF/uL+mrpAV9GXi2cpt","format":"base64"},{"data":"MIIEFzCCAv+gAwIBAgIQB/LzXIeod6967+lHmTUlvTANBgkqhkiG9w0BAQwFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaMFYxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMDAuBgNVBAMTJ0RpZ2lDZXJ0IFRMUyBIeWJyaWQgRUNDIFNIQTM4NCAyMDIwIENBMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMEbxppbmNmkKaDp1AS12+umsmxVwP/tmMZJLwYnUcu/cMEFesOxnYeJuq20ExfJqLSDyLiQ0cx0NTY8g3KwtdD3ImnI8YDEe0CPz2iHJlw5ifFNkU3aiYvkA8ND5b8vc6OCAYIwggF+MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAq8CCkXjKU5bXoOzjPHLrPt+8N6MB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwCATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG9w0BAQwFAAOCAQEAR1mBf9QbH7Bx9phdGLqYR5iwfnYr6v8ai6wms0KNMeZK6BnQ79oU59cUkqGS8qcuLa/7Hfb7U7CKP/zYFgrpsC62pQsYkDUmotr2qLcy/JUjS8ZFucTP5Hzu5sn4kL1y45nDHQsFfGqXbbKrAjbYwrwsAZI/BKOLdRHHuSm8EdCGupK8JvllyDfNJvaGEwwEqonleLHBTnm8dqMLUeTF0J5q/hosVq4GNiejcxwIfZMy0MJEGdqN9A57HSgDKwmKdsp33Id6rHtSJlWncg+d0ohP/rEhxRqhqjn1VtvChMQ1H3Dau0bwhr9kAMQ+959GG50jBbl9s08PqUU643QwmA==","format":"base64"}],"server_name":"dns.quad9.net","t0":0.052202,"t":0.085411,"tags":[],"tls_version":"TLSv1.3","transaction_id":2}]},"x_do53":{"network_events":[{"failure":null,"operation":"resolve_start","t0":0.000432,"t":0.000432,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":33,"operation":"write","proto":"udp","t0":0.000832,"t":0.000895,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":33,"operation":"write","proto":"udp","t0":0.000832,"t":0.000895,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":179,"operation":"read","proto":"udp","t0":0.000928,"t":0.017995,"transaction_id":1},{"address":"8.8.4.4:53","failure":null,"num_bytes":179,"operation":"read","proto":"udp","t0":0.001442,"t":0.019744,"transaction_id":1},{"failure":null,"operation":"resolve_done","t0":0.020228,"t":0.020228,"transaction_id":1}],"queries":[]},"x_dns_duplicate_responses":[],"queries":[{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.250.180.142","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.250.180.174","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.251.209.14","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.251.209.46","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.209.46","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.204.142","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.205.46","ttl":null},{"answer_type":"CNAME","hostname":"youtube-ui.l.google.com.","ttl":null}],"engine":"udp","failure":null,"hostname":"www.youtube.com","query_type":"A","raw_response":"xGOBgAABAAgAAAAAA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAABAAAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAAEUABI76tI7ALQABAAEAAABFAASO+rSuwC0AAQABAAAARQAEjvvRDsAtAAEAAQAAAEUABI770S7ALQABAAEAAABFAATYOtEuwC0AAQABAAAARQAE2DrMjsAtAAEAAQAAAEUABNg6zS4=","resolver_hostname":null,"resolver_port":null,"resolver_address":"8.8.4.4:53","t0":0.000601,"t":0.018049,"tags":[],"transaction_id":1},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:402::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:403::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:410::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:416::200e","ttl":null},{"answer_type":"CNAME","hostname":"youtube-ui.l.google.com.","ttl":null}],"engine":"udp","failure":null,"hostname":"www.youtube.com","query_type":"AAAA","raw_response":"z3uBgAABAAUAAAAAA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAA/wAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAAPUAECoAFFBAAgQCAAAAAAAAIA7ALQAcAAEAAAD1ABAqABRQQAIEAwAAAAAAACAOwC0AHAABAAAA9QAQKgAUUEACBBAAAAAAAAAgDsAtABwAAQAAAPUAECoAFFBAAgQWAAAAAAAAIA4=","resolver_hostname":null,"resolver_port":null,"resolver_address":"8.8.4.4:53","t0":0.000471,"t":0.019782,"tags":[],"transaction_id":1},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:402::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:403::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:410::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:416::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.250.180.174","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.205.46","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.251.209.14","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.251.209.46","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.209.46","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.204.142","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.250.180.142","ttl":null},{"answer_type":"CNAME","hostname":"youtube-ui.l.google.com.","ttl":null}],"engine":"getaddrinfo","failure":null,"hostname":"www.youtube.com","query_type":"ANY","resolver_hostname":null,"resolver_port":null,"resolver_address":"","t0":0.000966,"t":0.020698,"tags":[],"transaction_id":3},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:402::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:403::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:414::200e","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"AAAA","ipv6":"2a00:1450:4002:416::200e","ttl":null},{"answer_type":"CNAME","hostname":"youtube-ui.l.google.com.","ttl":null}],"engine":"doh","failure":null,"hostname":"www.youtube.com","query_type":"AAAA","raw_response":"CSKBgAABAAUAAAABA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAAYgAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAAR8AECoAFFBAAgQCAAAAAAAAIA7ALQAcAAEAAAEfABAqABRQQAIEAwAAAAAAACAOwC0AHAABAAABHwAQKgAUUEACBBQAAAAAAAAgDsAtABwAAQAAAR8AECoAFFBAAgQWAAAAAAAAIA4AACkE0AAAgAAAAA==","resolver_hostname":null,"resolver_port":null,"resolver_address":"https://dns.quad9.net/dns-query","t0":0.000636,"t":0.394265,"tags":[],"transaction_id":2},{"answers":[{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.250.180.142","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.250.180.174","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.251.209.14","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.205.46","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"142.251.209.46","ttl":null},{"asn":15169,"as_org_name":"Google LLC","answer_type":"A","ipv4":"216.58.204.142","ttl":null},{"answer_type":"CNAME","hostname":"youtube-ui.l.google.com.","ttl":null}],"engine":"doh","failure":null,"hostname":"www.youtube.com","query_type":"A","raw_response":"TD2BgAABAAcAAAABA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAAA5QAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAAOUABI76tI7ALQABAAEAAADlAASO+rSuwC0AAQABAAAA5QAEjvvRDsAtAAEAAQAAAOUABNg6zS7ALQABAAEAAADlAASO+9EuwC0AAQABAAAA5QAE2DrMjgAAKQIAAACAAAAA","resolver_hostname":null,"resolver_port":null,"resolver_address":"https://dns.quad9.net/dns-query","t0":0.00128,"t":0.394264,"tags":[],"transaction_id":2}],"requests":[{"network":"tcp","address":"[2a00:1450:4009:820::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.010828,"t":2.010828,"tags":[],"transaction_id":17},{"network":"tcp","address":"172.217.16.238:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.009412,"t":2.009412,"tags":[],"transaction_id":19},{"network":"tcp","address":"142.250.180.14:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.009293,"t":2.009293,"tags":[],"transaction_id":29},{"network":"tcp","address":"172.217.169.14:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.00854,"t":2.00854,"tags":[],"transaction_id":16},{"network":"tcp","address":"[2a00:1450:4009:81f::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.008112,"t":2.008112,"tags":[],"transaction_id":27},{"network":"tcp","address":"142.250.187.206:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.005986,"t":2.005986,"tags":[],"transaction_id":18},{"network":"tcp","address":"142.250.178.14:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.005533,"t":2.005533,"tags":[],"transaction_id":30},{"network":"tcp","address":"216.58.201.110:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.005133,"t":2.005133,"tags":[],"transaction_id":24},{"network":"tcp","address":"[2a00:1450:4009:815::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.00425,"t":2.00425,"tags":[],"transaction_id":31},{"network":"tcp","address":"142.250.187.238:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.004097,"t":2.004097,"tags":[],"transaction_id":26},{"network":"tcp","address":"[2a00:1450:4009:81e::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.003596,"t":2.003596,"tags":[],"transaction_id":25},{"network":"tcp","address":"216.58.212.238:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.003031,"t":2.003031,"tags":[],"transaction_id":28},{"network":"tcp","address":"216.58.204.78:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.001008,"t":2.001008,"tags":[],"transaction_id":21},{"network":"tcp","address":"142.250.179.238:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.000965,"t":2.000965,"tags":[],"transaction_id":22},{"network":"tcp","address":"142.250.200.46:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":2.000627,"t":2.000627,"tags":[],"transaction_id":23},{"network":"tcp","address":"142.250.200.14:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Cookie","YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Cookie":"YSC=Fz-8xRP8Jo0; __Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; CONSENT=PENDING+074","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":1.995113,"t":1.995113,"tags":[],"transaction_id":20},{"network":"tcp","address":"216.58.209.46:443","alpn":"h2","failure":null,"request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"\u003c!DOCTYPE html\u003e\u003chtml style=\"font-size: 10px;font-family: Roboto, Arial, sans-serif;\" lang=\"en\" darker-dark-theme darker-dark-theme-deprecate system-icons typography typography-spacing\u003e\u003chead\u003e\u003cscript data-id=\"_gd\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003ewindow.WIZ_global_data = {\"MuJWjd\":true,\"nQyAE\":{},\"oxN3nb\":{\"1\":false}};\u003c/script\u003e\u003cmeta http-equiv=\"origin-trial\" content=\"ApvK67ociHgr2egd6c2ZjrfPuRs8BHcvSggogIOPQNH7GJ3cVlyJ1NOq/COCdj0+zxskqHt9HgLLETc8qqD+vwsAAABteyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJQcml2YWN5U2FuZGJveEFkc0FQSXMiLCJleHBpcnkiOjE2OTUxNjc5OTksImlzU3ViZG9tYWluIjp0cnVlfQ==\"/\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003evar ytcfg={d:function(){return window.yt\u0026\u0026yt.config_||ytcfg.data_||(ytcfg.data_={})},get:function(k,o){return k in ytcfg.d()?ytcfg.d()[k]:o},set:function(){var a=arguments;if(a.length\u003e1)ytcfg.d()[a[0]]=a[1];else{var k;for(k in a[0])ytcfg.d()[k]=a[0][k]}}};\nwindow.ytcfg.set('EMERGENCY_BASE_URL', '\\/error_204?t\\x3djserror\\x26level\\x3dERROR\\x26client.name\\x3d1\\x26client.version\\x3d2.20231121.08.00');\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e(function(){window.yterr=window.yterr||true;window.unhandledErrorMessages={};window.unhandledErrorCount=0;\nwindow.onerror=function(msg,url,line,columnNumber,error){var err;if(error)err=error;else{err=new Error;err.stack=\"\";err.message=msg;err.fileName=url;err.lineNumber=line;if(!isNaN(columnNumber))err[\"columnNumber\"]=columnNumber}var message=String(err.message);if(!err.message||message in window.unhandledErrorMessages||window.unhandledErrorCount\u003e=5)return;window.unhandledErrorCount+=1;window.unhandledErrorMessages[message]=true;var img=new Image;window.emergencyTimeoutImg=img;img.onload=img.onerror=function(){delete window.emergencyTimeoutImg};\nvar combinedLineAndColumn=err.lineNumber;if(!isNaN(err[\"columnNumber\"]))combinedLineAndColumn=combinedLineAndColumn+(\":\"+err[\"columnNumber\"]);var stack=err.stack||\"\";var values={\"msg\":message,\"type\":err.name,\"client.params\":\"unhandled window error\",\"file\":err.fileName,\"line\":combinedLineAndColumn,\"stack\":stack.substr(0,500)};var thirdPartyScript=!err.fileName||err.fileName===\"\u003canonymous\u003e\"||stack.indexOf(\"extension://\")\u003e=0;var replaced=stack.replace(/https:\\/\\/www.youtube.com\\//g,\"\");if(replaced.match(/https?:\\/\\/[^/]+\\//))thirdPartyScript=\ntrue;else if(stack.indexOf(\"trapProp\")\u003e=0\u0026\u0026stack.indexOf(\"trapChain\")\u003e=0)thirdPartyScript=true;else if(message.indexOf(\"redefine non-configurable\")\u003e=0)thirdPartyScript=true;var baseUrl=window[\"ytcfg\"].get(\"EMERGENCY_BASE_URL\",\"https://www.youtube.com/error_204?t=jserror\u0026level=ERROR\");var unsupported=message.indexOf(\"window.customElements is undefined\")\u003e=0;if(thirdPartyScript||unsupported)baseUrl=baseUrl.replace(\"level=ERROR\",\"level=WARNING\");var parts=[baseUrl];var key;for(key in values){var value=\nvalues[key];if(value)parts.push(key+\"=\"+encodeURIComponent(value))}img.src=parts.join(\"\u0026\")};\n(function(){function _getExtendedNativePrototype(tag){var p=this._nativePrototypes[tag];if(!p){p=Object.create(this.getNativePrototype(tag));var p$=Object.getOwnPropertyNames(window[\"Polymer\"].Base);var i=0;var n=void 0;for(;i\u003cp$.length\u0026\u0026(n=p$[i]);i++)if(!window[\"Polymer\"].BaseDescriptors[n])try{p[n]=window[\"Polymer\"].Base[n]}catch(e){throw new Error(\"Error while copying property: \"+n+\". Tag is \"+tag);}try{Object.defineProperties(p,window[\"Polymer\"].BaseDescriptors)}catch(e){throw new Error(\"Polymer define property failed for \"+\nObject.keys(p));}this._nativePrototypes[tag]=p}return p}function handlePolymerError(msg){window.onerror(msg,window.location.href,0,0,new Error(Array.prototype.join.call(arguments,\",\")))}var origPolymer=window[\"Polymer\"];var newPolymer=function(config){if(!origPolymer._ytIntercepted\u0026\u0026window[\"Polymer\"].Base){origPolymer._ytIntercepted=true;window[\"Polymer\"].Base._getExtendedNativePrototype=_getExtendedNativePrototype;window[\"Polymer\"].Base._error=handlePolymerError;window[\"Polymer\"].Base._warn=handlePolymerError}return origPolymer.apply(this,\narguments)};var origDescriptor=Object.getOwnPropertyDescriptor(window,\"Polymer\");Object.defineProperty(window,\"Polymer\",{set:function(p){if(origDescriptor\u0026\u0026origDescriptor.set\u0026\u0026origDescriptor.get){origDescriptor.set(p);origPolymer=origDescriptor.get()}else origPolymer=p;if(typeof origPolymer===\"function\")Object.defineProperty(window,\"Polymer\",{value:origPolymer,configurable:true,enumerable:true,writable:true})},get:function(){return typeof origPolymer===\"function\"?newPolymer:origPolymer},configurable:true,\nenumerable:true})})();}).call(this);\n\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003ewindow.Polymer=window.Polymer||{};window.Polymer.legacyOptimizations=true;window.Polymer.setPassiveTouchGestures=true;window.ShadyDOM={force:true,preferPerformance:true,noPatch:true};\nwindow.polymerSkipLoadingFontRoboto = true;window.ShadyCSS = {disableRuntime: true};\u003c/script\u003e\u003clink rel=\"shortcut icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon.ico\" type=\"image/x-icon\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_32x32.png\" sizes=\"32x32\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_48x48.png\" sizes=\"48x48\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_96x96.png\" sizes=\"96x96\"\u003e\u003clink rel=\"icon\" href=\"https://www.youtube.com/s/desktop/bd3558ba/img/favicon_144x144.png\" sizes=\"144x144\"\u003e\u003ctitle\u003eYouTube\u003c/title\u003e\u003clink rel=\"canonical\" href=\"https://www.youtube.com/\"\u003e\u003clink rel=\"alternate\" media=\"handheld\" href=\"https://m.youtube.com/\"\u003e\u003clink rel=\"alternate\" media=\"only screen and (max-width: 640px)\" href=\"https://m.youtube.com/\"\u003e\u003cmeta property=\"og:image\" content=\"https://www.youtube.com/img/desktop/yt_1200.png\"\u003e\u003cmeta property=\"fb:app_id\" content=\"87741124305\"\u003e\u003clink rel=\"alternate\" href=\"android-app://com.google.android.youtube/http/www.youtube.com/\"\u003e\u003clink rel=\"alternate\" href=\"ios-app://544007664/vnd.youtube/www.youtube.com/\"\u003e\u003cmeta name=\"description\" content=\"Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.\"\u003e\u003cmeta name=\"keywords\" content=\"video, sharing, camera phone, video phone, free, upload\"\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif ('undefined' == typeof Symbol || 'undefined' == typeof Symbol.iterator) {delete Array.prototype.entries;}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003evar ytcsi={gt:function(n){n=(n||\"\")+\"data_\";return ytcsi[n]||(ytcsi[n]={tick:{},info:{},gel:{preLoggedGelInfos:[]}})},now:window.performance\u0026\u0026window.performance.timing\u0026\u0026window.performance.now\u0026\u0026window.performance.timing.navigationStart?function(){return window.performance.timing.navigationStart+window.performance.now()}:function(){return(new Date).getTime()},tick:function(l,t,n){var ticks=ytcsi.gt(n).tick;var v=t||ytcsi.now();if(ticks[l]){ticks[\"_\"+l]=ticks[\"_\"+l]||[ticks[l]];ticks[\"_\"+l].push(v)}ticks[l]=\nv},info:function(k,v,n){ytcsi.gt(n).info[k]=v},infoGel:function(p,n){ytcsi.gt(n).gel.preLoggedGelInfos.push(p)},setStart:function(t,n){ytcsi.tick(\"_start\",t,n)}};\n(function(w,d){function isGecko(){if(!w.navigator)return false;try{if(w.navigator.userAgentData\u0026\u0026w.navigator.userAgentData.brands\u0026\u0026w.navigator.userAgentData.brands.length){var brands=w.navigator.userAgentData.brands;var i=0;for(;i\u003cbrands.length;i++)if(brands[i]\u0026\u0026brands[i].brand===\"Firefox\")return true;return false}}catch(e){setTimeout(function(){throw e;})}if(!w.navigator.userAgent)return false;var ua=w.navigator.userAgent;return ua.indexOf(\"Gecko\")\u003e0\u0026\u0026ua.toLowerCase().indexOf(\"webkit\")\u003c0\u0026\u0026ua.indexOf(\"Edge\")\u003c\n0\u0026\u0026ua.indexOf(\"Trident\")\u003c0\u0026\u0026ua.indexOf(\"MSIE\")\u003c0}ytcsi.setStart(w.performance?w.performance.timing.responseStart:null);var isPrerender=(d.visibilityState||d.webkitVisibilityState)==\"prerender\";var vName=!d.visibilityState\u0026\u0026d.webkitVisibilityState?\"webkitvisibilitychange\":\"visibilitychange\";if(isPrerender){var startTick=function(){ytcsi.setStart();d.removeEventListener(vName,startTick)};d.addEventListener(vName,startTick,false)}if(d.addEventListener)d.addEventListener(vName,function(){ytcsi.tick(\"vc\")},\nfalse);if(isGecko()){var isHidden=(d.visibilityState||d.webkitVisibilityState)==\"hidden\";if(isHidden)ytcsi.tick(\"vc\")}var slt=function(el,t){setTimeout(function(){var n=ytcsi.now();el.loadTime=n;if(el.slt)el.slt()},t)};w.__ytRIL=function(el){if(!el.getAttribute(\"data-thumb\"))if(w.requestAnimationFrame)w.requestAnimationFrame(function(){slt(el,0)});else slt(el,16)}})(window,document);\n\u003c/script\u003e\u003clink rel=\"preload\" href=\"https://i.ytimg.com/generate_204\" as=\"fetch\"\u003e\u003clink as=\"script\" rel=\"preload\" href=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/desktop_polymer.vflset/desktop_polymer.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/custom-elements-es5-adapter.vflset/custom-elements-es5-adapter.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/webcomponents-sd.vflset/webcomponents-sd.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/intersection-observer.min.vflset/intersection-observer.min.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('lpcs', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e(function() {window.ytplayer={};\nytcfg.set({\"CLIENT_CANARY_STATE\":\"none\",\"DEVICE\":\"cbr\\u003dChrome\\u0026cbrver\\u003d116.0.0.0\\u0026ceng\\u003dWebKit\\u0026cengver\\u003d537.36\\u0026cos\\u003dWindows\\u0026cosver\\u003d10.0\\u0026cplatform\\u003dDESKTOP\",\"DISABLE_YT_IMG_DELAY_LOADING\":false,\"ELEMENT_POOL_DEFAULT_CAP\":75,\"EVENT_ID\":\"YJlfZfWJK47D6dsPx9yqiAg\",\"EXPERIMENT_FLAGS\":{\"H5_enable_full_pacf_logging\":true,\"H5_use_async_logging\":true,\"ab_det_apb_b\":true,\"ab_det_fet_wr\":true,\"ab_det_fet_wr_en\":true,\"ab_det_gen_re\":true,\"action_companion_center_align_description\":true,\"allow_skip_networkless\":true,\"att_web_record_metrics\":true,\"autoescape_tempdata_url\":true,\"browse_next_continuations_migration_playlist\":true,\"c3_watch_page_component\":true,\"cache_utc_offset_minutes_in_pref_cookie\":true,\"cancel_pending_navs\":true,\"check_user_lact_at_prompt_shown_time_on_web\":true,\"clear_user_partitioned_ls\":true,\"client_respect_autoplay_switch_button_renderer\":true,\"cold_missing_history\":true,\"compress_gel\":true,\"csi_on_gel\":true,\"decorate_autoplay_renderer\":true,\"defer_menus\":true,\"defer_overlays\":true,\"defer_rendering_outside_visible_area\":true,\"deprecate_csi_has_info\":true,\"deprecate_pair_servlet_enabled\":true,\"desktop_add_to_playlist_renderer_dialog_popup\":true,\"desktop_animate_miniplayer\":true,\"desktop_client_release\":true,\"desktop_delay_player_resizing\":true,\"desktop_enable_dmpanel_click_drag_scroll\":true,\"desktop_enable_dmpanel_scroll\":true,\"desktop_enable_dmpanel_wheel_scroll\":true,\"desktop_image_cta_no_background\":true,\"desktop_keyboard_capture_keydown_killswitch\":true,\"desktop_log_img_click_location\":true,\"desktop_mix_use_sampled_color_for_bottom_bar\":true,\"desktop_mix_use_sampled_color_for_bottom_bar_search\":true,\"desktop_mix_use_sampled_color_for_bottom_bar_watch_next\":true,\"desktop_notification_high_priority_ignore_push\":true,\"desktop_notification_set_title_bar\":true,\"desktop_search_no_spacing_pos_zero\":true,\"desktop_search_prominent_thumbs\":true,\"desktop_sparkles_light_cta_button\":true,\"desktop_swipeable_guide\":true,\"desktop_themeable_vulcan\":true,\"desktop_use_new_history_manager\":true,\"disable_banner_collapsing_when_hidden\":true,\"disable_child_node_auto_formatted_strings\":true,\"disable_dependency_injection\":true,\"disable_features_for_supex\":true,\"disable_legacy_desktop_remote_queue\":true,\"disable_pacf_logging_for_memory_limited_tv\":true,\"disable_simple_mixed_direction_formatted_strings\":true,\"disable_super_chat_buy_button\":true,\"disable_thumbnail_preloading\":true,\"embeds_web_nwl_disable_nocookie\":true,\"enable_ab_report_on_errorscreen\":true,\"enable_ab_rp_int\":true,\"enable_ads_web_ep_buenos_aires_and_padding_fix\":true,\"enable_ata_dialog_all_web\":true,\"enable_browser_cookie_status_monitoring\":true,\"enable_buenos_aires_page_header_mini_app_dest\":true,\"enable_button_behavior_reuse\":true,\"enable_call_to_action_clarification_renderer_bottom_section_conditions\":true,\"enable_channel_page_header_profile_section\":true,\"enable_channel_page_modern_profile_section\":true,\"enable_cinematic_blur_desktop_loading\":true,\"enable_client_sli_logging\":true,\"enable_client_streamz_web\":true,\"enable_container_wiz_migration_refactor\":true,\"enable_desktop_amsterdam_info_panels\":true,\"enable_dismiss_loading_manually\":true,\"enable_dma_web_toast\":true,\"enable_docked_chat_messages\":true,\"enable_dsa_compliant_banner_image_ad_renderer\":true,\"enable_dsa_one_click_ata_translators_infeed_elements\":true,\"enable_exit_confirmation_dialog\":true,\"enable_exit_confirmation_dialog_web\":true,\"enable_filling_splash_screen_view_model\":true,\"enable_first_frame_ready_csi_logging\":true,\"enable_first_user_action_csi_logging\":true,\"enable_flow_logging_p4e\":true,\"enable_free_preview_timer\":true,\"enable_game_info_dialog\":true,\"enable_gel_log_commands\":true,\"enable_get_account_switcher_endpoint_on_webfe\":true,\"enable_google_payment_billing_command_client_support\":true,\"enable_handle_search_on_channel_switcher\":true,\"enable_handles_account_menu_switcher\":true,\"enable_handles_in_mention_suggest_posts\":true,\"enable_high_frequency_cookie_rotation\":true,\"enable_hlp_client_icon_pick\":true,\"enable_horizontal_list_renderer_scroll_based_on_items_visibility\":true,\"enable_image_poll_post_creation\":true,\"enable_inline_shorts_on_wn\":true,\"enable_interstitial_entity_check\":true,\"enable_lcr_emoji_fountain\":true,\"enable_loggingcontext_trackingparams\":true,\"enable_masthead_quartile_ping_fix\":true,\"enable_memberships_and_purchases\":true,\"enable_mentions_in_reposts\":true,\"enable_microformat_data\":true,\"enable_mini_app_microformats\":true,\"enable_mixed_direction_formatted_strings\":true,\"enable_multi_image_post_creation\":true,\"enable_names_handles_account_switcher\":true,\"enable_new_channel_creation_for_id4all\":true,\"enable_offer_suppression\":true,\"enable_on_yt_command_executor_command_to_navigate\":true,\"enable_pacf_slot_asde_infeed_h5\":true,\"enable_pacf_slot_asde_player_byte_h5\":true,\"enable_pacf_slot_asde_player_byte_h5_TV\":true,\"enable_pacf_through_ybfe_tv\":true,\"enable_pacf_through_ybfe_tv_for_page_top_formats\":true,\"enable_pacf_through_ysfe_tv\":true,\"enable_pass_sdc_get_accounts_list\":true,\"enable_persistent_page_type_listener\":true,\"enable_pl_r_c\":true,\"enable_pl_r_c_s\":true,\"enable_pl_r_si_fa\":true,\"enable_play_state_logging\":true,\"enable_playables_shelf_dismissal\":true,\"enable_playables_url_resolution\":true,\"enable_player_param_truncation_before_navigation_on_web\":true,\"enable_player_param_truncation_before_navigation_on_web_on_search\":true,\"enable_poll_choice_border_on_web\":true,\"enable_polymer_resin\":true,\"enable_polymer_resin_migration\":true,\"enable_populate_att_psd_in_abe_feedback\":true,\"enable_populate_psd_in_abe_feedback\":true,\"enable_post_cct_links\":true,\"enable_post_scheduling\":true,\"enable_ppp_url_param_search\":true,\"enable_premium_voluntary_pause\":true,\"enable_programmed_playlist_color_sample\":true,\"enable_programmed_playlist_redesign\":true,\"enable_purchase_activity_in_paid_memberships\":true,\"enable_quiz_creation\":true,\"enable_reel_watch_sequence\":true,\"enable_resume_on_exit_confirmation_dismissed\":true,\"enable_scrolling_fix\":true,\"enable_sdf_midroll_postroll_player_bytes_video_h5\":true,\"enable_sdf_preroll_player_bytes_video_h5\":true,\"enable_sdf_preroll_player_bytes_video_tv\":true,\"enable_section_list_scroll_to_item_section_web\":true,\"enable_seedless_shorts_url\":true,\"enable_server_stitched_dai\":true,\"enable_service_ajax_csn\":true,\"enable_servlet_errors_streamz\":true,\"enable_servlet_streamz\":true,\"enable_sfv_audio_pivot_url\":true,\"enable_sfv_effect_pivot_microformat\":true,\"enable_sfv_effect_pivot_url\":true,\"enable_shorts_singleton_channel_web\":true,\"enable_shorts_tab_page\":true,\"enable_showing_genre_data\":true,\"enable_signals\":true,\"enable_skip_ad_guidance_prompt\":true,\"enable_skippable_ads_for_unplugged_ad_pod\":true,\"enable_smearing_expansion_dai\":true,\"enable_sparkles_web_clickable_description\":true,\"enable_splash_screen_loading_messages\":true,\"enable_squiffle_gif_handles_landing_page\":true,\"enable_streamline_repost_flow\":true,\"enable_structured_description_shorts_web_mweb\":true,\"enable_tectonic_ad_ux_for_halftime\":true,\"enable_third_party_info\":true,\"enable_time_out_messages\":true,\"enable_topsoil_wta_for_halftime_live_infra\":true,\"enable_true_inline_for_desktop_home_feed_vac\":true,\"enable_unavailable_videos_watch_page\":true,\"enable_unified_cancellation_for_premium\":true,\"enable_unknown_lact_fix_on_html5\":true,\"enable_watch_next_pause_autoplay_lact\":true,\"enable_web_gpay_command_spinner\":true,\"enable_web_ketchup_hero_animation\":true,\"enable_web_poster_hover_animation\":true,\"enable_web_shorts_audio_pivot\":true,\"enable_web_tiered_gel\":true,\"enable_window_constrained_buy_flow_dialog\":true,\"enable_wiz_next_lp2_msof\":true,\"enable_yoodle\":true,\"enable_ypc_spinners\":true,\"enable_yt_ata_iframe_authuser\":true,\"enable_ytc_refunds_submit_form_signal_action\":true,\"enable_ytc_self_serve_refunds\":true,\"endpoint_handler_logging_cleanup_killswitch\":true,\"err_on_pl_r_c\":true,\"export_networkless_options\":true,\"external_fullscreen\":true,\"external_fullscreen_with_edu\":true,\"fetch_bid_for_dclk_status\":true,\"fill_single_video_with_notify_to_lasr\":true,\"gcf_config_store_enabled\":true,\"gcf_music_innertube\":true,\"gda_enable_playlist_download\":true,\"global_spacebar_pause\":true,\"gpa_sparkles_ten_percent_layer\":true,\"h5_companion_enable_adcpn_macro_substitution_for_click_pings\":true,\"h5_enable_generic_error_logging_event\":true,\"h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\":true,\"h5_reset_cache_and_filter_before_update_masthead\":true,\"handles_in_mention_suggest_posts\":true,\"hide_endpoint_overflow_on_ytd_display_ad_renderer\":true,\"html5_enable_ads_client_monitoring_log_tv\":true,\"html5_enable_single_video_vod_ivar_on_pacf\":true,\"html5_log_trigger_events_with_debug_data\":true,\"html5_recognize_predict_start_cue_point\":true,\"html5_server_stitched_dai_group\":true,\"il_use_view_model_logging_context\":true,\"imp_cache_player_requests\":true,\"include_autoplay_count_in_playlists\":true,\"is_browser_support_for_webcam_streaming\":true,\"is_part_of_any_user_engagement_experiment\":true,\"json_condensed_response\":true,\"kev_adb_pg\":true,\"kevlar_app_shortcuts\":true,\"kevlar_appbehavior_attach_startup_tasks\":true,\"kevlar_appshell_service_worker\":true,\"kevlar_autofocus_menu_on_keyboard_nav\":true,\"kevlar_autonav_popup_filtering\":true,\"kevlar_av_eliminate_polling\":true,\"kevlar_cache_cold_load_response\":true,\"kevlar_cache_on_ttl_player\":true,\"kevlar_cache_on_ttl_search\":true,\"kevlar_calculate_grid_collapsible\":true,\"kevlar_cancel_scheduled_comment_jobs_on_navigate\":true,\"kevlar_channel_creation_form_resolver\":true,\"kevlar_channel_trailer_multi_attach\":true,\"kevlar_chapters_list_view_seek_by_chapter\":true,\"kevlar_clear_duplicate_pref_cookie\":true,\"kevlar_clear_non_displayable_url_params\":true,\"kevlar_client_side_screens\":true,\"kevlar_command_handler\":true,\"kevlar_command_handler_clicks\":true,\"kevlar_command_handler_formatted_string\":true,\"kevlar_command_url\":true,\"kevlar_continue_playback_without_player_response\":true,\"kevlar_decorate_endpoint_with_onesie_config\":true,\"kevlar_delay_watch_initial_data\":true,\"kevlar_disable_background_prefetch\":true,\"kevlar_disable_pending_command\":true,\"kevlar_dragdrop_fast_scroll\":true,\"kevlar_dropdown_fix\":true,\"kevlar_droppable_prefetchable_requests\":true,\"kevlar_early_popup_close\":true,\"kevlar_enable_download_upsell_type_a\":true,\"kevlar_enable_editable_playlists\":true,\"kevlar_enable_em_offlineable_discovery\":true,\"kevlar_enable_reorderable_playlists\":true,\"kevlar_enable_shorts_prefetch_in_sequence\":true,\"kevlar_enable_shorts_response_chunking\":true,\"kevlar_enable_up_arrow\":true,\"kevlar_exit_fullscreen_leaving_watch\":true,\"kevlar_fill_offline_availability_type_for_gda\":true,\"kevlar_fix_playlist_continuation\":true,\"kevlar_flexible_menu\":true,\"kevlar_fluid_touch_scroll\":true,\"kevlar_frontend_queue_recover\":true,\"kevlar_gel_error_routing\":true,\"kevlar_guide_refresh\":true,\"kevlar_help_use_locale\":true,\"kevlar_hide_playlist_playback_status\":true,\"kevlar_hide_pp_url_param\":true,\"kevlar_hide_time_continue_url_param\":true,\"kevlar_home_skeleton\":true,\"kevlar_js_fixes\":true,\"kevlar_keyboard_button_focus\":true,\"kevlar_larger_three_dot_tap\":true,\"kevlar_lazy_list_resume_for_autofill\":true,\"kevlar_local_innertube_response\":true,\"kevlar_macro_markers_keyboard_shortcut\":true,\"kevlar_masthead_store\":true,\"kevlar_mealbar_above_player\":true,\"kevlar_miniplayer\":true,\"kevlar_miniplayer_expand_top\":true,\"kevlar_miniplayer_play_pause_on_scrim\":true,\"kevlar_miniplayer_queue_user_activation\":true,\"kevlar_mix_handle_first_endpoint_different\":true,\"kevlar_modern_sd\":true,\"kevlar_modern_sd_v2\":true,\"kevlar_next_cold_on_auth_change_detected\":true,\"kevlar_nitrate_driven_tooltips\":true,\"kevlar_no_autoscroll_on_playlist_hover\":true,\"kevlar_op_infra\":true,\"kevlar_op_warm_pages\":true,\"kevlar_pandown_polyfill\":true,\"kevlar_passive_event_listeners\":true,\"kevlar_playback_associated_queue\":true,\"kevlar_player_cached_load_config\":true,\"kevlar_player_check_ad_state_on_stop\":true,\"kevlar_player_load_player_no_op\":true,\"kevlar_player_new_bootstrap_adoption\":true,\"kevlar_player_playlist_use_local_index\":true,\"kevlar_player_watch_endpoint_navigation\":true,\"kevlar_playlist_drag_handles\":true,\"kevlar_playlist_use_x_close_button\":true,\"kevlar_prefetch\":true,\"kevlar_prevent_polymer_dynamic_font_load\":true,\"kevlar_queue_use_update_api\":true,\"kevlar_refresh_gesture\":true,\"kevlar_rendererstamper_event_listener\":true,\"kevlar_replace_short_to_short_history_state\":true,\"kevlar_request_sequencing\":true,\"kevlar_resolve_command_for_confirm_dialog\":true,\"kevlar_response_command_processor_page\":true,\"kevlar_scroll_chips_on_touch\":true,\"kevlar_scrollbar_rework\":true,\"kevlar_service_command_check\":true,\"kevlar_set_internal_player_size\":true,\"kevlar_shell_for_downloads_page\":true,\"kevlar_shorts_seedless_retry_initial_load\":true,\"kevlar_should_maintain_stable_list\":true,\"kevlar_show_em_dl_btn\":true,\"kevlar_show_em_dl_menu_item\":true,\"kevlar_show_em_dl_settings_tab\":true,\"kevlar_show_playlist_dl_btn\":true,\"kevlar_startup_lifecycle\":true,\"kevlar_structured_description_content_inline\":true,\"kevlar_system_icons\":true,\"kevlar_tabs_gesture\":true,\"kevlar_text_inline_expander_formatted_snippet\":true,\"kevlar_three_dot_ink\":true,\"kevlar_thumbnail_fluid\":true,\"kevlar_toast_manager\":true,\"kevlar_topbar_logo_fallback_home\":true,\"kevlar_touch_feedback\":true,\"kevlar_touch_gesture_ves\":true,\"kevlar_transcript_engagement_panel\":true,\"kevlar_tuner_run_default_comments_delay\":true,\"kevlar_tuner_should_defer_detach\":true,\"kevlar_typography_spacing_update\":true,\"kevlar_typography_update\":true,\"kevlar_unified_errors_init\":true,\"kevlar_use_response_ttl_to_invalidate_cache\":true,\"kevlar_use_vimio_behavior\":true,\"kevlar_use_wil_icons\":true,\"kevlar_use_ytd_player\":true,\"kevlar_variable_youtube_sans\":true,\"kevlar_vimio_use_shared_monitor\":true,\"kevlar_voice_logging_fix\":true,\"kevlar_voice_search_use_yt_endpoint\":true,\"kevlar_watch_cinematics\":true,\"kevlar_watch_color_update\":true,\"kevlar_watch_comments_ep_disable_theater\":true,\"kevlar_watch_contents_data_provider\":true,\"kevlar_watch_contents_data_provider_persistent\":true,\"kevlar_watch_disable_legacy_metadata_updates\":true,\"kevlar_watch_drag_handles\":true,\"kevlar_watch_flexy_fullscreen_manager\":true,\"kevlar_watch_flexy_loading_state_manager\":true,\"kevlar_watch_flexy_miniplayer_manager\":true,\"kevlar_watch_flexy_navigation_manager\":true,\"kevlar_watch_flexy_player_loop_manager\":true,\"kevlar_watch_flexy_scroll_manager\":true,\"kevlar_watch_flexy_title_manager\":true,\"kevlar_watch_flexy_use_controller\":true,\"kevlar_watch_focus_on_engagement_panels\":true,\"kevlar_watch_gesture_pandown\":true,\"kevlar_watch_hide_comments_teaser\":true,\"kevlar_watch_hide_comments_while_panel_open\":true,\"kevlar_watch_js_panel_height\":true,\"kevlar_watch_metadata_refresh\":true,\"kevlar_watch_metadata_refresh_attached_subscribe\":true,\"kevlar_watch_metadata_refresh_clickable_description\":true,\"kevlar_watch_metadata_refresh_compact_view_count\":true,\"kevlar_watch_metadata_refresh_description_info_dedicated_line\":true,\"kevlar_watch_metadata_refresh_description_inline_expander\":true,\"kevlar_watch_metadata_refresh_description_primary_color\":true,\"kevlar_watch_metadata_refresh_for_live_killswitch\":true,\"kevlar_watch_metadata_refresh_full_width_description\":true,\"kevlar_watch_metadata_refresh_left_aligned_video_actions\":true,\"kevlar_watch_metadata_refresh_lower_case_video_actions\":true,\"kevlar_watch_metadata_refresh_narrower_item_wrap\":true,\"kevlar_watch_metadata_refresh_no_old_secondary_data\":true,\"kevlar_watch_metadata_refresh_relative_date\":true,\"kevlar_watch_metadata_refresh_top_aligned_actions\":true,\"kevlar_watch_modern_metapanel\":true,\"kevlar_watch_modern_panels\":true,\"kevlar_watch_panel_height_matches_player\":true,\"kevlar_woffle\":true,\"kevlar_woffle_fallback_image\":true,\"kevlar_woffle_log_thumbnail_failure_ve\":true,\"kevlar_ytb_live_badges\":true,\"killswitch_toggle_button_behavior_resolve_command\":true,\"live_chat_banner_expansion_fix\":true,\"live_chat_emoji_picker_toggle_state\":true,\"live_chat_enable_command_handler_resolver_map\":true,\"live_chat_enable_qna_banner_overflow_menu_actions\":true,\"live_chat_enable_qna_channel\":true,\"live_chat_enable_rta_manager\":true,\"live_chat_enable_send_button_in_slow_mode\":true,\"live_chat_filter_emoji_suggestions\":true,\"live_chat_increased_min_height\":true,\"live_chat_over_playlist\":true,\"live_chat_unclickable_message\":true,\"live_chat_use_toggle_for_mod_activity\":true,\"live_chat_use_toggle_for_timestamps\":true,\"live_chat_web_enable_command_handler\":true,\"live_chat_web_input_update\":true,\"live_chat_web_use_emoji_manager_singleton\":true,\"live_chat_whole_message_clickable\":true,\"log_errors_through_nwl_on_retry\":true,\"log_gel_compression_latency\":true,\"log_heartbeat_with_lifecycles\":true,\"log_vis_on_tab_change\":true,\"log_web_endpoint_to_layer\":true,\"main_app_controller_extraction_batch_1\":true,\"main_app_controller_extraction_batch_10\":true,\"main_app_controller_extraction_batch_11\":true,\"main_app_controller_extraction_batch_12\":true,\"main_app_controller_extraction_batch_13\":true,\"main_app_controller_extraction_batch_14\":true,\"main_app_controller_extraction_batch_2\":true,\"main_app_controller_extraction_batch_3\":true,\"main_app_controller_extraction_batch_4\":true,\"main_app_controller_extraction_batch_6\":true,\"main_app_controller_extraction_batch_7\":true,\"main_app_controller_extraction_batch_8\":true,\"mdx_enable_privacy_disclosure_ui\":true,\"mdx_load_cast_api_bootstrap_script\":true,\"migrate_events_to_ts\":true,\"migrate_remaining_web_ad_badges_to_innertube\":true,\"move_vss_away_from_login_info_cookie\":true,\"music_on_main_open_playlist_recommended_videos_in_miniplayer\":true,\"mweb_actions_command_handler\":true,\"mweb_command_handler\":true,\"mweb_deprecate_skip_ve_logging\":true,\"mweb_disable_set_autonav_state_in_player\":true,\"mweb_enable_keto_batch_s3\":true,\"mweb_enable_search_big_thumbs\":true,\"mweb_logo_use_home_page_ve\":true,\"mweb_render_crawler_description\":true,\"mweb_stop_truncating_meta_tags\":true,\"networkless_gel\":true,\"networkless_logging\":true,\"new_csn_storage_design\":true,\"no_sub_count_on_sub_button\":true,\"nwl_send_fast_on_unload\":true,\"nwl_send_from_memory_when_online\":true,\"offline_error_handling\":true,\"pageid_as_header_web\":true,\"pause_ad_video_on_desktop_engagement_panel_click\":true,\"pdg_enable_flow_logging_for_super_chat\":true,\"pdg_enable_flow_logging_for_super_stickers\":true,\"player_allow_autonav_after_playlist\":true,\"player_bootstrap_method\":true,\"player_doubletap_to_seek\":true,\"player_enable_playback_playlist_change\":true,\"polymer_bad_build_labels\":true,\"polymer_enable_controller_extraction\":true,\"polymer_enable_sink_wrapper\":true,\"polymer_task_manager_proxied_promise\":true,\"polymer_verifiy_app_state\":true,\"polymer_video_renderer_defer_menu\":true,\"polymer_ytdi_enable_global_injector\":true,\"problem_walkthrough_sd\":true,\"qoe_send_and_write\":true,\"record_app_crashed_web\":true,\"reduce_emoji_size_to_20\":true,\"reels_web_show_mini_guide_on_shorts\":true,\"register_web_smartimations_component\":true,\"reload_without_polymer_innertube\":true,\"remove_web_comment_id_cache\":true,\"remove_yt_simple_endpoint_from_desktop_display_ad_title\":true,\"replace_closure_window_with_updated_ytwindow_in_studio\":true,\"rich_grid_resize_observer\":true,\"rich_grid_resize_observer_only\":true,\"rich_grid_watch_disable_miniplayer\":true,\"rich_grid_watch_hide_rows_above\":true,\"scheduler_use_raf_by_default\":true,\"search_ui_enable_pve_buy_button\":true,\"search_ui_official_cards_enable_paid_virtual_event_buy_button\":true,\"searchbox_reporting\":true,\"serve_pdp_at_canonical_url\":true,\"service_worker_enabled\":true,\"service_worker_push_enabled\":true,\"service_worker_push_home_page_prompt\":true,\"service_worker_push_watch_page_prompt\":true,\"service_worker_subscribe_with_vapid_key\":true,\"shell_load_gcf\":true,\"shorts_controller_retrieve_seedless_sequence\":true,\"shorts_desktop_watch_while_p2\":true,\"shorts_desktop_watch_while_sdp\":true,\"shorts_in_playlists_web\":true,\"shorts_overlay_reshuffle\":true,\"shorts_profile_header_c3po\":true,\"should_clear_video_data_on_player_cued_unstarted\":true,\"show_civ_reminder_on_web\":true,\"show_pom_role_on_web\":true,\"skip_invalid_ytcsi_ticks\":true,\"skip_ls_gel_retry\":true,\"skip_setting_info_in_csi_data_object\":true,\"smartimation_background\":true,\"sponsorships_free_creator_gifting\":true,\"st_skip_debug_params\":true,\"start_client_gcf\":true,\"start_client_gcf_for_player\":true,\"start_sending_config_hash\":true,\"suppress_error_204_logging\":true,\"suppress_excessive_ad_like_unit_on_web\":true,\"transport_use_scheduler\":true,\"trigger_impression_pings_on_view_search_desktop\":true,\"update_log_event_config\":true,\"update_ytWindow_library_use_closure_window_library\":true,\"use_ads_engagement_panel_desktop_footer_cta\":true,\"use_better_post_dismissals\":true,\"use_border_and_grid_wrapping_on_desktop_panel_tiles\":true,\"use_color_palettes_modern_collections_v2\":true,\"use_core_sm\":true,\"use_csi_stp_handler\":true,\"use_new_cml\":true,\"use_new_in_memory_storage\":true,\"use_new_nwl_initialization\":true,\"use_new_nwl_saw\":true,\"use_new_nwl_stw\":true,\"use_new_nwl_wts\":true,\"use_not_now_dl_upsell_dismiss_cta\":true,\"use_player_abuse_bg_library\":true,\"use_profilepage_event_label_in_carousel_playbacks\":true,\"use_request_time_ms_header\":true,\"use_session_based_sampling\":true,\"use_ts_visibilitylogger\":true,\"use_watch_fragments2\":true,\"vss_final_ping_send_and_write\":true,\"vss_playback_use_send_and_write\":true,\"warm_load_nav_start_web\":true,\"warm_op_csn_cleanup\":true,\"web_always_load_chat_support\":true,\"web_amsterdam_playlists\":true,\"web_amsterdam_post_mvp_playlists\":true,\"web_animated_actions\":true,\"web_animated_like\":true,\"web_animated_like_lazy_load\":true,\"web_api_url\":true,\"web_appshell_purge_trigger\":true,\"web_appshell_refresh_trigger\":true,\"web_autonav_allow_off_by_default\":true,\"web_button_rework\":true,\"web_button_rework_with_live\":true,\"web_cinematic_masthead\":true,\"web_collect_offline_state\":true,\"web_csi_action_sampling_enabled\":true,\"web_csi_debug_sample_enabled\":true,\"web_darker_dark_theme\":true,\"web_darker_dark_theme_deprecate\":true,\"web_darker_dark_theme_live_chat\":true,\"web_dedupe_ve_grafting\":true,\"web_defer_shorts_ui\":true,\"web_defer_shorts_ui_phase2\":true,\"web_deprecate_service_ajax_map_dependency\":true,\"web_disable_animated_thumbs_when_inline_is_disabled\":true,\"web_disable_channels_chapter_entrypoint\":true,\"web_disable_vertical_scroll_chips\":true,\"web_dont_log_hidden_rich_item_state_changed\":true,\"web_enable_ab_em_rsp\":true,\"web_enable_ab_rsp_cl\":true,\"web_enable_abd_ref\":true,\"web_enable_adaptive_appl_signal\":true,\"web_enable_dynamic_metadata\":true,\"web_enable_error_204\":true,\"web_enable_history_cache_map\":true,\"web_enable_pdp_mini_player\":true,\"web_enable_reel_item_badges\":true,\"web_enable_shorts_shelf_inline_playback\":true,\"web_enable_voz_audio_feedback\":true,\"web_enable_youtab\":true,\"web_engagement_panel_show_description\":true,\"web_fill_shorts_inline_playback_endpoint\":true,\"web_filled_subscribed_button\":true,\"web_fix_fine_scrubbing_drag\":true,\"web_forward_command_on_pbj\":true,\"web_gel_timeout_cap\":true,\"web_guide_entry_role_is_link\":true,\"web_guide_ui_refresh\":true,\"web_header_eu_about_these_results\":true,\"web_hide_autonav_keyline\":true,\"web_horizontal_list_focus_bugfix\":true,\"web_inline_player_enabled\":true,\"web_kevlar_enable_adaptive_signals\":true,\"web_localized_cc_icon\":true,\"web_log_memory_total_kbytes\":true,\"web_log_player_watch_next_ticks\":true,\"web_log_reels_ticks\":true,\"web_logging_max_batch_hard_limit\":true,\"web_memoize_inflight_requests\":true,\"web_modern_ads\":true,\"web_modern_buttons\":true,\"web_modern_buttons_bl_survey\":true,\"web_modern_chips\":true,\"web_modern_collections\":true,\"web_modern_collections_v2\":true,\"web_modern_dialogs\":true,\"web_modern_player_settings_quality_bottom\":true,\"web_modern_playlists\":true,\"web_modern_subscribe\":true,\"web_modern_tabs\":true,\"web_modern_typography\":true,\"web_move_autoplay_video_under_chip\":true,\"web_one_platform_error_handling\":true,\"web_persist_server_autonav_state_on_client\":true,\"web_player_add_ve_conversion_logging_to_outbound_links\":true,\"web_player_always_enable_auto_translation\":true,\"web_player_autonav_empty_suggestions_fix\":true,\"web_player_autonav_toggle_always_listen\":true,\"web_player_autonav_use_server_provided_state\":true,\"web_player_disable_inline_scrubbing\":true,\"web_player_enable_cultural_moment_overlay\":true,\"web_player_enable_early_warning_snackbar\":true,\"web_player_enable_info_button_in_banner_on_desktop\":true,\"web_player_enable_premium_hbr_in_h5_api\":true,\"web_player_enable_premium_hbr_playback_cap\":true,\"web_player_enable_vod_featured_product_banner_on_desktop\":true,\"web_player_entities_middleware\":true,\"web_player_log_click_before_generating_ve_conversion_params\":true,\"web_player_move_autonav_toggle\":true,\"web_player_should_honor_include_asr_setting\":true,\"web_player_small_hbp_settings_menu\":true,\"web_player_topify_subtitles_for_shorts\":true,\"web_player_touch_mode_improvements\":true,\"web_player_use_heartbeat_poll_delay_ms\":true,\"web_player_use_new_api_for_quality_pullback\":true,\"web_player_ve_conversion_fixes_for_channel_info\":true,\"web_prefetch_preload_video\":true,\"web_prs_testing_mode_killswitch\":true,\"web_replace_thumbnail_with_image\":true,\"web_resizable_advertiser_banner_on_masthead\":true,\"web_rich_shelf_show_less_button\":true,\"web_rich_shelf_show_less_button_overlapping_divider\":true,\"web_rich_shelf_show_more_button\":true,\"web_rich_shelf_show_more_button_overlapping_divider\":true,\"web_rounded_thumbnails\":true,\"web_scheduler_auto_init\":true,\"web_search_big_shorts_thumbnails\":true,\"web_segmented_like_dislike_button\":true,\"web_sheets_ui_refresh\":true,\"web_shorts_inline_playback_log_as_reels\":true,\"web_shorts_progress_bar\":true,\"web_shorts_shelf_on_search\":true,\"web_shorts_skip_loading_same_index\":true,\"web_shorts_surveys\":true,\"web_snackbar_ui_refresh\":true,\"web_speedmaster_spacebar_control\":true,\"web_structured_description_show_more\":true,\"web_suggestion_box_bolder\":true,\"web_suggestion_box_restyle\":true,\"web_supports_animations_api\":true,\"web_use_cache_for_image_fallback\":true,\"web_watch_chips_mask_fade\":true,\"web_watch_cinematics_preferred_reduced_motion_default_disabled\":true,\"web_watch_rounded_player_large\":true,\"web_watch_updated_metadata_server_initial_delay\":true,\"web_yt_config_context\":true,\"webfe_disable_ab_em_plb\":true,\"wil_icon_render_when_idle\":true,\"wiz_use_generic_logging_infra\":true,\"woffle_clean_up_after_entity_migration\":true,\"woffle_enable_download_status\":true,\"woffle_orchestration\":true,\"woffle_playlist_only_show_completed\":true,\"woffle_playlist_optimization\":true,\"woffle_used_state_report\":true,\"your_data_entrypoint\":true,\"yt_network_manager_component_to_lib_killswitch\":true,\"ytidb_clear_embedded_player\":true,\"ytidb_fetch_datasync_ids_for_data_cleanup\":true,\"H5_async_logging_delay_ms\":30000.0,\"addto_ajax_log_warning_fraction\":0.1,\"autoplay_pause_by_lact_sampling_fraction\":0.0,\"browse_ajax_log_warning_fraction\":1.0,\"cinematic_watch_effect_opacity\":0.4,\"dynamic_metadata_update_interaction_delay_period_sec\":5.0,\"formatted_description_log_warning_fraction\":0.01,\"kevlar_tuner_clamp_device_pixel_ratio\":2.0,\"kevlar_tuner_thumbnail_factor\":1.0,\"kevlar_unified_player_logging_threshold\":1.0,\"live_reactions_desktop_opacity\":1.0,\"log_window_onerror_fraction\":0.1,\"polymer_property_access_logging_percent\":0.0,\"polymer_report_client_url_requested_rate\":0.001,\"polymer_report_missing_web_navigation_endpoint_rate\":0.001,\"prefetch_coordinator_error_logging_sampling_rate\":1.0,\"tv_pacf_logging_sample_rate\":0.01,\"web_shorts_error_logging_threshold\":0.001,\"web_shorts_intersection_observer_threshold_override\":0.0,\"web_system_health_fraction\":0.01,\"ytidb_transaction_ended_event_rate_limit\":0.02,\"ytidb_transaction_ended_event_rate_limit_session\":0.2,\"ytidb_transaction_ended_event_rate_limit_transaction\":0.1,\"active_time_update_interval_ms\":10000,\"autoplay_pause_by_lact_sec\":0,\"autoplay_time\":8000,\"autoplay_time_for_fullscreen\":3000,\"autoplay_time_for_music_content\":3000,\"botguard_async_snapshot_timeout_ms\":3000,\"check_navigator_accuracy_timeout_ms\":0,\"cinematic_watch_css_filter_blur_strength\":40,\"cinematic_watch_fade_out_duration\":500,\"client_streamz_web_flush_count\":100,\"client_streamz_web_flush_interval_seconds\":60,\"close_webview_delay_ms\":100,\"cloud_save_game_data_rate_limit_ms\":3000,\"compression_disable_point\":10,\"compression_performance_threshold\":250,\"desktop_fountain_emoji_size_px\":20,\"desktop_search_suggestion_tap_target\":0,\"enable_dismiss_loader_ms\":0,\"external_fullscreen_button_click_threshold\":2,\"external_fullscreen_button_shown_threshold\":10,\"gel_min_batch_size\":3,\"gel_queue_timeout_max_ms\":300000,\"get_async_timeout_ms\":60000,\"hide_cta_for_home_web_video_ads_animate_in_time\":2,\"high_priority_flyout_frequency\":3,\"initial_gel_batch_timeout\":2000,\"innertube_request_limit_ms\":3000,\"kevlar_lockup_hover_delay\":32,\"kevlar_mini_guide_width_threshold\":791,\"kevlar_persistent_guide_width_threshold\":1312,\"kevlar_time_caching_end_threshold\":15,\"kevlar_time_caching_start_threshold\":15,\"kevlar_tooltip_impression_cap\":2,\"kevlar_tuner_default_comments_delay\":1000,\"kevlar_tuner_scheduler_soft_state_timer_ms\":800,\"kevlar_tuner_visibility_time_between_jobs_ms\":100,\"kevlar_watch_flexy_metadata_height\":136,\"kevlar_watch_grid_below_player_value\":0,\"kevlar_watch_metadata_refresh_description_lines\":3,\"live_chat_chunk_rendering\":0,\"live_chat_emoji_picker_restyle_bottom_px\":0,\"live_chat_emoji_picker_restyle_height_percent\":0,\"live_chat_emoji_picker_restyle_height_px\":0,\"live_chat_emoji_picker_restyle_width_px\":0,\"live_chat_max_chunk_size\":5,\"live_chat_min_chunk_interval_ms\":300,\"live_reactions_desktop_fab_relocation_mode\":0,\"live_reactions_desktop_opacity_mode\":0,\"log_web_meta_interval_ms\":0,\"max_body_size_to_compress\":500000,\"max_duration_to_consider_mouseover_as_hover\":600000,\"max_prefetch_window_sec_for_livestream_optimization\":10,\"min_mouse_still_duration\":100,\"min_prefetch_offset_sec_for_livestream_optimization\":20,\"minimum_duration_to_consider_mouseover_as_hover\":500,\"mweb_history_manager_cache_size\":100,\"mweb_history_manager_w2w_ttl\":0,\"network_polling_interval\":30000,\"pacf_logging_delay_milliseconds_through_ybfe_tv\":30000,\"pbj_navigate_limit\":-1,\"play_click_interval_ms\":30000,\"play_ping_interval_ms\":10000,\"post_type_icons_rearrange\":1,\"prefetch_comments_ms_after_video\":0,\"prefetch_coordinator_command_timeout_ms\":60000,\"prefetch_coordinator_max_inflight_requests\":1,\"rich_grid_max_item_width\":500,\"rich_grid_min_item_width\":310,\"send_config_hash_timer\":0,\"service_worker_push_logged_out_prompt_watches\":-1,\"service_worker_push_prompt_cap\":-1,\"service_worker_push_prompt_delay_microseconds\":3888000000000,\"slow_compressions_before_abandon_count\":4,\"user_engagement_experiments_rate_limit_ms\":86400000,\"user_mention_suggestions_edu_impression_cap\":10,\"visibility_time_between_jobs_ms\":100,\"web_cold_open_animation_initial_delay\":2000,\"web_emulated_idle_callback_delay\":0,\"web_foreground_heartbeat_interval_ms\":28000,\"web_gel_debounce_ms\":60000,\"web_inline_player_triggering_delay\":1000,\"web_logging_max_batch\":150,\"web_player_caption_language_preference_stickiness_duration\":30,\"web_search_inline_player_triggering_delay\":0,\"web_search_shorts_inline_playback_duration_ms\":5000,\"web_shorts_inline_playback_preview_ms\":5000,\"web_smoothness_test_duration_ms\":0,\"web_smoothness_test_method\":0,\"wil_icon_max_concurrent_fetches\":9999,\"wn_grid_max_item_width\":0,\"wn_grid_min_item_width\":0,\"yoodle_end_time_utc\":0,\"yoodle_start_time_utc\":0,\"ytidb_remake_db_retries\":3,\"ytidb_reopen_db_retries\":3,\"WebClientReleaseProcessCritical__youtube_web_client_version_override\":\"\",\"comment_input_box_triggering_strategy\":\"NEVER\",\"debug_forced_internalcountrycode\":\"\",\"desktop_search_bigger_thumbs_style\":\"DEFAULT\",\"desktop_searchbar_style\":\"default\",\"embeds_web_synth_ch_headers_banned_urls_regex\":\"\",\"il_payload_scraping\":\"\",\"kevlar_duplicate_pref_cookie_domain_override\":\"\",\"kevlar_link_capturing_mode\":\"\",\"live_chat_unicode_emoji_json_url\":\"https://www.gstatic.com/youtube/img/emojis/emojis-svg-9.json\",\"polymer_task_manager_status\":\"production\",\"reels_action_justified_content\":\"flex-start\",\"reels_metadata_justified_content\":\"flex-start\",\"service_worker_push_force_notification_prompt_tag\":\"1\",\"service_worker_scope\":\"/\",\"web_async_context_processor_impl\":\"standalone\",\"web_client_version_override\":\"\",\"web_home_feed_reload_experience\":\"none\",\"web_modern_subscribe_style\":\"filled\",\"web_shorts_expanded_overlay_type\":\"DEFAULT\",\"web_shorts_overlay_vertical_orientation\":\"bottom\",\"yoodle_base_url\":\"\",\"yoodle_webp_base_url\":\"\",\"conditional_lab_ids\":[],\"guide_business_info_countries\":[\"KR\"],\"guide_legal_footer_enabled_countries\":[\"NL\",\"ES\"],\"kevlar_command_handler_command_banlist\":[],\"kevlar_page_service_url_prefix_carveouts\":[],\"web_op_signal_type_banlist\":[]},\"GAPI_HINT_PARAMS\":\"m;/_/scs/abc-static/_/js/k\\u003dgapi.gapi.en.CzrNRWo3AFk.O/d\\u003d1/rs\\u003dAHpOoo8xPbrtpW2bPUIcgU2adGqIEpV82Q/m\\u003d__features__\",\"GAPI_HOST\":\"https://apis.google.com\",\"GAPI_LOCALE\":\"en_US\",\"GL\":\"IT\",\"GOOGLE_FEEDBACK_PRODUCT_ID\":\"59\",\"GOOGLE_FEEDBACK_PRODUCT_DATA\":{\"polymer\":\"active\",\"polymer2\":\"active\",\"accept_language\":\"en-US,en;q\\u003d0.9\"},\"HL\":\"en\",\"HTML_DIR\":\"ltr\",\"HTML_LANG\":\"en\",\"INNERTUBE_API_KEY\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"INNERTUBE_API_VERSION\":\"v1\",\"INNERTUBE_CLIENT_NAME\":\"WEB\",\"INNERTUBE_CLIENT_VERSION\":\"2.20231121.08.00\",\"INNERTUBE_CONTEXT\":{\"client\":{\"hl\":\"en\",\"gl\":\"IT\",\"remoteHost\":\"[scrubbed]\",\"deviceMake\":\"\",\"deviceModel\":\"\",\"visitorData\":\"CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36,gzip(gfe)\",\"clientName\":\"WEB\",\"clientVersion\":\"2.20231121.08.00\",\"osName\":\"Windows\",\"osVersion\":\"10.0\",\"originalUrl\":\"https://www.youtube.com/\",\"platform\":\"DESKTOP\",\"clientFormFactor\":\"UNKNOWN_FORM_FACTOR\",\"configInfo\":{\"appInstallData\":\"COCy_qoGEMeDsAUQpoGwBRCU-v4SEOno_hIQ1-mvBRCIh7AFEIjjrwUQ1KGvBRDQ4q8FENuvrwUQ95ewBRDrk64FEPaOsAUQ_IWwBRCp968FEJaDsAUQsYewBRCa8K8FEL_3rwUQp_evBRCyxq8FENnJrwUQuIuuBRC9tq4FEK7U_hIQ3ej-EhCrgrAFEKy3rwUQ4divBRCei7AFEKKBsAUQ1YiwBRC3768FEOHyrwUQzN-uBRD6vq8FEOb9_hIQ7qKvBRDi1K4FEL6KsAUQqIGwBRDUkrAFELfq_hIQvPmvBRDnuq8FEK-HsAUQmZGwBRD1-a8FEMyu_hIQpcL-EhDb2K8FEOvo_hIQyfevBRDj2K8FEKuHsAUQrYewBRDf2K8FEKKSsAUQ3IKwBRD1-_4SEL75rwUQ6sOvBRCZlLAFENPhrwUQ6pawBRDks_4SEInorgUQyv-vBRDRiLAF\"},\"userInterfaceTheme\":\"USER_INTERFACE_THEME_LIGHT\",\"browserName\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"acceptHeader\":\"text/html,application/xhtml+xml,application/xml;q\\u003d0.9,*/*;q\\u003d0.8\",\"deviceExperimentId\":\"ChxOek13TkRjeU5UYzFPVGd4TURneU5qWXlOUT09EOCy_qoGGOCy_qoG\"},\"user\":{\"lockedSafetyMode\":false},\"request\":{\"useSsl\":true},\"clickTracking\":{\"clickTrackingParams\":\"IhMI9bnv0N/aggMVjmF6BR1HrgqB\"}},\"INNERTUBE_CONTEXT_CLIENT_NAME\":1,\"INNERTUBE_CONTEXT_CLIENT_VERSION\":\"2.20231121.08.00\",\"INNERTUBE_CONTEXT_GL\":\"IT\",\"INNERTUBE_CONTEXT_HL\":\"en\",\"LATEST_ECATCHER_SERVICE_TRACKING_PARAMS\":{\"client.name\":\"WEB\"},\"LOGGED_IN\":false,\"PAGE_BUILD_LABEL\":\"youtube.desktop.web_20231121_08_RC00\",\"PAGE_CL\":584454497,\"scheduler\":{\"useRaf\":true,\"timeout\":20},\"SERVER_NAME\":\"WebFE\",\"SESSION_INDEX\":\"\",\"SIGNIN_URL\":\"https://accounts.google.com/ServiceLogin?service\\u003dyoutube\\u0026uilel\\u003d3\\u0026passive\\u003dtrue\\u0026continue\\u003dhttps%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252F%26feature%3D__FEATURE__\\u0026hl\\u003den\",\"WEB_PLAYER_CONTEXT_CONFIGS\":{\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_WATCH\":{\"transparentBackground\":true,\"showMiniplayerButton\":true,\"externalFullscreen\":true,\"showMiniplayerUiWhenMinimized\":true,\"rootElementId\":\"movie_player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_WATCH\",\"eventLabel\":\"detailpage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"watch\",\"datasyncId\":\"Vc2a81ef1||\",\"allowWoffleManagement\":true,\"cinematicSettingsAvailable\":true,\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_CHANNEL_TRAILER\":{\"rootElementId\":\"c4-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_CHANNEL_TRAILER\",\"eventLabel\":\"profilepage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"channels\",\"datasyncId\":\"Vc2a81ef1||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_PLAYLIST_OVERVIEW\":{\"rootElementId\":\"c4-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_PLAYLIST_OVERVIEW\",\"eventLabel\":\"playlistoverview\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"disableSharing\":true,\"hideInfo\":true,\"disableWatchLater\":true,\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"playlist_overview\",\"datasyncId\":\"Vc2a81ef1||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_VERTICAL_LANDING_PAGE_PROMO\":{\"rootElementId\":\"ytd-default-promo-panel-renderer-inline-playback-renderer\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_VERTICAL_LANDING_PAGE_PROMO\",\"eventLabel\":\"profilepage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"controlsType\":0,\"disableRelatedVideos\":true,\"annotationsLoadPolicy\":3,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"hideInfo\":true,\"startMuted\":true,\"enableMutedAutoplay\":true,\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"channels\",\"datasyncId\":\"Vc2a81ef1||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SHORTS\":{\"rootElementId\":\"shorts-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SHORTS\",\"eventLabel\":\"shortspage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"controlsType\":0,\"disableKeyboardControls\":true,\"disableRelatedVideos\":true,\"annotationsLoadPolicy\":3,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"hideInfo\":true,\"disableFullscreen\":true,\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"datasyncId\":\"Vc2a81ef1||\",\"storeUserVolume\":true,\"disableSeek\":true,\"disablePaidContentOverlay\":true,\"preferGapless\":true,\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SPONSORSHIPS_OFFER\":{\"rootElementId\":\"ytd-sponsorships-offer-with-video-renderer\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_SPONSORSHIPS_OFFER\",\"eventLabel\":\"sponsorshipsoffer\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"disableRelatedVideos\":true,\"annotationsLoadPolicy\":3,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"disableFullscreen\":true,\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"datasyncId\":\"Vc2a81ef1||\",\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_INLINE_PREVIEW\":{\"rootElementId\":\"inline-preview-player\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_INLINE_PREVIEW\",\"eventLabel\":\"detailpage\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"disableKeyboardControls\":true,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"disableFullscreen\":true,\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"enableCsiLogging\":true,\"csiPageType\":\"watch\",\"disableMdxCast\":true,\"datasyncId\":\"Vc2a81ef1||\",\"showInlinePreviewUi\":true,\"canaryStage\":\"\"},\"WEB_PLAYER_CONTEXT_CONFIG_ID_HANDLES_CLAIMING\":{\"rootElementId\":\"ytd-handles-claiming-video-item-renderer\",\"jsUrl\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"cssUrl\":\"/s/player/63e90c30/www-player.css\",\"contextId\":\"WEB_PLAYER_CONTEXT_CONFIG_ID_HANDLES_CLAIMING\",\"eventLabel\":\"handlesclaiming\",\"contentRegion\":\"IT\",\"hl\":\"en_US\",\"hostLanguage\":\"en\",\"playerStyle\":\"desktop-polymer\",\"innertubeApiKey\":\"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8\",\"innertubeApiVersion\":\"v1\",\"innertubeContextClientVersion\":\"2.20231121.08.00\",\"disableRelatedVideos\":true,\"device\":{\"brand\":\"\",\"model\":\"\",\"browser\":\"Chrome\",\"browserVersion\":\"[scrubbed]\",\"os\":\"Windows\",\"osVersion\":\"10.0\",\"platform\":\"DESKTOP\",\"interfaceName\":\"WEB\",\"interfaceVersion\":\"2.20231121.08.00\"},\"serializedExperimentIds\":\"23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001\",\"serializedExperimentFlags\":\"H5_async_logging_delay_ms\\u003d30000.0\\u0026H5_enable_full_pacf_logging\\u003dtrue\\u0026H5_use_async_logging\\u003dtrue\\u0026ab_det_apb_b\\u003dtrue\\u0026ab_det_fet_wr\\u003dtrue\\u0026ab_det_fet_wr_en\\u003dtrue\\u0026ab_det_gen_re\\u003dtrue\\u0026action_companion_center_align_description\\u003dtrue\\u0026ad_pod_disable_companion_persist_ads_quality\\u003dtrue\\u0026addto_ajax_log_warning_fraction\\u003d0.1\\u0026align_ad_to_video_player_lifecycle_for_bulleit\\u003dtrue\\u0026allow_drm_override\\u003dtrue\\u0026allow_live_autoplay\\u003dtrue\\u0026allow_poltergust_autoplay\\u003dtrue\\u0026allow_skip_networkless\\u003dtrue\\u0026allow_vp9_1080p_mq_enc\\u003dtrue\\u0026att_web_record_metrics\\u003dtrue\\u0026autoplay_time\\u003d8000\\u0026autoplay_time_for_fullscreen\\u003d3000\\u0026autoplay_time_for_music_content\\u003d3000\\u0026bg_vm_reinit_threshold\\u003d7200000\\u0026blocked_packages_for_sps\\u003d[]\\u0026botguard_async_snapshot_timeout_ms\\u003d3000\\u0026captions_url_add_ei\\u003dtrue\\u0026check_ad_ui_status_for_mweb_safari\\u003dtrue\\u0026check_navigator_accuracy_timeout_ms\\u003d0\\u0026clear_user_partitioned_ls\\u003dtrue\\u0026client_respect_autoplay_switch_button_renderer\\u003dtrue\\u0026compress_gel\\u003dtrue\\u0026compression_disable_point\\u003d10\\u0026compression_performance_threshold\\u003d250\\u0026csi_on_gel\\u003dtrue\\u0026dash_manifest_version\\u003d5\\u0026debug_bandaid_hostname\\u003d\\u0026debug_sherlog_username\\u003d\\u0026delay_ads_gvi_call_on_bulleit_living_room_ms\\u003d0\\u0026deprecate_csi_has_info\\u003dtrue\\u0026deprecate_delay_ping\\u003dtrue\\u0026deprecate_pair_servlet_enabled\\u003dtrue\\u0026desktop_image_cta_no_background\\u003dtrue\\u0026desktop_log_img_click_location\\u003dtrue\\u0026desktop_sparkles_light_cta_button\\u003dtrue\\u0026disable_channel_id_check_for_suspended_channels\\u003dtrue\\u0026disable_child_node_auto_formatted_strings\\u003dtrue\\u0026disable_defer_admodule_on_advertiser_video\\u003dtrue\\u0026disable_features_for_supex\\u003dtrue\\u0026disable_inline_preview_scrubbing_for_vac_ads_on_web\\u003dtrue\\u0026disable_legacy_desktop_remote_queue\\u003dtrue\\u0026disable_mdx_connection_in_mdx_module_for_music_web\\u003dtrue\\u0026disable_new_pause_state3\\u003dtrue\\u0026disable_pacf_logging_for_memory_limited_tv\\u003dtrue\\u0026disable_rounding_ad_notify\\u003dtrue\\u0026disable_simple_mixed_direction_formatted_strings\\u003dtrue\\u0026disable_ssdai_on_errors\\u003dtrue\\u0026disable_tabbing_before_flyout_ad_elements_appear\\u003dtrue\\u0026disable_thumbnail_preloading\\u003dtrue\\u0026edge_encryption_fill_primary_key_version\\u003dtrue\\u0026embeds_add_player_mode_to_ad_events\\u003dtrue\\u0026embeds_disable_progress_bar_context_menu_handling\\u003dtrue\\u0026embeds_enable_muted_autoplay\\u003dtrue\\u0026embeds_web_enable_autoplay_not_supported_logging_fix\\u003dtrue\\u0026embeds_web_enable_host_flags_client_permissions\\u003dtrue\\u0026embeds_web_enable_host_flags_innertube\\u003dtrue\\u0026embeds_web_enable_lite_logging\\u003dtrue\\u0026embeds_web_enable_load_player_from_page_show\\u003dtrue\\u0026embeds_web_enable_log_splay_as_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_autoplay\\u003dtrue\\u0026embeds_web_enable_mobile_dtts\\u003dtrue\\u0026embeds_web_enable_modestbranding_deprecation\\u003dtrue\\u0026embeds_web_enable_pause_overlay_wn_update\\u003dtrue\\u0026embeds_web_enable_pfp_unbranded_el_deprecation\\u003dtrue\\u0026embeds_web_enable_rcat_allowlist\\u003dtrue\\u0026embeds_web_enable_scripted_playback_blocked_logging_fix\\u003dtrue\\u0026embeds_web_enable_smallmode_fullscreen_button_fix\\u003dtrue\\u0026embeds_web_enable_ve_conversion_logging_tracking_no_allow_list\\u003dtrue\\u0026embeds_web_hide_unfilled_more_videos_suggestions\\u003dtrue\\u0026embeds_web_lite_mode\\u003d1\\u0026embeds_web_move_preload_by_player_vars_to_public\\u003dtrue\\u0026embeds_web_nwl_disable_nocookie\\u003dtrue\\u0026embeds_web_shopping_overlay_no_wait_for_paid_content_overlay\\u003dtrue\\u0026embeds_web_synth_ch_headers_banned_urls_regex\\u003d\\u0026enable_ab_report_on_errorscreen\\u003dtrue\\u0026enable_ab_rp_int\\u003dtrue\\u0026enable_ad_cpn_macro_substitution_for_click_pings\\u003dtrue\\u0026enable_app_promo_endcap_eml_on_tablet\\u003dtrue\\u0026enable_ata_dialog_all_web\\u003dtrue\\u0026enable_cast_for_web_unplugged\\u003dtrue\\u0026enable_cast_on_music_web\\u003dtrue\\u0026enable_client_page_id_header_for_first_party_pings\\u003dtrue\\u0026enable_client_sli_logging\\u003dtrue\\u0026enable_cta_banner_on_unplugged_lr\\u003dtrue\\u0026enable_dark_mode_style_endcap\\u003dtrue\\u0026enable_dark_mode_style_endcap_timed_pie_countdown\\u003dtrue\\u0026enable_discrete_live_precise_embargos\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_android\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_ios\\u003dtrue\\u0026enable_dsa_ad_badge_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_compliant_banner_image_ad_renderer\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_mobile\\u003dtrue\\u0026enable_dsa_innertube_for_action_endcap_on_web\\u003dtrue\\u0026enable_dsa_one_click_ata_translators_infeed_elements\\u003dtrue\\u0026enable_error_corrections_infocard\\u003dtrue\\u0026enable_error_corrections_infocard_web_client\\u003dtrue\\u0026enable_error_corrections_infocard_web_client_check\\u003dtrue\\u0026enable_error_corrections_infocards_icon_web\\u003dtrue\\u0026enable_eviction_protection_for_bulleit\\u003dtrue\\u0026enable_flow_logging_p4e\\u003dtrue\\u0026enable_free_preview_timer\\u003dtrue\\u0026enable_gel_log_commands\\u003dtrue\\u0026enable_h5_player_ad_block_status_logging\\u003dtrue\\u0026enable_h5_player_ad_block_status_piping\\u003dtrue\\u0026enable_handles_account_menu_switcher\\u003dtrue\\u0026enable_high_frequency_cookie_rotation\\u003dtrue\\u0026enable_kabuki_comments_on_shorts\\u003ddisabled\\u0026enable_live_ad_serving_context\\u003dtrue\\u0026enable_live_premiere_web_player_indicator\\u003dtrue\\u0026enable_loggingcontext_trackingparams\\u003dtrue\\u0026enable_lr_home_infeed_ads_inline_playback_progress_pings\\u003dtrue\\u0026enable_mixed_direction_formatted_strings\\u003dtrue\\u0026enable_modern_skip_button_on_web\\u003dtrue\\u0026enable_multiple_heatseeker_decorations\\u003dtrue\\u0026enable_mweb_endcap_clickable_icon_description\\u003dtrue\\u0026enable_mweb_endcap_dark_mode_action_button\\u003dtrue\\u0026enable_mweb_livestream_ui_update\\u003dtrue\\u0026enable_new_paid_product_placement\\u003dtrue\\u0026enable_out_of_stock_text_all_surfaces\\u003dtrue\\u0026enable_pacf_slot_asde_infeed_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5\\u003dtrue\\u0026enable_pacf_slot_asde_player_byte_h5_TV\\u003dtrue\\u0026enable_pacf_through_ybfe_tv\\u003dtrue\\u0026enable_pacf_through_ybfe_tv_for_page_top_formats\\u003dtrue\\u0026enable_pacf_through_ysfe_tv\\u003dtrue\\u0026enable_pass_sdc_get_accounts_list\\u003dtrue\\u0026enable_pl_r_c\\u003dtrue\\u0026enable_pl_r_c_s\\u003dtrue\\u0026enable_pl_r_si_fa\\u003dtrue\\u0026enable_player_param_truncation_before_navigation_on_web_on_search\\u003dtrue\\u0026enable_populate_att_psd_in_abe_feedback\\u003dtrue\\u0026enable_populate_psd_in_abe_feedback\\u003dtrue\\u0026enable_post_ad_perception_survey_fix_on_tvhtml5\\u003dtrue\\u0026enable_post_ad_perception_survey_in_tvhtml5\\u003dtrue\\u0026enable_sdf_midroll_postroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_main\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_all_android_misc\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_h5\\u003dtrue\\u0026enable_sdf_preroll_player_bytes_video_tv\\u003dtrue\\u0026enable_server_stitched_dai\\u003dtrue\\u0026enable_set_endcap_thumbnail_from_layout\\u003dtrue\\u0026enable_shorts_player\\u003dtrue\\u0026enable_skip_ad_guidance_prompt\\u003dtrue\\u0026enable_skippable_ads_for_unplugged_ad_pod\\u003dtrue\\u0026enable_small_endcap_action_button_for_mweb\\u003dtrue\\u0026enable_smearing_expansion_dai\\u003dtrue\\u0026enable_tectonic_ad_ux_for_halftime\\u003dtrue\\u0026enable_third_party_info\\u003dtrue\\u0026enable_topsoil_wta_for_halftime_live_infra\\u003dtrue\\u0026enable_unknown_lact_fix_on_html5\\u003dtrue\\u0026enable_web_media_session_metadata_fix\\u003dtrue\\u0026enable_web_tiered_gel\\u003dtrue\\u0026enable_wn_infocards\\u003dtrue\\u0026enable_yt_ata_iframe_authuser\\u003dtrue\\u0026err_on_pl_r_c\\u003dtrue\\u0026error_message_for_gsuite_network_restrictions\\u003dtrue\\u0026export_networkless_options\\u003dtrue\\u0026external_fullscreen_with_edu\\u003dtrue\\u0026fetch_att_independently\\u003dtrue\\u0026fetch_bid_for_dclk_status\\u003dtrue\\u0026fill_single_video_with_notify_to_lasr\\u003dtrue\\u0026filter_vp9_for_csdai\\u003dtrue\\u0026fix_ads_tracking_for_swf_config_deprecation_mweb\\u003dtrue\\u0026fix_h5_toggle_button_a11y\\u003dtrue\\u0026fix_survey_color_contrast_on_destop\\u003dtrue\\u0026fix_toggle_button_role_for_ad_components\\u003dtrue\\u0026fix_web_instream_survey_question_aria_label\\u003dtrue\\u0026gcf_config_store_enabled\\u003dtrue\\u0026gcf_music_innertube\\u003dtrue\\u0026gel_min_batch_size\\u003d3\\u0026gel_queue_timeout_max_ms\\u003d300000\\u0026gpa_sparkles_ten_percent_layer\\u003dtrue\\u0026gvi_channel_client_screen\\u003dtrue\\u0026h5_companion_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_enable_generic_error_logging_event\\u003dtrue\\u0026h5_enable_unified_csi_preroll\\u003dtrue\\u0026h5_inplayer_enable_adcpn_macro_substitution_for_click_pings\\u003dtrue\\u0026h5_reset_cache_and_filter_before_update_masthead\\u003dtrue\\u0026heatseeker_decoration_threshold\\u003d0.8\\u0026hfr_dropped_framerate_fallback_threshold\\u003d0\\u0026hide_cta_for_home_web_video_ads_animate_in_time\\u003d2\\u0026hide_endpoint_overflow_on_ytd_display_ad_renderer\\u003dtrue\\u0026html5_ad_timeout_ms\\u003d0\\u0026html5_adaptation_step_count\\u003d0\\u0026html5_add_dai_smearing_to_qoe\\u003dtrue\\u0026html5_add_drm_formats_to_test_format\\u003dtrue\\u0026html5_ads_preroll_lock_timeout_delay_ms\\u003d15000\\u0026html5_allow_video_keyframe_without_audio\\u003dtrue\\u0026html5_apply_min_failures\\u003dtrue\\u0026html5_apply_start_time_within_ads_for_ssdai_transitions\\u003dtrue\\u0026html5_atr_disable_force_fallback\\u003dtrue\\u0026html5_attach_num_random_bytes_to_bandaid\\u003d0\\u0026html5_attach_po_token_to_bandaid\\u003dtrue\\u0026html5_autonav_cap_idle_secs\\u003d0\\u0026html5_autonav_quality_cap\\u003d720\\u0026html5_autoplay_default_quality_cap\\u003d0\\u0026html5_block_pip_safari_delay\\u003d0\\u0026html5_bypass_contention_secs\\u003d0.0\\u0026html5_cache_request_key\\u003d\\u0026html5_check_for_idle_network_interval_ms\\u003d-1\\u0026html5_check_video_data_errors_before_playback_start\\u003dtrue\\u0026html5_cobalt_default_buffer_size_in_bytes\\u003d0\\u0026html5_cobalt_max_size_for_immed_job\\u003d0\\u0026html5_cobalt_min_processor_cnt_to_offload_algo\\u003d0\\u0026html5_cobalt_override_quic\\u003d0\\u0026html5_consume_media_bytes_slice_infos\\u003dtrue\\u0026html5_continuous_goodput_probe_interval_ms\\u003d0\\u0026html5_de_dupe_content_video_loads_in_lifecycle_api\\u003dtrue\\u0026html5_debug_data_log_probability\\u003d0.1\\u0026html5_decode_to_texture_cap\\u003dtrue\\u0026html5_default_ad_gain\\u003d0.5\\u0026html5_default_quality_cap\\u003d0\\u0026html5_defer_fetch_att_ms\\u003d1000\\u0026html5_delayed_retry_count\\u003d1\\u0026html5_delayed_retry_delay_ms\\u003d5000\\u0026html5_deprecate_adservice\\u003dtrue\\u0026html5_deprecate_video_tag_pool\\u003dtrue\\u0026html5_desktop_vr180_allow_panning\\u003dtrue\\u0026html5_df_downgrade_thresh\\u003d0.6\\u0026html5_disable_csi_for_bulleit\\u003dtrue\\u0026html5_disable_move_pssh_to_moov\\u003dtrue\\u0026html5_disable_non_contiguous\\u003dtrue\\u0026html5_displayed_frame_rate_downgrade_threshold\\u003d45\\u0026html5_drm_byterate_soft_cap\\u003d0\\u0026html5_drm_check_all_key_error_states\\u003dtrue\\u0026html5_drm_cpi_license_key\\u003dtrue\\u0026html5_drm_live_byterate_soft_cap\\u003d0\\u0026html5_enable_ac3\\u003dtrue\\u0026html5_enable_ads_client_monitoring_log_tv\\u003dtrue\\u0026html5_enable_caption_changes_for_mosaic\\u003dtrue\\u0026html5_enable_client_hints_override\\u003dtrue\\u0026html5_enable_composite_embargo\\u003dtrue\\u0026html5_enable_eac3\\u003dtrue\\u0026html5_enable_embedded_player_visibility_signals\\u003dtrue\\u0026html5_enable_non_notify_composite_vod_lsar_pacf\\u003dtrue\\u0026html5_enable_oduc\\u003dtrue\\u0026html5_enable_pp_proxima_eligible\\u003dtrue\\u0026html5_enable_single_video_vod_ivar_on_pacf\\u003dtrue\\u0026html5_enable_tvos_dash\\u003dtrue\\u0026html5_enable_tvos_encrypted_vp9\\u003dtrue\\u0026html5_enable_widevine_for_alc\\u003dtrue\\u0026html5_enable_widevine_for_fast_linear\\u003dtrue\\u0026html5_encourage_array_coalescing\\u003dtrue\\u0026html5_gapless_ended_transition_buffer_ms\\u003d200\\u0026html5_gapless_handoff_close_end_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_close_end_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_handoff_started_long_rebuffer_cfl\\u003dtrue\\u0026html5_gapless_handoff_started_long_rebuffer_delay_ms\\u003d0\\u0026html5_gapless_loop_seek_offset_in_milli\\u003d0\\u0026html5_generate_session_po_token\\u003dtrue\\u0026html5_gl_fps_threshold\\u003d0\\u0026html5_hdcp_probing_stream_url\\u003d\\u0026html5_head_miss_secs\\u003d0.0\\u0026html5_hfr_quality_cap\\u003d0\\u0026html5_high_res_logging_percent\\u003d0.01\\u0026html5_honor_caption_availabilities_in_audio_track\\u003dtrue\\u0026html5_hopeless_secs\\u003d0\\u0026html5_idle_rate_limit_ms\\u003d0\\u0026html5_ignore_interruptive_ads_for_server_stitched\\u003dtrue\\u0026html5_ignore_stall_from_no_data_timeouts\\u003dtrue\\u0026html5_innertube_heartbeats_for_fairplay\\u003dtrue\\u0026html5_innertube_heartbeats_for_playready\\u003dtrue\\u0026html5_innertube_heartbeats_for_widevine\\u003dtrue\\u0026html5_ios4_seek_above_zero\\u003dtrue\\u0026html5_ios7_force_play_on_stall\\u003dtrue\\u0026html5_ios_force_seek_to_zero_on_stop\\u003dtrue\\u0026html5_jumbo_mobile_subsegment_readahead_target\\u003d3.0\\u0026html5_jumbo_ull_nonstreaming_mffa_ms\\u003d4000\\u0026html5_jumbo_ull_subsegment_readahead_target\\u003d1.3\\u0026html5_license_constraint_delay\\u003d5000\\u0026html5_live_abr_head_miss_fraction\\u003d0.0\\u0026html5_live_abr_repredict_fraction\\u003d0.0\\u0026html5_live_chunk_readahead_proxima_override\\u003d0\\u0026html5_live_head_playable\\u003dtrue\\u0026html5_live_low_latency_bandwidth_window\\u003d0.0\\u0026html5_live_normal_latency_bandwidth_window\\u003d0.0\\u0026html5_live_quality_cap\\u003d0\\u0026html5_live_ultra_low_latency_bandwidth_window\\u003d0.0\\u0026html5_liveness_drift_chunk_override\\u003d0\\u0026html5_liveness_drift_proxima_override\\u003d0\\u0026html5_log_audio_abr\\u003dtrue\\u0026html5_log_audio_switch_metrics\\u003dtrue\\u0026html5_log_experiment_id_from_player_response_to_ctmp\\u003d\\u0026html5_log_first_ssdai_requests_killswitch\\u003dtrue\\u0026html5_log_rebuffer_events\\u003d5\\u0026html5_log_trigger_events_with_debug_data\\u003dtrue\\u0026html5_long_rebuffer_jiggle_cmt_delay_ms\\u003d0\\u0026html5_long_rebuffer_threshold_ms\\u003d30000\\u0026html5_manifestless_unplugged\\u003dtrue\\u0026html5_manifestless_vp9_otf\\u003dtrue\\u0026html5_max_buffer_health_for_downgrade_prop\\u003d-1.0\\u0026html5_max_buffer_health_for_downgrade_secs\\u003d0.0\\u0026html5_max_byterate\\u003d0\\u0026html5_max_drift_per_track_secs\\u003d0.0\\u0026html5_max_headm_for_streaming_xhr\\u003d0\\u0026html5_max_live_dvr_window_plus_margin_secs\\u003d46800.0\\u0026html5_max_readbehind_secs\\u003d0\\u0026html5_max_redirect_response_length\\u003d8192\\u0026html5_max_selectable_quality_ordinal\\u003d0\\u0026html5_max_source_buffer_append_size_in_bytes\\u003d0\\u0026html5_maximum_readahead_seconds\\u003d0.0\\u0026html5_media_fullscreen\\u003dtrue\\u0026html5_mffa_ms_proxima_override\\u003d0\\u0026html5_mfl_extend_max_request_time\\u003dtrue\\u0026html5_min_failures_to_delay_retry\\u003d3\\u0026html5_min_media_duration_for_append_prop\\u003d0.0\\u0026html5_min_media_duration_for_cabr_slice\\u003d0.0\\u0026html5_min_progress_event_interval_ms\\u003d10\\u0026html5_min_quality_ordinal\\u003d0\\u0026html5_min_readbehind_cap_secs\\u003d60\\u0026html5_min_readbehind_secs\\u003d0\\u0026html5_min_seconds_between_format_selections\\u003d0.0\\u0026html5_min_selectable_quality_ordinal\\u003d0\\u0026html5_min_startup_buffered_ad_media_duration_secs\\u003d1.2\\u0026html5_min_startup_buffered_media_duration_secs\\u003d1.2\\u0026html5_min_startup_duration_live_secs\\u003d0.25\\u0026html5_min_upgrade_health_secs\\u003d0.0\\u0026html5_minimum_readahead_seconds\\u003d0.0\\u0026html5_mock_content_binding_for_session_token\\u003d\\u0026html5_no_placeholder_rollbacks\\u003dtrue\\u0026html5_non_network_rebuffer_duration_ms\\u003d0\\u0026html5_non_onesie_attach_po_token\\u003dtrue\\u0026html5_normal_latency_mffa_ms\\u003d0\\u0026html5_not_register_disposables_when_core_listens\\u003dtrue\\u0026html5_oduc_transfer_logging\\u003dtrue\\u0026html5_offline_failure_retry_limit\\u003d2\\u0026html5_offline_prevent_redownload_downloaded_video\\u003dtrue\\u0026html5_onesie_defer_content_loader_ms\\u003d0\\u0026html5_onesie_live_ttl_secs\\u003d8\\u0026html5_onesie_notify_cuepoint_manager_on_completion\\u003dtrue\\u0026html5_onesie_prewarm_interval_ms\\u003d0\\u0026html5_onesie_prewarm_max_lact_ms\\u003d0\\u0026html5_onesie_redirector_timeout\\u003dtrue\\u0026html5_onesie_redirector_timeout_ms\\u003d0\\u0026html5_onesie_request_timeout_ms\\u003d1000\\u0026html5_pause_on_nonforeground_platform_errors\\u003dtrue\\u0026html5_peak_shave\\u003dtrue\\u0026html5_perf_cap_override_sticky\\u003dtrue\\u0026html5_performance_cap_floor\\u003d360\\u0026html5_performance_impact_profiling_timer_ms\\u003d0\\u0026html5_perserve_av1_perf_cap\\u003dtrue\\u0026html5_platform_minimum_readahead_seconds\\u003d0.0\\u0026html5_platform_whitelisted_for_frame_accurate_seeks\\u003dtrue\\u0026html5_player_autonav_logging\\u003dtrue\\u0026html5_player_dynamic_bottom_gradient\\u003dtrue\\u0026html5_player_min_build_cl\\u003d-1\\u0026html5_player_preload_ad_fix\\u003dtrue\\u0026html5_post_interrupt_readahead\\u003d20\\u0026html5_prefer_server_bwe3\\u003dtrue\\u0026html5_preload_wait_time_secs\\u003d0.0\\u0026html5_probe_primary_delay_base_ms\\u003d0\\u0026html5_process_all_encrypted_events\\u003dtrue\\u0026html5_ps4_shorts_1080p_soft_cap\\u003dtrue\\u0026html5_qoe_lh_max_report_count\\u003d0\\u0026html5_qoe_lh_min_duration_ms\\u003d0\\u0026html5_qoe_proto_mock_length\\u003d0\\u0026html5_query_sw_secure_crypto_for_android\\u003dtrue\\u0026html5_random_playback_cap\\u003d0\\u0026html5_recognize_predict_start_cue_point\\u003dtrue\\u0026html5_remove_command_triggered_companions\\u003dtrue\\u0026html5_remove_not_servable_check_killswitch\\u003dtrue\\u0026html5_rename_apbs\\u003dtrue\\u0026html5_report_fatal_drm_restricted_error_killswitch\\u003dtrue\\u0026html5_report_slow_ads_as_error\\u003dtrue\\u0026html5_repredict_interval_ms\\u003d0\\u0026html5_request_only_hdr_or_sdr_keys\\u003dtrue\\u0026html5_request_size_max_kb\\u003d0\\u0026html5_request_size_min_kb\\u003d0\\u0026html5_request_sizing_multiplier\\u003d0.8\\u0026html5_resource_bad_status_delay_scaling\\u003d1.5\\u0026html5_restore_time_after_unpause\\u003dtrue\\u0026html5_restore_time_after_unpause_redux\\u003dtrue\\u0026html5_restrict_streaming_xhr_on_sqless_requests\\u003dtrue\\u0026html5_retry_quota_exceeded_via_seek\\u003dtrue\\u0026html5_safari_desktop_eme_min_version\\u003d0\\u0026html5_samsung_kant_limit_max_bitrate\\u003d0\\u0026html5_seek_again_after_time_jump_cfl\\u003dtrue\\u0026html5_seek_jiggle_cmt_delay_ms\\u003d8000\\u0026html5_seek_new_elem_delay_ms\\u003d12000\\u0026html5_seek_new_elem_shorts_delay_ms\\u003d2000\\u0026html5_seek_new_media_element_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_element_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_new_media_source_shorts_reuse_cfl\\u003dtrue\\u0026html5_seek_new_media_source_shorts_reuse_delay_ms\\u003d0\\u0026html5_seek_set_cmt_delay_ms\\u003d2000\\u0026html5_seek_timeout_delay_ms\\u003d20000\\u0026html5_server_stitched_dai_decorated_url_retry_limit\\u003d5\\u0026html5_server_stitched_dai_group\\u003dtrue\\u0026html5_session_po_token_interval_time_ms\\u003d900000\\u0026html5_set_video_data_to_stale\\u003dtrue\\u0026html5_shorts_gapless_next_buffer_in_seconds\\u003d0\\u0026html5_skip_slow_ad_delay_ms\\u003d15000\\u0026html5_slow_start_no_media_source_delay_ms\\u003d0\\u0026html5_slow_start_timeout_delay_ms\\u003d20000\\u0026html5_ssdai_adfetch_dynamic_timeout_ms\\u003d5000\\u0026html5_ssdai_enable_new_seek_logic\\u003dtrue\\u0026html5_ssdai_failure_retry_limit\\u003d0\\u0026html5_stall_factor\\u003d0.0\\u0026html5_stall_window_size_ct\\u003d20\\u0026html5_stateful_audio_min_adjustment_value\\u003d0\\u0026html5_static_abr_resolution_shelf\\u003d0\\u0026html5_store_xhr_headers_readable\\u003dtrue\\u0026html5_streaming_xhr_time_based_consolidation_ms\\u003d0\\u0026html5_subsegment_readahead_load_speed_check_interval\\u003d0.5\\u0026html5_subsegment_readahead_min_buffer_health_secs\\u003d0.25\\u0026html5_subsegment_readahead_min_buffer_health_secs_on_timeout\\u003d0.1\\u0026html5_subsegment_readahead_min_load_speed\\u003d1.5\\u0026html5_subsegment_readahead_seek_latency_fudge\\u003d0.5\\u0026html5_subsegment_readahead_target_buffer_health_secs\\u003d0.5\\u0026html5_subsegment_readahead_timeout_secs\\u003d2.0\\u0026html5_top_shelf_format_byterate_factor\\u003d1.5\\u0026html5_track_overshoot\\u003dtrue\\u0026html5_transfer_processing_logs_interval\\u003d1000\\u0026html5_ugc_live_audio_51\\u003dtrue\\u0026html5_ugc_vod_audio_51\\u003dtrue\\u0026html5_unreported_seek_reseek_delay_ms\\u003d0\\u0026html5_unrestricted_layer_high_res_logging_percent\\u003d0.0\\u0026html5_update_time_on_seeked\\u003dtrue\\u0026html5_use_jsonformatter_to_parse_player_response\\u003dtrue\\u0026html5_use_post_for_media\\u003dtrue\\u0026html5_use_target_duration\\u003dtrue\\u0026html5_use_ump\\u003dtrue\\u0026html5_use_video_transition_endpoint_heartbeat\\u003dtrue\\u0026html5_video_tbd_min_kb\\u003d0\\u0026html5_viewport_undersend_maximum\\u003d0.0\\u0026html5_volume_slider_tooltip\\u003dtrue\\u0026html5_web_po_experiment_ids\\u003d[]\\u0026html5_webpo_idle_priority_job\\u003dtrue\\u0026html5_woffle_resume\\u003dtrue\\u0026html5_workaround_delay_trigger\\u003dtrue\\u0026ignore_overlapping_cue_points_on_endemic_live_html5\\u003dtrue\\u0026il_payload_scraping\\u003d\\u0026il_use_view_model_logging_context\\u003dtrue\\u0026initial_gel_batch_timeout\\u003d2000\\u0026injected_license_handler_error_code\\u003d0\\u0026injected_license_handler_license_status\\u003d0\\u0026itdrm_enable_revocation_reporting\\u003dtrue\\u0026itdrm_injected_license_service_error_code\\u003d0\\u0026itdrm_widevine_hardened_vmp_mode\\u003dlog\\u0026json_condensed_response\\u003dtrue\\u0026kev_adb_pg\\u003dtrue\\u0026kevlar_command_handler_command_banlist\\u003d[]\\u0026kevlar_dropdown_fix\\u003dtrue\\u0026kevlar_gel_error_routing\\u003dtrue\\u0026kevlar_miniplayer\\u003dtrue\\u0026kevlar_miniplayer_expand_top\\u003dtrue\\u0026kevlar_miniplayer_play_pause_on_scrim\\u003dtrue\\u0026kevlar_playback_associated_queue\\u003dtrue\\u0026kevlar_queue_use_update_api\\u003dtrue\\u0026kevlar_use_wil_icons\\u003dtrue\\u0026kevlar_vimio_use_shared_monitor\\u003dtrue\\u0026kevlar_woffle\\u003dtrue\\u0026kids_web_client_log_screen_associated\\u003dtrue\\u0026live_chat_enable_rta_manager\\u003dtrue\\u0026live_chunk_readahead\\u003d3\\u0026live_fresca_v2\\u003dtrue\\u0026log_errors_through_nwl_on_retry\\u003dtrue\\u0026log_gel_compression_latency\\u003dtrue\\u0026log_heartbeat_with_lifecycles\\u003dtrue\\u0026log_web_endpoint_to_layer\\u003dtrue\\u0026log_window_onerror_fraction\\u003d0.1\\u0026manifestless_post_live\\u003dtrue\\u0026manifestless_post_live_ufph\\u003dtrue\\u0026max_body_size_to_compress\\u003d500000\\u0026max_prefetch_window_sec_for_livestream_optimization\\u003d10\\u0026max_resolution_for_white_noise\\u003d360\\u0026mdx_enable_privacy_disclosure_ui\\u003dtrue\\u0026mdx_load_cast_api_bootstrap_script\\u003dtrue\\u0026migrate_events_to_ts\\u003dtrue\\u0026migrate_remaining_web_ad_badges_to_innertube\\u003dtrue\\u0026min_prefetch_offset_sec_for_livestream_optimization\\u003d20\\u0026move_survey_ad_renderer_ve_asde\\u003dtrue\\u0026move_vss_away_from_login_info_cookie\\u003dtrue\\u0026music_enable_shared_audio_tier_logic\\u003dtrue\\u0026mweb_c3_endscreen\\u003dtrue\\u0026mweb_deprecate_skip_ve_logging\\u003dtrue\\u0026mweb_enable_custom_control_shared\\u003dtrue\\u0026mweb_enable_skippables_on_jio_phone\\u003dtrue\\u0026mweb_native_control_in_faux_fullscreen_shared\\u003dtrue\\u0026network_polling_interval\\u003d30000\\u0026networkless_gel\\u003dtrue\\u0026networkless_logging\\u003dtrue\\u0026new_codecs_string_api_uses_legacy_style\\u003dtrue\\u0026new_csn_storage_design\\u003dtrue\\u0026nwl_send_fast_on_unload\\u003dtrue\\u0026nwl_send_from_memory_when_online\\u003dtrue\\u0026offline_error_handling\\u003dtrue\\u0026override_drm_required_playback_policy_channels\\u003d[]\\u0026pacf_logging_delay_milliseconds_through_ybfe_tv\\u003d30000\\u0026pageid_as_header_web\\u003dtrue\\u0026partial_rewind_buffer_seconds\\u003d0\\u0026player_ads_set_adformat_on_client\\u003dtrue\\u0026player_allow_autonav_after_playlist\\u003dtrue\\u0026player_bootstrap_method\\u003dtrue\\u0026player_destroy_old_version\\u003dtrue\\u0026player_doubletap_to_seek\\u003dtrue\\u0026player_enable_playback_playlist_change\\u003dtrue\\u0026player_underlay_min_player_width\\u003d768.0\\u0026player_underlay_video_width_fraction\\u003d0.6\\u0026player_web_canary_stage\\u003d0\\u0026playready_first_play_expiration\\u003d-1\\u0026polymer_bad_build_labels\\u003dtrue\\u0026polymer_verifiy_app_state\\u003dtrue\\u0026populate_author_with_podcast_name_in_video_details\\u003dtrue\\u0026preskip_button_style_ads_backend\\u003dcountdown_next_to_thumbnail\\u0026qoe_nwl_downloads\\u003dtrue\\u0026qoe_send_and_write\\u003dtrue\\u0026record_app_crashed_web\\u003dtrue\\u0026reject_live_ott_h264_clear_240p\\u003dtrue\\u0026reject_live_vp9_mq_clear_with_no_abr_ladder\\u003dtrue\\u0026replace_closure_window_with_updated_ytwindow_in_studio\\u003dtrue\\u0026replace_playability_retriever_in_watch\\u003dtrue\\u0026scheduler_use_raf_by_default\\u003dtrue\\u0026self_podding_header_string_template\\u003dself_podding_interstitial_message\\u0026self_podding_highlight_non_default_button\\u003dtrue\\u0026self_podding_midroll_choice_string_template\\u003dself_podding_midroll_choice\\u0026send_config_hash_timer\\u003d0\\u0026set_interstitial_advertisers_question_text\\u003dtrue\\u0026set_mock_id_as_expected_content_binding\\u003d\\u0026shell_load_gcf\\u003dtrue\\u0026short_start_time_prefer_publish_in_watch_log\\u003dtrue\\u0026shorts_mode_to_player_api\\u003dtrue\\u0026should_clear_video_data_on_player_cued_unstarted\\u003dtrue\\u0026simply_embedded_enable_botguard\\u003dtrue\\u0026skip_inline_muted_license_service_check\\u003dtrue\\u0026skip_invalid_ytcsi_ticks\\u003dtrue\\u0026skip_ls_gel_retry\\u003dtrue\\u0026skip_setting_info_in_csi_data_object\\u003dtrue\\u0026slow_compressions_before_abandon_count\\u003d4\\u0026speedmaster_cancellation_movement_dp\\u003d10\\u0026speedmaster_playback_rate\\u003d2.0\\u0026speedmaster_touch_activation_ms\\u003d500\\u0026st_skip_debug_params\\u003dtrue\\u0026start_client_gcf\\u003dtrue\\u0026start_client_gcf_for_player\\u003dtrue\\u0026start_sending_config_hash\\u003dtrue\\u0026streaming_data_emergency_itag_blacklist\\u003d[]\\u0026substitute_ad_cpn_macro_in_ssdai\\u003dtrue\\u0026suppress_error_204_logging\\u003dtrue\\u0026transport_use_scheduler\\u003dtrue\\u0026trigger_impression_pings_on_view_search_desktop\\u003dtrue\\u0026tv_pacf_logging_sample_rate\\u003d0.01\\u0026tvhtml5_unplugged_preload_cache_size\\u003d5\\u0026unplugged_dai_live_chunk_readahead\\u003d3\\u0026unplugged_tvhtml5_video_preload_on_focus_delay_ms\\u003d0\\u0026update_log_event_config\\u003dtrue\\u0026use_accessibility_data_on_desktop_player_button\\u003dtrue\\u0026use_color_palettes_modern_collections_v2\\u003dtrue\\u0026use_core_sm\\u003dtrue\\u0026use_csi_stp_handler\\u003dtrue\\u0026use_inlined_player_rpc\\u003dtrue\\u0026use_new_cml\\u003dtrue\\u0026use_new_in_memory_storage\\u003dtrue\\u0026use_new_nwl_initialization\\u003dtrue\\u0026use_new_nwl_saw\\u003dtrue\\u0026use_new_nwl_stw\\u003dtrue\\u0026use_new_nwl_wts\\u003dtrue\\u0026use_player_abuse_bg_library\\u003dtrue\\u0026use_player_cue_range_set\\u003dtrue\\u0026use_profilepage_event_label_in_carousel_playbacks\\u003dtrue\\u0026use_request_time_ms_header\\u003dtrue\\u0026use_session_based_sampling\\u003dtrue\\u0026use_shared_notf_vp9_360p_format_filter_rules\\u003dtrue\\u0026use_ts_visibilitylogger\\u003dtrue\\u0026validate_el_adunit_usage_mweb\\u003d0.1\\u0026variable_buffer_timeout_ms\\u003d0\\u0026vp9_drm_live\\u003dtrue\\u0026vss_final_ping_send_and_write\\u003dtrue\\u0026vss_pings_using_networkless\\u003dtrue\\u0026vss_playback_use_send_and_write\\u003dtrue\\u0026web_api_url\\u003dtrue\\u0026web_async_context_processor_impl\\u003dstandalone\\u0026web_big_boards\\u003dtrue\\u0026web_big_boards_enable_in_inline\\u003dtrue\\u0026web_big_boards_enable_in_miniplayer\\u003dtrue\\u0026web_cinematic_watch_settings\\u003dtrue\\u0026web_client_version_override\\u003d\\u0026web_collect_offline_state\\u003dtrue\\u0026web_csi_action_sampling_enabled\\u003dtrue\\u0026web_csi_debug_sample_enabled\\u003dtrue\\u0026web_dedupe_ve_grafting\\u003dtrue\\u0026web_deprecate_service_ajax_map_dependency\\u003dtrue\\u0026web_disable_channels_chapter_entrypoint\\u003dtrue\\u0026web_enable_ab_em_rsp\\u003dtrue\\u0026web_enable_ab_rsp_cl\\u003dtrue\\u0026web_enable_abd_ref\\u003dtrue\\u0026web_enable_error_204\\u003dtrue\\u0026web_enable_speedmaster\\u003dtrue\\u0026web_enable_voz_audio_feedback\\u003dtrue\\u0026web_fix_fine_scrubbing_drag\\u003dtrue\\u0026web_foreground_heartbeat_interval_ms\\u003d28000\\u0026web_forward_command_on_pbj\\u003dtrue\\u0026web_gel_debounce_ms\\u003d60000\\u0026web_gel_timeout_cap\\u003dtrue\\u0026web_heat_map_v2\\u003dtrue\\u0026web_key_moments_markers\\u003dtrue\\u0026web_l3_storyboard\\u003dtrue\\u0026web_log_memory_total_kbytes\\u003dtrue\\u0026web_logging_max_batch\\u003d150\\u0026web_logging_max_batch_hard_limit\\u003dtrue\\u0026web_modern_ads\\u003dtrue\\u0026web_modern_buttons\\u003dtrue\\u0026web_modern_buttons_bl_survey\\u003dtrue\\u0026web_modern_player_settings_quality_bottom\\u003dtrue\\u0026web_modern_subscribe\\u003dtrue\\u0026web_modern_subscribe_style\\u003dfilled\\u0026web_new_autonav_countdown\\u003dtrue\\u0026web_one_platform_error_handling\\u003dtrue\\u0026web_op_signal_type_banlist\\u003d[]\\u0026web_playback_associated_log_ctt\\u003dtrue\\u0026web_playback_associated_ve\\u003dtrue\\u0026web_player_add_ve_conversion_logging_to_outbound_links\\u003dtrue\\u0026web_player_always_enable_auto_translation\\u003dtrue\\u0026web_player_api_logging_fraction\\u003d0.01\\u0026web_player_autonav_empty_suggestions_fix\\u003dtrue\\u0026web_player_autonav_toggle_always_listen\\u003dtrue\\u0026web_player_autonav_use_server_provided_state\\u003dtrue\\u0026web_player_caption_language_preference_stickiness_duration\\u003d30\\u0026web_player_disable_inline_scrubbing\\u003dtrue\\u0026web_player_enable_cultural_moment_overlay\\u003dtrue\\u0026web_player_enable_early_warning_snackbar\\u003dtrue\\u0026web_player_enable_info_button_in_banner_on_desktop\\u003dtrue\\u0026web_player_enable_premium_hbr_in_h5_api\\u003dtrue\\u0026web_player_enable_premium_hbr_playback_cap\\u003dtrue\\u0026web_player_enable_vod_featured_product_banner_on_desktop\\u003dtrue\\u0026web_player_innertube_playlist_update\\u003dtrue\\u0026web_player_ipp_canary_type_for_logging\\u003d\\u0026web_player_log_click_before_generating_ve_conversion_params\\u003dtrue\\u0026web_player_move_autonav_toggle\\u003dtrue\\u0026web_player_music_visualizer_treatment\\u003dfake\\u0026web_player_nitrate_promo_tooltip\\u003dtrue\\u0026web_player_offline_playlist_auto_refresh\\u003dtrue\\u0026web_player_seek_chapters_by_shortcut\\u003dtrue\\u0026web_player_sentinel_is_uniplayer\\u003dtrue\\u0026web_player_should_honor_include_asr_setting\\u003dtrue\\u0026web_player_show_music_in_this_video_graphic\\u003dvideo_thumbnail\\u0026web_player_small_hbp_settings_menu\\u003dtrue\\u0026web_player_ss_dai_ad_fetching_timeout_ms\\u003d15000\\u0026web_player_ss_media_time_offset\\u003dtrue\\u0026web_player_topify_subtitles_for_shorts\\u003dtrue\\u0026web_player_touch_mode_improvements\\u003dtrue\\u0026web_player_transfer_timeout_threshold_ms\\u003d10800000\\u0026web_player_use_cinematic_label_2\\u003dtrue\\u0026web_player_use_heartbeat_poll_delay_ms\\u003dtrue\\u0026web_player_use_new_api_for_quality_pullback\\u003dtrue\\u0026web_player_ve_conversion_fixes_for_channel_info\\u003dtrue\\u0026web_prefetch_preload_video\\u003dtrue\\u0026web_rounded_thumbnails\\u003dtrue\\u0026web_scheduler_auto_init\\u003dtrue\\u0026web_settings_menu_icons\\u003dtrue\\u0026web_smoothness_test_duration_ms\\u003d0\\u0026web_smoothness_test_method\\u003d0\\u0026web_speedmaster_spacebar_control\\u003dtrue\\u0026web_speedmaster_updated_edu\\u003dtrue\\u0026web_yt_config_context\\u003dtrue\\u0026webfe_disable_ab_em_plb\\u003dtrue\\u0026wil_icon_max_concurrent_fetches\\u003d9999\\u0026wil_icon_render_when_idle\\u003dtrue\\u0026wiz_use_generic_logging_infra\\u003dtrue\\u0026woffle_clean_up_after_entity_migration\\u003dtrue\\u0026woffle_enable_download_status\\u003dtrue\\u0026woffle_orchestration\\u003dtrue\\u0026woffle_playlist_optimization\\u003dtrue\\u0026woffle_used_state_report\\u003dtrue\\u0026ytidb_clear_embedded_player\\u003dtrue\\u0026ytidb_fetch_datasync_ids_for_data_cleanup\\u003dtrue\\u0026ytidb_remake_db_retries\\u003d3\\u0026ytidb_reopen_db_retries\\u003d3\\u0026ytidb_transaction_ended_event_rate_limit\\u003d0.02\\u0026ytidb_transaction_ended_event_rate_limit_session\\u003d0.2\\u0026ytidb_transaction_ended_event_rate_limit_transaction\\u003d0.1\",\"cspNonce\":\"xW_SWKdw4-d_OLdvn29m6Q\",\"canaryState\":\"none\",\"datasyncId\":\"Vc2a81ef1||\",\"canaryStage\":\"\"}},\"XSRF_FIELD_NAME\":\"session_token\",\"XSRF_TOKEN\":\"QUFFLUhqbW5QY19GdVkwRkVUVVllOGJFLXJkS1V4dkhOd3xBQ3Jtc0trUXByZU1hSFBNbkFfanNBbWMwVzlrOFYteE9KRFJwYmJFc2RFRm02elh0QVQtS2dJRDN3N0RCMFRkbDdySk5oSTJDbjlDVXFaQVgwY3g1YlJQclNEdG1nZkcwY0V1bHVhRjFTX1FrcVhSUXQ0emY2TQ\\u003d\\u003d\",\"YPC_MB_URL\":\"https://payments.youtube.com/payments/v4/js/integrator.js?ss\\u003dmd\",\"YTR_FAMILY_CREATION_URL\":\"https://families.google.com/webcreation?usegapi\\u003d1\",\"SERVER_VERSION\":\"prod\",\"REUSE_COMPONENTS\":true,\"STAMPER_STABLE_LIST\":true,\"DATASYNC_ID\":\"Vc2a81ef1||\",\"SERIALIZED_CLIENT_CONFIG_DATA\":\"COCy_qoGEMeDsAUQpoGwBRCU-v4SEOno_hIQ1-mvBRCIh7AFEIjjrwUQ1KGvBRDQ4q8FENuvrwUQ95ewBRDrk64FEPaOsAUQ_IWwBRCp968FEJaDsAUQsYewBRCa8K8FEL_3rwUQp_evBRCyxq8FENnJrwUQuIuuBRC9tq4FEK7U_hIQ3ej-EhCrgrAFEKy3rwUQ4divBRCei7AFEKKBsAUQ1YiwBRC3768FEOHyrwUQzN-uBRD6vq8FEOb9_hIQ7qKvBRDi1K4FEL6KsAUQqIGwBRDUkrAFELfq_hIQvPmvBRDnuq8FEK-HsAUQmZGwBRD1-a8FEMyu_hIQpcL-EhDb2K8FEOvo_hIQyfevBRDj2K8FEKuHsAUQrYewBRDf2K8FEKKSsAUQ3IKwBRD1-_4SEL75rwUQ6sOvBRCZlLAFENPhrwUQ6pawBRDks_4SEInorgUQyv-vBRDRiLAF\",\"LIVE_CHAT_BASE_TANGO_CONFIG\":{\"apiKey\":\"AIzaSyDZNkyC-AtROwMBpLfevIvqYk-Gfi8ZOeo\",\"channelUri\":\"https://client-channel.google.com/client-channel/client\",\"clientName\":\"yt-live-comments\",\"requiresAuthToken\":true,\"senderUri\":\"https://clients4.google.com/invalidation/lcs/client\",\"useNewTango\":true},\"FEXP_EXPERIMENTS\":[23983296,23986028,24004644,24007246,24080738,24135310,24208765,24371398,24371779,24385728,24439361,24524098,24543193,24543197,24543199,24543201,24549786,24550458,24559327,24560416,24566293,24566687,24699899,51006181,51010235,51012165,51017346,51026715,51027535,51028271,51030311,51035166,51037540,51038399,51038805,51039199,51039493,51039699,51041809,51044150,51044152,51044154,51044158,51046164,51047619,51049006,51054675,51055917,51056050,51057534,51060161,51067339,51069001],\"LIVE_CHAT_SEND_MESSAGE_ACTION\":\"live_chat/watch_page/send\",\"ROOT_VE_TYPE\":3854,\"CLIENT_PROTOCOL\":\"h2\",\"CLIENT_TRANSPORT\":\"tcp\",\"EOM_VISITOR_DATA\":\"CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D\",\"TIME_CREATED_MS\":1700764000730,\"BUTTON_REWORK\":true,\"VALID_SESSION_TEMPDATA_DOMAINS\":[\"youtu.be\",\"youtube.com\",\"www.youtube.com\",\"web-green-qa.youtube.com\",\"web-release-qa.youtube.com\",\"web-integration-qa.youtube.com\",\"m.youtube.com\",\"mweb-green-qa.youtube.com\",\"mweb-release-qa.youtube.com\",\"mweb-integration-qa.youtube.com\",\"studio.youtube.com\",\"studio-green-qa.youtube.com\",\"studio-integration-qa.youtube.com\"],\"WORKER_PERFORMANCE_URL\":{\"privateDoNotAccessOrElseTrustedResourceUrlWrappedValue\":\"/s/desktop/bd3558ba/jsbin/worker-performance.vflset/worker-performance.js\"},\"RAW_COLD_CONFIG_GROUP\":{\"configData\":\"COCy_qoGEO26rQUQ65OuBRC9tq4FEOLUrgUQ--iuBRD-6K4FENjurgUQpMWvBRD-768FEMr_rwUQloOwBRCviLAFENGIsAUQvoqwBRCei7AFEPaOsAUQo4-wBRCZkbAFEKKSsAUQ1JKwBRDtkrAFEJmUsAUQnZSwBRDqlrAFEKiXsAUQ95ewBRCembAFGjJBT2pGb3gxcWE5dlpoSkFhYTNEcUFEN0p5dmJZNHpFRzJvWHBsRDhlMXVjd2g3QkthZyIyQU9qRm94MXFhOXZaaEpBYWEzRHFBRDdKeXZiWTR6RUcyb1hwbEQ4ZTF1Y3doN0JLYWcqXENBTVNRUTBlZ3Bhb0FzZ1dfZ1dtSDlJU19RYlFFcmNQMVFDNkFEcUZGaFVqa29MUUROdjJCbzRlc2tiZVlwMHZnNFFGcWdQajBRYUJqTXdMbGt6Yk9QbEgtc1lH\",\"mainAppColdConfig\":{\"iosSsoSafariFsiPromoEnabled\":true,\"iosTodayWidgetEnabled\":false,\"iosEnableDynamicFontSizing\":false,\"enableMobileAutoOffline\":false,\"androidEnablePip\":false,\"postsV2\":false,\"enableDetailedNetworkStatusReporting\":false,\"hourToReportNetworkStatus\":0,\"networkStatusReportingWindowSecs\":0,\"iosSearchviewRefactoryEnabled\":false,\"ngwFlexyEnabled\":false,\"iosWatchExpandTransitionWithoutSnapshot\":false,\"androidNgwUiEnabled\":false,\"androidThumbnailMonitorEnabled\":false,\"androidThumbnailMonitorCount\":0,\"androidThumbnailMonitorMinimumWidth\":0,\"enableGhostCards\":false,\"enableInlineMuted\":false,\"ngwFlexyMaxCropRatio\":1.0,\"androidRestoreBrowseContentsFromBackStack\":false,\"searchHintExp\":\"search_youtube\"}},\"RAW_HOT_CONFIG_GROUP\":{\"mainAppHotConfig\":{\"iosWatchExpandTransition\":false,\"iosEarlySetWatchTransition\":false,\"exposeConfigRefreshSetting\":false,\"iosEnableSearchButtonOnPlayerOverlay\":false,\"iosMinimumTooltipDurationMsecs\":1000,\"iosFreshHomeIntervalSecs\":0,\"iosFreshSubscriptionsIntervalSecs\":0,\"iosTodayWidgetRefreshIntervalSecs\":28800,\"iosFreshNotificationsInboxIntervalSecs\":0,\"signedOutNotificationsIosPrompt\":true,\"iosFreshFullRefresh\":false},\"loggingHotConfig\":{\"eventLoggingConfig\":{\"enabled\":true,\"payloadPolicies\":[{\"enabled\":true,\"payloadNumber\":219,\"tier\":\"DELAYED_EVENT_TIER_FAST\"},{\"enabled\":true,\"payloadNumber\":469,\"tier\":\"DELAYED_EVENT_TIER_FAST\"},{\"enabled\":true,\"payloadNumber\":6,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"},{\"enabled\":true,\"payloadNumber\":5,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"},{\"enabled\":true,\"payloadNumber\":7,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"},{\"enabled\":true,\"payloadNumber\":434,\"tier\":\"DELAYED_EVENT_TIER_DISPATCH_TO_EMPTY\"}],\"maxAgeHours\":720,\"requestRetryEnabled\":true,\"retryConfig\":{\"fixedBatchRetryEnabled\":false},\"shouldForceSetAllPayloadsToImmediateTier\":false},\"csiConfig\":{\"loggingUrl\":{\"baseUrl\":\"https://www.youtube.com/csi_204\"},\"iosHomeActionThroughCsi204Enabled\":false,\"browseActionThroughCsi204Enabled\":true,\"browseActionThroughGelEnabled\":false,\"debugSampleWeight\":10,\"debugTicks\":[{\"tickName\":\"ada\"},{\"tickName\":\"ais_a\"},{\"tickName\":\"ais_r\"},{\"tickName\":\"arb_f\"},{\"tickName\":\"ari\"},{\"tickName\":\"fab_r\"},{\"tickName\":\"fcb_r\"},{\"tickName\":\"fvb\"},{\"tickName\":\"fvb_r\"},{\"tickName\":\"gv\"},{\"tickName\":\"mb_s\"},{\"tickName\":\"nreqs\"},{\"tickName\":\"nrese\"},{\"tickName\":\"oafs_r\"},{\"tickName\":\"oais_r\"},{\"tickName\":\"ogpd\"},{\"tickName\":\"omd_c\"},{\"tickName\":\"omd_s\"},{\"tickName\":\"omp_c\"},{\"tickName\":\"omp_r\"},{\"tickName\":\"oprd_c\"},{\"tickName\":\"oprd_s\"},{\"tickName\":\"oprr\"},{\"tickName\":\"or_fs\"},{\"tickName\":\"or_p\"},{\"tickName\":\"or100k\"},{\"tickName\":\"orf\"},{\"tickName\":\"orfb\"},{\"tickName\":\"orh_r\"},{\"tickName\":\"ormk\"},{\"tickName\":\"orpr\"},{\"tickName\":\"osor\"},{\"tickName\":\"ovfs_r\"},{\"tickName\":\"ovis_r\"},{\"tickName\":\"pl_c\"},{\"tickName\":\"r_wrr\"},{\"tickName\":\"r_wrs\"},{\"tickName\":\"vda\"},{\"tickName\":\"vis_a\"},{\"tickName\":\"vis_r\"},{\"tickName\":\"vrb_f\"},{\"tickName\":\"vri\"}]}}},\"SERIALIZED_HOT_HASH_DATA\":\"COCy_qoGEhMyODQ0ODEzNjEwMDYxNTgzMjg2GOCy_qoGKJTk_BIo3JP9EijGsv0SKKq0_RIopdD9Eiiekf4SKJqt_hIoyMr-Eijdzv4SKKjh_hIoovX-Eijh9v4SKLP5_hIo9fv-EiiY_P4SKN39_hIo7v3-EijF_v4SMjJBT2pGb3gxcWE5dlpoSkFhYTNEcUFEN0p5dmJZNHpFRzJvWHBsRDhlMXVjd2g3QkthZzoyQU9qRm94MXFhOXZaaEpBYWEzRHFBRDdKeXZiWTR6RUcyb1hwbEQ4ZTF1Y3doN0JLYWdCMENBTVNJQTBMb3RmNkZiNF95Z0NvT2NBUkZSZmR6OElNcUpzQ2ktNEI4ZUFPdFlBRQ%3D%3D\",\"SERIALIZED_COLD_HASH_DATA\":\"COCy_qoGEhM4OTgwNzI3ODM3MDc1MDIyOTQ3GOCy_qoGMjJBT2pGb3gxcWE5dlpoSkFhYTNEcUFEN0p5dmJZNHpFRzJvWHBsRDhlMXVjd2g3QkthZzoyQU9qRm94MXFhOXZaaEpBYWEzRHFBRDdKeXZiWTR6RUcyb1hwbEQ4ZTF1Y3doN0JLYWdCXENBTVNRUTBlZ3Bhb0FzZ1dfZ1dtSDlJU19RYlFFcmNQMVFDNkFEcUZGaFVqa29MUUROdjJCbzRlc2tiZVlwMHZnNFFGcWdQajBRYUJqTXdMbGt6Yk9QbEgtc1lH\",\"PERSIST_IDENTITY_IFRAME_URL\":{\"privateDoNotAccessOrElseTrustedResourceUrlWrappedValue\":\"https://studio.youtube.com/persist_identity\"},\"WORKER_SERIALIZATION_URL\":{\"privateDoNotAccessOrElseTrustedResourceUrlWrappedValue\":\"/s/desktop/bd3558ba/jsbin/worker-serialization.vflset/worker-serialization.js\"},\"WEBVIEW_EOM\":false,\"VISIBILITY_TIME_BETWEEN_JOBS_MS\":100,\"START_IN_THEATER_MODE\":false,\"START_IN_FULL_WINDOW_MODE\":false,\"SERVICE_WORKER_PROMPT_NOTIFICATIONS\":true,\"SBOX_LABELS\":{\"SUGGESTION_DISMISS_LABEL\":\"Remove\",\"SUGGESTION_DISMISSED_LABEL\":\"Suggestion removed\"},\"ONE_PICK_URL\":\"\",\"NO_EMPTY_DATA_IMG\":true,\"MENTIONS_EDU_HELP_LINK\":\"https://support.google.com/youtube/?p\\u003dcreator_community\",\"IS_HOMEPAGE_COLD\":true,\"DEFERRED_DETACH\":true,\"RECAPTCHA_V3_SITEKEY\":\"6LedoOcUAAAAAHA4CFG9zRpaCNjYj33SYjzQ9cTy\",\"PLAYER_JS_URL\":\"/s/player/63e90c30/player_ias.vflset/en_US/base.js\",\"PLAYER_CSS_URL\":\"/s/player/63e90c30/www-player.css\",\"LINK_GAL_DOMAIN\":\"https://accountlinking-pa-clients6.youtube.com\",\"LINK_OIS_DOMAIN\":\"oauthintegrations-clients6.youtube.com\",\"IS_TABLET\":false,\"LINK_API_KEY\":\"AIzaSyDophAQuyyiBr8h0nypEwXUKozH-BEswD0\",\"DISABLE_WARM_LOADS\":false,\"VOZ_API_KEY\":\"AIzaSyBU2xE_JHvB6wag3tMfhxXpg2Q_W8xnM-I\",\"STS\":19681,\"SBOX_SETTINGS\":{\"HAS_ON_SCREEN_KEYBOARD\":false,\"IS_FUSION\":false,\"IS_POLYMER\":true,\"REQUEST_DOMAIN\":\"it\",\"REQUEST_LANGUAGE\":\"en\",\"SEND_VISITOR_DATA\":true,\"SEARCHBOX_BEHAVIOR_EXPERIMENT\":\"zero-prefix\",\"SEARCHBOX_ENABLE_REFINEMENT_SUGGEST\":true,\"SEARCHBOX_TAP_TARGET_EXPERIMENT\":0,\"SEARCHBOX_ZERO_TYPING_SUGGEST_USE_REGULAR_SUGGEST\":\"always\",\"VISITOR_DATA\":\"CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D\",\"SEARCHBOX_HOST_OVERRIDE\":\"suggestqueries-clients6.youtube.com\",\"HIDE_REMOVE_LINK\":false},\"SBOX_JS_URL\":\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/www-searchbox.vflset/www-searchbox.js\"}); window.ytcfg.obfuscatedData_ = [];var setMessage=function(msg){if(window.yt\u0026\u0026yt.setMsg)yt.setMsg(msg);else{window.ytcfg=window.ytcfg||{};ytcfg.msgs=msg}};\nsetMessage({\"ADDED_TO_QUEUE\":\"Added to queue\",\"ADD_TO_DROPDOWN_LABEL\":\"Save to...\",\"AD_BADGE_TEXT\":\"Ad\",\"AD_TITLE\":\"Ad: $title.\",\"BACK_ALT_LABEL\":\"Back\",\"BACK_ONLINE\":\"Back online\",\"CANCEL\":\"Cancel\",\"CAPTION_OFF_TOAST\":\"Subtitles/CC turned off\",\"CAPTION_ON_TOAST\":\"Subtitles/CC turned on\",\"CHARACTER_LIMIT\":\"Use fewer than $number characters\",\"CHECK_CONNECTION_OR_DOWNLOADS\":\"Please check your connection or watch your downloaded videos.\",\"CHIP_BAR_ALT_LABEL\":\"More videos\",\"CLEAR\":\"Clear\",\"CLOSE\":\"Close\",\"CLOSED_CAPTIONS_DISABLED\":\"No captions are available for this video\",\"CLOSED_CAPTIONS_OFF\":\"Subtitles/CC turned off\",\"CLOSED_CAPTIONS_ON\":\"Subtitles/CC turned on\",\"COMMENT_LABEL\":\"Comment\",\"CONNECT_TO_THE_INTERNET\":\"Connect to the internet\",\"CONTINUE_WATCHING\":\"Continue watching\",\"DELETE\":\"Delete\",\"DELETED_PLAYLIST\":\"Playlist deleted from downloads.\",\"DELETED_VIDEO\":\"Video deleted from downloads.\",\"DELETE_ALL_DOWNLOADS_PROMPT\":\"Delete all downloads?\",\"DELETE_FROM_DOWNLOADS\":\"Remove from downloads\",\"DELETING_ALL\":\"Downloads are being deleted\",\"DISLIKE_LABEL\":\"Dislike\",\"DISMISS\":\"Dismiss\",\"DMA_CONSENT_CONFIRMATION\":\"Your choice will take effect on March 6, 2024. You can change your choices anytime in your Google Account.\",\"DMA_CONSENT_GENERAL_ERROR\":\"Something went wrong while loading\",\"DMA_CONSENT_RECORD_ERROR\":\"Something went wrong and your choices were not saved\",\"DOWNLOAD\":\"Download\",\"DOWNLOADED\":\"Downloaded\",\"DOWNLOADING\":\"Downloading\",\"DOWNLOADING_PERCENT\":\"Downloading... $percent%\",\"DOWNLOADS\":\"Downloads\",\"DOWNLOADS_AVAILABILITY\":\"Downloads remain available as long as your device has an active internet connection at least once every 30 days.\",\"DOWNLOADS_SETTINGS\":\"Downloads Settings\",\"DOWNLOAD_EXPIRED\":\"Download expired\",\"DOWNLOAD_PAUSED\":\"Download paused\",\"DOWNLOAD_QUALITY\":\"Download Quality\",\"DO_NOT_HAVE_DOWNLOADS\":\"You do not have any downloads\",\"EDIT_AVATAR_LABEL\":\"Edit profile picture\",\"EDU_GOT_IT\":\"Got It\",\"END_OF_PLAYLIST\":\"End of playlist\",\"ENTER_DATE_OR_EARLIER\":\"Enter $allowed_date or earlier\",\"ENTER_DATE_OR_LATER\":\"Enter $allowed_date or later\",\"FREEBIE_JOIN_MEMBERSHIP_EDU_TEXT\":\"This channel offers a membership which you can join for free with YouTube Premium\",\"GET_PREMIUM\":\"Get Premium\",\"GO_TO_DOWNLOADS\":\"Go to downloads\",\"GUIDE_ALT_LABEL\":\"Guide\",\"HORIZONTAL_LIST_NEXT_LABEL\":\"Next\",\"HORIZONTAL_LIST_PREVIOUS_LABEL\":\"Previous\",\"IMAGE_HORIZONTAL_POSITION_LABEL\":\"The center of the preview is $x_percent% from the left and $y_percent% from the right.\",\"IMAGE_VERTICAL_POSITION_LABEL\":\"The center of the preview is $x_percent% from the top and $y_percent% from the bottom.\",\"INVALID_DATE_ERROR\":\"Invalid Date\",\"JOIN_MEMBERSHIP_EDU_TEXT\":\"Get access to exclusive perks when you purchase a membership to this channel.\",\"JOIN_MEMBERSHIP_EDU_TITLE\":\"Membership\",\"KEEP_OPEN\":\"Keep this window open to continue\",\"LIBRARY_GUIDE_ITEM_EDU_TEXT\":\"Find your history, playlists, purchases, and more\",\"LIBRARY_GUIDE_ITEM_EDU_TITLE\":\"Check out your new Library\",\"LIKE_LABEL\":\"Like\",\"LOCAL_TIME_LABEL\":\"Local Time\",\"LOGO_ALT_LABEL\":\"YouTube Home\",\"MAIN_APP_WEB_COMMENT_TEASER_TOOLTIP\":\"Click here to read comments while watching the video.\",\"MANAGE_MEMBERSHIP_EDU_TEXT\":\"Access your benefits and manage your membership from here.\",\"MENTIONS_EDU_TEXT\":\"Go to the Help Center to see how mentions work on YouTube.\",\"MENTIONS_EDU_TITLE\":\"Learn more\",\"MINIPLAYER_CLOSE\":\"Close player\",\"MINIPLAYER_COLLAPSE_LABEL\":\"Collapse\",\"MINIPLAYER_EXPAND_LABEL\":\"Expand\",\"MUTE_VOLUME\":\"Mute\",\"NEXT_VIDEO_LABEL\":\"Next video\",\"NOT_NOW\":\"Not now\",\"NO_ANGLE_BRACKET_LABEL\":\"Playlist title cannot contain \\u003c or \\u003e\",\"NO_DOWNLOADS\":\"No downloads\",\"NO_INTERNET_CONNECTION\":\"No internet connection\",\"OFFLINE_CHECK_CONNECTION\":\"You\\u0027re offline. Check your connection.\",\"PAUSE_DOWNLOADING\":\"Pause downloading\",\"PLAYER_LABEL_MUTE\":\"Mute (m)\",\"PLAYER_LABEL_PAUSE\":\"Pause (k)\",\"PLAYER_LABEL_PLAY\":\"Play (k)\",\"PLAYER_LABEL_UNMUTE\":\"Unmute (m)\",\"PLAYLIST_NEXT_VIDEO_TITLE\":\"Next: $video_title\",\"PLAY_ALL\":\"Play all\",\"PREPARING_TO_DOWNLOAD\":\"Preparing to download...\",\"PREVIOUS_VIDEO_LABEL\":\"Previous video\",\"QUEUE\":\"Queue\",\"QUEUE_CLEARED\":\"{count,plural, \\u003d1{1 video in the queue removed}other{# videos in the queue removed}}\",\"QUEUE_CLEARED_UNPLURALIZED\":\"Queue cleared\",\"QUEUE_CLOSE_MINIPLAYER_CONFIRM_BODY_TEXT\":\"Are you sure you want to close the player?\",\"QUEUE_CLOSE_MINIPLAYER_CONFIRM_TITLE\":\"Queue will be cleared\",\"QUEUE_RECOVER_BUTTON\":\"Restore\",\"QUEUE_RECOVER_MESSAGE\":\"Recover queue\",\"REACH_BOTTOM_OF_IMAGE_TEXT\":\"You have reached the bottom of the image\",\"REACH_LEFT_OF_IMAGE_TEXT\":\"You have reached the left of the image\",\"REACH_RIGHT_OF_IMAGE_TEXT\":\"You have reached the right of the image\",\"REACH_TOP_OF_IMAGE_TEXT\":\"You have reached the top of the image\",\"REMEMBER_MY_SETTINGS\":\"Remember my settings\",\"REMEMBER_MY_SETTINGS_N_DAYS\":\"Remember my settings for $days_till_expired days.\",\"REPOSITION_IMAGE_HORIZONTALLY_LABEL\":\"Use left and right arrow keys to reposition the preview\",\"REPOSITION_IMAGE_VERTICALLY_LABEL\":\"Use up and down arrow keys to reposition the preview\",\"REQUIRED_LABEL\":\"Required\",\"RESUME_DOWNLOAD\":\"Resume download\",\"RETRY\":\"Retry\",\"SBOX_INAPPROPRIATE_ADDITIONAL\":\"Provide additional details (optional)\",\"SBOX_INAPPROPRIATE_CANCEL\":\"Cancel\",\"SBOX_INAPPROPRIATE_CATEGORY\":\"The selected predictions are:\",\"SBOX_INAPPROPRIATE_DANGEROUS\":\"Dangerous and harmful activity\",\"SBOX_INAPPROPRIATE_EXPLICIT\":\"Sexually explicit\",\"SBOX_INAPPROPRIATE_HATEFUL\":\"Hateful\",\"SBOX_INAPPROPRIATE_OTHER\":\"Other\",\"SBOX_INAPPROPRIATE_PROMPT\":\"Report search predictions\",\"SBOX_INAPPROPRIATE_REASON\":\"Reason (required)\",\"SBOX_INAPPROPRIATE_REPORT\":\"Report\",\"SBOX_INAPPROPRIATE_SUBMIT\":\"Submit\",\"SBOX_INAPPROPRIATE_SUGGESTIONS\":\"Select predictions you would like to report:\",\"SBOX_INAPPROPRIATE_TITLE\":\"Report search predictions\",\"SBOX_INAPPROPRIATE_TOAST\":\"Thanks for your feedback!\",\"SBOX_INAPPROPRIATE_VIOLENT\":\"Violent\",\"SBOX_PLACEHOLDER\":\"Search\",\"SBOX_VOICE_OVERLAY_PLACEHOLDER\":\"Listening...\",\"SEEK_SLIDER\":\"Seek slider\",\"SHARE_LABEL\":\"Share\",\"SHARE_POST_EDU_TEXT\":\"Now you can share posts on YouTube\",\"SHOW_LESS\":\"Show less\",\"SHOW_MORE\":\"Show more\",\"SIGN_IN_LABEL\":\"Sign in\",\"SMART_DOWNLOADS\":\"Smart downloads\",\"SMART_DOWNLOADS_UPDATING\":\"Updating Smart downloads...\",\"SMART_DOWNLOADS_UPDATING_RATIO\":\"Updating Smart downloads... $downloaded/$total\",\"STORAGE_FULL\":\"Storage full\",\"SUBSCRIBE_LABEL\":\"Subscribe\",\"SUBS_FILTER_EDU_CHANNEL_TEXT\":\"Now showing new videos from this channel.\",\"SUBS_FILTER_EDU_TEXT\":\"See new videos from each channel\",\"SUBS_GUIDE_ITEM_EDU_TEXT\":\"See new videos from all of your subscriptions\",\"SUGGEST_NEW_VIDEOS_TEXT\":\"New videos\",\"TIMEZONE_FORMAT\":\"($utc_offset_text) $city_name\",\"TRANSFER_FAILED\":\"Download failed\",\"TRY_AGAIN_LATER\":\"Something went wrong. Please try again later.\",\"TURN_OFF\":\"Turn off\",\"TURN_ON\":\"Turn on\",\"UNAVAILABLE_OFFLINE\":\"Unavailable offline\",\"UNDO\":\"Undo\",\"UNDO_ACTION\":\"Undo\",\"UNMUTE_VOLUME\":\"Unmute\",\"UPDATED_TIME\":\"Updated $relative_time\",\"UPDATE_SMART_DOWNLOADS_NOW\":\"Update now\",\"UPDATING\":\"Updating...\",\"UTC_OFFSET_FORMAT\":\"GMT$utc_offset\",\"VIDEOS_DOWNLOADING\":{\"case1\":\"Downloading 1 video...\",\"other\":\"Downloading # videos...\"},\"VIDEOS_DOWNLOADING_RATIO\":\"Downloading... $downloaded/$total\",\"VIDEO_ACTION_MENU\":\"Action menu\",\"VIEW_DOWNLOADS\":\"View\",\"VIEW_FULL_PLAYLIST\":\"View full playlist\",\"WAITING_FOR_INTERNET\":\"Waiting for internet connection...\",\"WAITING_TO_DOWNLOAD\":\"Waiting to download...\",\"YOU_ARE_OFFLINE\":\"You are offline\",\"__lang__\":\"en\"});})();ytcfg.set(\"initialInnerWidth\",window.innerWidth);ytcfg.set(\"initialInnerHeight\",window.innerHeight);\n\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('lpcf', null, '');}\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/scheduler.vflset/scheduler.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/www-i18n-constants-en_US.vflset/www-i18n-constants.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/www-tampering.vflset/www-tampering.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/spf.vflset/spf.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif(window[\"_spf_state\"])window[\"_spf_state\"].config={\"assume-all-json-requests-chunked\":true};\n\u003c/script\u003e\u003cscript src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/network.vflset/network.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('csl', null, '');}\u003c/script\u003e\u003clink rel=\"stylesheet\" href=\"//fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700\u0026family=YouTube+Sans:wght@300..900\u0026display=swap\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003e\u003cscript name=\"www-roboto\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (document.fonts \u0026\u0026 document.fonts.load) {document.fonts.load(\"400 10pt Roboto\", \"\"); document.fonts.load(\"500 10pt Roboto\", \"\");}\u003c/script\u003e\u003clink rel=\"stylesheet\" href=\"https://www.youtube.com/s/desktop/bd3558ba/cssbin/www-main-desktop-home-page-skeleton.css\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003e\u003clink rel=\"stylesheet\" href=\"https://www.youtube.com/s/desktop/bd3558ba/cssbin/www-onepick.css\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003e\u003clink rel=\"stylesheet\" href=\"https://www.youtube.com/s/_/ytmainappweb/_/ss/k=ytmainappweb.kevlar_base.CylGSP1vG8k.L.B1.O/am=AEAo/d=0/rs=AGKMywHTPz1th-7oAagrpGI2fpCQAkR8Hw\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003e\u003cstyle class=\"global_styles\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003ebody{padding:0;margin:0;overflow-y:scroll}body.autoscroll{overflow-y:auto}body.no-scroll{overflow:hidden}body.no-y-scroll{overflow-y:hidden}.hidden{display:none}textarea{--paper-input-container-input_-_white-space:pre-wrap}.grecaptcha-badge{visibility:hidden}\u003c/style\u003e\u003cstyle class=\"masthead_shell\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003eytd-masthead.shell{background-color:#fff!important;position:fixed;top:0;right:0;left:0;display:-ms-flex;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex;height:56px;-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-moz-box-align:center;align-items:center}ytd-masthead.shell #menu-icon{margin-left:16px}ytd-app\u003eytd-masthead.chunked{position:fixed;top:0;width:100%}ytd-masthead.shell.dark,ytd-masthead.shell.theater{background-color:#0f0f0f!important}ytd-masthead.shell.full-window-mode{background-color:#0f0f0f!important;opacity:0;-webkit-transform:translateY(calc(-100% - 5px));transform:translateY(calc(-100% - 5px))}ytd-masthead.shell\u003e:first-child{padding-left:16px}ytd-masthead.shell\u003e:last-child{padding-right:16px}ytd-masthead #masthead-logo{display:-ms-flex;display:-webkit-flex;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:flex}ytd-masthead #masthead-logo #country-code{margin-right:2px}ytd-masthead.shell #yt-logo-red-svg,ytd-masthead.shell #yt-logo-red-updated-svg,ytd-masthead.shell #yt-logo-svg,ytd-masthead.shell #yt-logo-updated-svg{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;margin-left:8px;padding:0;color:#000}ytd-masthead.shell #a11y-skip-nav{display:none}ytd-masthead.shell svg{width:40px;height:40px;padding:8px;margin-right:8px;-moz-box-sizing:border-box;box-sizing:border-box;color:#606060;fill:currentColor}ytd-masthead .external-icon{width:24px;height:24px}ytd-masthead .yt-icons-ext{fill:currentColor;color:#606060}ytd-masthead.shell.dark .yt-icons-ext ytd-masthead.shell.theater .yt-icons-ext{fill:#fff}ytd-masthead svg#yt-logo-svg{width:80px}ytd-masthead svg#yt-logo-red-svg{width:106.4px}ytd-masthead svg#yt-logo-updated-svg{width:90px}ytd-masthead svg#yt-logo-red-updated-svg{width:97px}@media (max-width:656px){ytd-masthead.shell\u003e:first-child{padding-left:8px}ytd-masthead.shell\u003e:last-child{padding-right:8px}ytd-masthead.shell svg{margin-right:0}ytd-masthead #masthead-logo{-ms-flex:1 1 0.000000001px;-webkit-flex:1;-webkit-box-flex:1;-moz-box-flex:1;flex:1;-webkit-flex-basis:0.000000001px;-ms-flex-preferred-size:0.000000001px;flex-basis:0.000000001px}ytd-masthead.shell #yt-logo-red-svg,ytd-masthead.shell #yt-logo-svg{margin-left:4px}}@media (min-width:876px){ytd-masthead #masthead-logo{width:129px}}#masthead-skeleton-icons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-moz-box-orient:horizontal;-moz-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-webkit-justify-content:flex-end;-moz-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}ytd-masthead.masthead-finish #masthead-skeleton-icons{display:none}.masthead-skeleton-icon{border-radius:50%;height:32px;width:32px;margin:0 8px;background-color:#e3e3e3}ytd-masthead.dark .masthead-skeleton-icon{background-color:#292929}\u003c/style\u003e\u003cstyle class=\"masthead_custom_styles\" is=\"custom-style\" id=\"ext-styles\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003e:-stv-set-elsewhere{--yt-spec-icon-active-other:initial}ytd-masthead .yt-icons-ext{color:var(--yt-spec-icon-active-other)}ytd-masthead svg#yt-logo-red-svg #youtube-red-paths path,ytd-masthead svg#yt-logo-red-updated-svg #youtube-red-paths path,ytd-masthead svg#yt-logo-svg #youtube-paths path,ytd-masthead svg#yt-logo-updated-svg #youtube-paths path{fill:#282828}ytd-masthead.dark svg#yt-logo-red-svg #youtube-red-paths path,ytd-masthead.dark svg#yt-logo-red-updated-svg #youtube-red-paths path,ytd-masthead.dark svg#yt-logo-svg #youtube-paths path,ytd-masthead.dark svg#yt-logo-updated-svg #youtube-paths path,ytd-masthead.theater svg#yt-logo-red-svg #youtube-red-paths path,ytd-masthead.theater svg#yt-logo-svg #youtube-paths path{fill:#fff}\u003c/style\u003e\u003cstyle class=\"searchbox\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003e#search-input.ytd-searchbox-spt input{-webkit-appearance:none;-webkit-font-smoothing:antialiased;background-color:transparent;border:none;box-shadow:none;color:inherit;font-family:Roboto,Noto,sans-serif;font-size:16px;font-weight:400;line-height:24px;margin-left:4px;max-width:100%;outline:none;text-align:inherit;width:100%;-ms-flex:1 1 0.000000001px;-webkit-flex:1;-webkit-box-flex:1;-moz-box-flex:1;flex:1;-webkit-flex-basis:0.000000001px;-ms-flex-preferred-size:0.000000001px;flex-basis:0.000000001px}#search-container.ytd-searchbox-spt{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}#search-input.ytd-searchbox-spt #search::-webkit-input-placeholder{color:#888}#search-input.ytd-searchbox-spt #search::-moz-input-placeholder{color:#888}#search-input.ytd-searchbox-spt #search:-ms-input-placeholder{color:#888}\u003c/style\u003e\u003cstyle class=\"kevlar_global_styles\" nonce=\"kJjun5IvzN4fmjIJ3C6Vxg\"\u003ehtml{background-color:#fff!important;-webkit-text-size-adjust:none}html[dark]{background-color:#0f0f0f!important}#logo-red-icon-container.ytd-topbar-logo-renderer{width:86px}\u003c/style\u003e\u003cmeta name=\"theme-color\" content=\"rgba(255, 255, 255, 0.98)\"\u003e\u003clink rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"https://www.youtube.com/opensearch?locale=en_US\" title=\"YouTube\"\u003e\u003clink rel=\"manifest\" href=\"/manifest.webmanifest\" crossorigin=\"use-credentials\"\u003e\u003c/head\u003e\u003cbody dir=\"ltr\"\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('bs', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eytcfg.set('initialBodyClientWidth', document.body.clientWidth);\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('ai', null, '');}\u003c/script\u003e\u003ciframe name=\"passive_signin\" src=\"https://accounts.google.com/ServiceLogin?service=youtube\u0026amp;uilel=3\u0026amp;passive=true\u0026amp;continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3D%252Fsignin_passive%26feature%3Dpassive\u0026amp;hl=en\" style=\"display: none\"\u003e\u003c/iframe\u003e\u003cytd-app\u003e\u003cytd-masthead id=\"masthead\" logo-type=\"YOUTUBE_LOGO\" slot=\"masthead\" class=\"shell \"\u003e\u003cdiv id=\"search-container\" class=\"ytd-searchbox-spt\" slot=\"search-container\"\u003e\u003c/div\u003e\u003cdiv id=\"search-input\" class=\"ytd-searchbox-spt\" slot=\"search-input\"\u003e\u003cinput id=\"search\" autocapitalize=\"none\" autocomplete=\"off\" autocorrect=\"off\" hidden name=\"search_query\" tabindex=\"0\" type=\"text\" spellcheck=\"false\"\u003e\u003c/div\u003e\u003csvg id=\"menu-icon\" class=\"external-icon\" preserveAspectRatio=\"xMidYMid meet\"\u003e\u003cg id=\"menu\" class=\"yt-icons-ext\" viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M21,6H3V5h18V6z M21,11H3v1h18V11z M21,17H3v1h18V17z\"/\u003e\u003c/g\u003e\u003c/svg\u003e\u003cdiv id=\"masthead-logo\" slot=\"masthead-logo\"\u003e\u003ca style=\"display: none;\" href=\"/\" title=\"YouTube\"\u003e\u003csvg id=\"yt-logo-updated-svg\" class=\"external-icon\" viewBox=\"0 0 90 20\"\u003e\u003cg id=\"yt-logo-updated\" viewBox=\"0 0 90 20\" preserveAspectRatio=\"xMidYMid meet\"\u003e\u003cg\u003e\u003cpath d=\"M27.9727 3.12324C27.6435 1.89323 26.6768 0.926623 25.4468 0.597366C23.2197 2.24288e-07 14.285 0 14.285 0C14.285 0 5.35042 2.24288e-07 3.12323 0.597366C1.89323 0.926623 0.926623 1.89323 0.597366 3.12324C2.24288e-07 5.35042 0 10 0 10C0 10 2.24288e-07 14.6496 0.597366 16.8768C0.926623 18.1068 1.89323 19.0734 3.12323 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6768 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9727 3.12324Z\" fill=\"#FF0000\"/\u003e\u003cpath d=\"M11.4253 14.2854L18.8477 10.0004L11.4253 5.71533V14.2854Z\" fill=\"white\"/\u003e\u003c/g\u003e\u003cg\u003e\u003cg id=\"youtube-paths\"\u003e\u003cpath d=\"M34.6024 13.0036L31.3945 1.41846H34.1932L35.3174 6.6701C35.6043 7.96361 35.8136 9.06662 35.95 9.97913H36.0323C36.1264 9.32532 36.3381 8.22937 36.665 6.68892L37.8291 1.41846H40.6278L37.3799 13.0036V18.561H34.6001V13.0036H34.6024Z\"/\u003e\u003cpath d=\"M41.4697 18.1937C40.9053 17.8127 40.5031 17.22 40.2632 16.4157C40.0257 15.6114 39.9058 14.5437 39.9058 13.2078V11.3898C39.9058 10.0422 40.0422 8.95805 40.315 8.14196C40.5878 7.32588 41.0135 6.72851 41.592 6.35457C42.1706 5.98063 42.9302 5.79248 43.871 5.79248C44.7976 5.79248 45.5384 5.98298 46.0981 6.36398C46.6555 6.74497 47.0647 7.34234 47.3234 8.15137C47.5821 8.96275 47.7115 10.0422 47.7115 11.3898V13.2078C47.7115 14.5437 47.5845 15.6161 47.3329 16.4251C47.0812 17.2365 46.672 17.8292 46.1075 18.2031C45.5431 18.5771 44.7764 18.7652 43.8098 18.7652C42.8126 18.7675 42.0342 18.5747 41.4697 18.1937ZM44.6353 16.2323C44.7905 15.8231 44.8705 15.1575 44.8705 14.2309V10.3292C44.8705 9.43077 44.7929 8.77225 44.6353 8.35833C44.4777 7.94206 44.2026 7.7351 43.8074 7.7351C43.4265 7.7351 43.156 7.94206 43.0008 8.35833C42.8432 8.77461 42.7656 9.43077 42.7656 10.3292V14.2309C42.7656 15.1575 42.8408 15.8254 42.9914 16.2323C43.1419 16.6415 43.4123 16.8461 43.8074 16.8461C44.2026 16.8461 44.4777 16.6415 44.6353 16.2323Z\"/\u003e\u003cpath d=\"M56.8154 18.5634H54.6094L54.3648 17.03H54.3037C53.7039 18.1871 52.8055 18.7656 51.6061 18.7656C50.7759 18.7656 50.1621 18.4928 49.767 17.9496C49.3719 17.4039 49.1743 16.5526 49.1743 15.3955V6.03751H51.9942V15.2308C51.9942 15.7906 52.0553 16.188 52.1776 16.4256C52.2999 16.6631 52.5045 16.783 52.7914 16.783C53.036 16.783 53.2712 16.7078 53.497 16.5573C53.7228 16.4067 53.8874 16.2162 53.9979 15.9858V6.03516H56.8154V18.5634Z\"/\u003e\u003cpath d=\"M64.4755 3.68758H61.6768V18.5629H58.9181V3.68758H56.1194V1.42041H64.4755V3.68758Z\"/\u003e\u003cpath d=\"M71.2768 18.5634H69.0708L68.8262 17.03H68.7651C68.1654 18.1871 67.267 18.7656 66.0675 18.7656C65.2373 18.7656 64.6235 18.4928 64.2284 17.9496C63.8333 17.4039 63.6357 16.5526 63.6357 15.3955V6.03751H66.4556V15.2308C66.4556 15.7906 66.5167 16.188 66.639 16.4256C66.7613 16.6631 66.9659 16.783 67.2529 16.783C67.4974 16.783 67.7326 16.7078 67.9584 16.5573C68.1842 16.4067 68.3488 16.2162 68.4593 15.9858V6.03516H71.2768V18.5634Z\"/\u003e\u003cpath d=\"M80.609 8.0387C80.4373 7.24849 80.1621 6.67699 79.7812 6.32186C79.4002 5.96674 78.8757 5.79035 78.2078 5.79035C77.6904 5.79035 77.2059 5.93616 76.7567 6.23014C76.3075 6.52412 75.9594 6.90747 75.7148 7.38489H75.6937V0.785645H72.9773V18.5608H75.3056L75.5925 17.3755H75.6537C75.8724 17.7988 76.1993 18.1304 76.6344 18.3774C77.0695 18.622 77.554 18.7443 78.0855 18.7443C79.038 18.7443 79.7412 18.3045 80.1904 17.4272C80.6396 16.5476 80.8653 15.1765 80.8653 13.3092V11.3266C80.8653 9.92722 80.7783 8.82892 80.609 8.0387ZM78.0243 13.1492C78.0243 14.0617 77.9867 14.7767 77.9114 15.2941C77.8362 15.8115 77.7115 16.1808 77.5328 16.3971C77.3564 16.6158 77.1165 16.724 76.8178 16.724C76.585 16.724 76.371 16.6699 76.1734 16.5594C75.9759 16.4512 75.816 16.2866 75.6937 16.0702V8.96062C75.7877 8.6196 75.9524 8.34209 76.1852 8.12337C76.4157 7.90465 76.6697 7.79646 76.9401 7.79646C77.2271 7.79646 77.4481 7.90935 77.6034 8.13278C77.7609 8.35855 77.8691 8.73485 77.9303 9.26636C77.9914 9.79787 78.022 10.5528 78.022 11.5335V13.1492H78.0243Z\"/\u003e\u003cpath d=\"M84.8657 13.8712C84.8657 14.6755 84.8892 15.2776 84.9363 15.6798C84.9833 16.0819 85.0821 16.3736 85.2326 16.5594C85.3831 16.7428 85.6136 16.8345 85.9264 16.8345C86.3474 16.8345 86.639 16.6699 86.7942 16.343C86.9518 16.0161 87.0365 15.4705 87.0506 14.7085L89.4824 14.8519C89.4965 14.9601 89.5035 15.1106 89.5035 15.3011C89.5035 16.4582 89.186 17.3237 88.5534 17.8952C87.9208 18.4667 87.0247 18.7536 85.8676 18.7536C84.4777 18.7536 83.504 18.3185 82.9466 17.446C82.3869 16.5735 82.1094 15.2259 82.1094 13.4008V11.2136C82.1094 9.33452 82.3987 7.96105 82.9772 7.09558C83.5558 6.2301 84.5459 5.79736 85.9499 5.79736C86.9165 5.79736 87.6597 5.97375 88.1771 6.32888C88.6945 6.684 89.059 7.23433 89.2707 7.98457C89.4824 8.7348 89.5882 9.76961 89.5882 11.0913V13.2362H84.8657V13.8712ZM85.2232 7.96811C85.0797 8.14449 84.9857 8.43377 84.9363 8.83593C84.8892 9.2381 84.8657 9.84722 84.8657 10.6657V11.5641H86.9283V10.6657C86.9283 9.86133 86.9001 9.25221 86.846 8.83593C86.7919 8.41966 86.6931 8.12803 86.5496 7.95635C86.4062 7.78702 86.1851 7.7 85.8864 7.7C85.5854 7.70235 85.3643 7.79172 85.2232 7.96811Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/a\u003e\u003ca style=\"display: none;\" href=\"/\" title=\"YouTube\"\u003e\u003csvg id=\"yt-logo-red-updated-svg\" class=\"external-icon\" viewBox=\"0 0 97 20\" style=\"width: 97px;\"\u003e\u003cg id=\"yt-logo-red-updated\" viewBox=\"0 0 97 20\" preserveAspectRatio=\"xMidYMid meet\"\u003e\u003cg\u003e\u003cpath d=\"M27.9704 3.12324C27.6411 1.89323 26.6745 0.926623 25.4445 0.597366C23.2173 2.24288e-07 14.2827 0 14.2827 0C14.2827 0 5.34807 2.24288e-07 3.12088 0.597366C1.89323 0.926623 0.924271 1.89323 0.595014 3.12324C-2.8036e-07 5.35042 0 10 0 10C0 10 -1.57002e-06 14.6496 0.597364 16.8768C0.926621 18.1068 1.89323 19.0734 3.12324 19.4026C5.35042 20 14.285 20 14.285 20C14.285 20 23.2197 20 25.4468 19.4026C26.6769 19.0734 27.6435 18.1068 27.9727 16.8768C28.5701 14.6496 28.5701 10 28.5701 10C28.5701 10 28.5677 5.35042 27.9704 3.12324Z\" fill=\"#FF0000\"/\u003e\u003cpath d=\"M11.4275 14.2854L18.8475 10.0004L11.4275 5.71533V14.2854Z\" fill=\"white\"/\u003e\u003c/g\u003e\u003cg id=\"youtube-red-paths\"\u003e\u003cpath d=\"M40.0566 6.34524V7.03668C40.0566 10.4915 38.5255 12.5118 35.1742 12.5118H34.6638V18.5583H31.9263V1.42285H35.414C38.6078 1.42285 40.0566 2.7728 40.0566 6.34524ZM37.1779 6.59218C37.1779 4.09924 36.7287 3.50658 35.1765 3.50658H34.6662V10.4727H35.1365C36.6064 10.4727 37.1803 9.40968 37.1803 7.10253L37.1779 6.59218Z\"/\u003e\u003cpath d=\"M46.5336 5.8345L46.3901 9.08238C45.2259 8.83779 44.264 9.02123 43.836 9.77382V18.5579H41.1196V6.0391H43.2857L43.5303 8.75312H43.6337C43.9183 6.77288 44.8379 5.771 46.0232 5.771C46.1949 5.7757 46.3666 5.79687 46.5336 5.8345Z\"/\u003e\u003cpath d=\"M49.6567 13.2456V13.8782C49.6567 16.0842 49.779 16.8415 50.7198 16.8415C51.6182 16.8415 51.8228 16.1501 51.8439 14.7178L54.2734 14.8613C54.4568 17.5565 53.0481 18.763 50.6586 18.763C47.7588 18.763 46.9004 16.8627 46.9004 13.4126V11.223C46.9004 7.58707 47.8599 5.80908 50.7409 5.80908C53.6407 5.80908 54.3769 7.32131 54.3769 11.0984V13.2456H49.6567ZM49.6567 10.6703V11.5687H51.7193V10.675C51.7193 8.37258 51.5547 7.71172 50.6821 7.71172C49.8096 7.71172 49.6567 8.38669 49.6567 10.675V10.6703Z\"/\u003e\u003cpath d=\"M68.4103 9.09902V18.5557H65.5928V9.30834C65.5928 8.28764 65.327 7.77729 64.7132 7.77729C64.2216 7.77729 63.7724 8.06186 63.4667 8.59338C63.4832 8.76271 63.4902 8.93439 63.4879 9.10373V18.5605H60.668V9.30834C60.668 8.28764 60.4022 7.77729 59.7884 7.77729C59.2969 7.77729 58.8665 8.06186 58.5631 8.57456V18.5628H55.7456V6.03929H57.9728L58.2221 7.63383H58.2621C58.8947 6.42969 59.9178 5.77588 61.1219 5.77588C62.3072 5.77588 62.9799 6.36854 63.288 7.43157C63.9418 6.34973 64.9225 5.77588 66.0443 5.77588C67.7564 5.77588 68.4103 7.00119 68.4103 9.09902Z\"/\u003e\u003cpath d=\"M69.8191 2.8338C69.8191 1.4862 70.3106 1.09814 71.3501 1.09814C72.4132 1.09814 72.8812 1.54734 72.8812 2.8338C72.8812 4.22373 72.4108 4.57181 71.3501 4.57181C70.3106 4.56945 69.8191 4.22138 69.8191 2.8338ZM69.9837 6.03935H72.6789V18.5629H69.9837V6.03935Z\"/\u003e\u003cpath d=\"M81.891 6.03955V18.5631H79.6849L79.4403 17.032H79.3792C78.7466 18.2573 77.827 18.7677 76.684 18.7677C75.0095 18.7677 74.2522 17.7046 74.2522 15.3975V6.0419H77.0697V15.2352C77.0697 16.3382 77.3002 16.7874 77.867 16.7874C78.3844 16.7663 78.8477 16.4582 79.0688 15.9902V6.0419H81.891V6.03955Z\"/\u003e\u003cpath d=\"M96.1901 9.09893V18.5557H93.3726V9.30825C93.3726 8.28755 93.1068 7.7772 92.493 7.7772C92.0015 7.7772 91.5523 8.06177 91.2465 8.59329C91.263 8.76027 91.2701 8.9296 91.2677 9.09893V18.5557H88.4502V9.30825C88.4502 8.28755 88.1845 7.7772 87.5706 7.7772C87.0791 7.7772 86.6487 8.06177 86.3453 8.57447V18.5627H83.5278V6.0392H85.7527L85.9973 7.63139H86.0372C86.6699 6.42725 87.6929 5.77344 88.8971 5.77344C90.0824 5.77344 90.755 6.3661 91.0631 7.42913C91.7169 6.34729 92.6976 5.77344 93.8194 5.77344C95.541 5.77579 96.1901 7.0011 96.1901 9.09893Z\"/\u003e\u003cpath d=\"M40.0566 6.34524V7.03668C40.0566 10.4915 38.5255 12.5118 35.1742 12.5118H34.6638V18.5583H31.9263V1.42285H35.414C38.6078 1.42285 40.0566 2.7728 40.0566 6.34524ZM37.1779 6.59218C37.1779 4.09924 36.7287 3.50658 35.1765 3.50658H34.6662V10.4727H35.1365C36.6064 10.4727 37.1803 9.40968 37.1803 7.10253L37.1779 6.59218Z\"/\u003e\u003c/g\u003e\u003c/g\u003e\u003c/svg\u003e\u003c/a\u003e\u003cspan id=\"country-code\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv id=\"masthead-skeleton-icons\" slot=\"masthead-skeleton\"\u003e\u003cdiv class=\"masthead-skeleton-icon\"\u003e\u003c/div\u003e\u003cdiv class=\"masthead-skeleton-icon\"\u003e\u003c/div\u003e\u003cdiv class=\"masthead-skeleton-icon\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/ytd-masthead\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/about/\" style=\"display: none;\"\u003eAbout\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/about/press/\" style=\"display: none;\"\u003ePress\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/about/copyright/\" style=\"display: none;\"\u003eCopyright\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"/t/contact_us/\" style=\"display: none;\"\u003eContact us\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/creators/\" style=\"display: none;\"\u003eCreators\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://www.youtube.com/ads/\" style=\"display: none;\"\u003eAdvertise\u003c/a\u003e\u003ca slot=\"guide-links-primary\" href=\"https://developers.google.com/youtube\" style=\"display: none;\"\u003eDevelopers\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"/t/terms\" style=\"display: none;\"\u003eTerms\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"/t/privacy\" style=\"display: none;\"\u003ePrivacy\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"https://www.youtube.com/about/policies/\" style=\"display: none;\"\u003ePolicy \u0026amp; Safety\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"https://www.youtube.com/howyoutubeworks?utm_campaign=ytgen\u0026amp;utm_source=ythp\u0026amp;utm_medium=LeftNav\u0026amp;utm_content=txt\u0026amp;u=https%3A%2F%2Fwww.youtube.com%2Fhowyoutubeworks%3Futm_source%3Dythp%26utm_medium%3DLeftNav%26utm_campaign%3Dytgen\" style=\"display: none;\"\u003eHow YouTube works\u003c/a\u003e\u003ca slot=\"guide-links-secondary\" href=\"/new\" style=\"display: none;\"\u003eTest new features\u003c/a\u003e\u003cdiv id=\"copyright\" slot=\"copyright\" style=\"display: none;\"\u003e\u003cdiv dir=\"ltr\" style=\"display:inline\"\u003e\u0026copy; 2023 Google LLC\u003c/div\u003e\u003c/div\u003e\u003c/ytd-app\u003e\u003cdiv id=\"home-page-skeleton\"\u003e\u003cdiv id=\"guide-skeleton\"\u003e\u003c/div\u003e\u003cdiv id=\"home-container-skeleton\"\u003e\u003cdiv id=\"home-chips\"\u003e\u003c/div\u003e\u003cdiv id=\"home-container-media\"\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"rich-grid-media-skeleton\" style=\"min-width: 310px; flex-basis: 310px;\"\u003e\u003cdiv class=\"video-details\"\u003e\u003cdiv class=\"rich-thumbnail skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details\"\u003e\u003cdiv class=\"channel-avatar skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"details-text-shell\"\u003e\u003cdiv class=\"rich-video-title text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003cdiv class=\"rich-video-meta text-shell skeleton-bg-color\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('gcc', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('nc_pj', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('rsbe_dpj', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('js_ld', null, '');}\u003c/script\u003e\u003cscript id=\"base-js\" src=\"https://www.youtube.com/s/desktop/bd3558ba/jsbin/desktop_polymer.vflset/desktop_polymer.js\" nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003e\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('rsef_dpj', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('rsae_dpj', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('js_r', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('ac', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003evar onPolymerReady = function(e) {window.removeEventListener('script-load-dpj', onPolymerReady);if (window.ytcsi) {window.ytcsi.tick('apr', null, '');}}; if (window.Polymer \u0026\u0026 Polymer.RenderStatus) {onPolymerReady();} else {window.addEventListener('script-load-dpj', onPolymerReady);}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003eif (window.ytcsi) {window.ytcsi.tick('pdc', null, '');}\u003c/script\u003e\u003cscript nonce=\"xW_SWKdw4-d_OLdvn29m6Q\"\u003evar ytInitialData = {\"responseContext\":{\"serviceTrackingParams\":[{\"service\":\"GUIDED_HELP\",\"params\":[{\"key\":\"context\",\"value\":\"yt_web_unknown_form_factor_kevlar_w2w\"},{\"key\":\"logged_in\",\"value\":\"0\"}]},{\"service\":\"GFEEDBACK\",\"params\":[{\"key\":\"context\",\"value\":\"yt_web_unknown_form_factor_kevlar_w2w\"},{\"key\":\"browse_id\",\"value\":\"FEwhat_to_watch\"},{\"key\":\"browse_id_prefix\",\"value\":\"\"},{\"key\":\"logged_in\",\"value\":\"0\"},{\"key\":\"e\",\"value\":\"23804281,23946420,23966208,23983296,23986028,23998056,24004644,24007246,24034168,24036947,24077241,24080738,24120820,24135310,24140247,24166867,24181174,24187377,24208765,24241378,24255543,24255545,24288664,24290971,24291857,24299873,24367580,24371398,24371779,24377598,24377910,24382552,24385728,24387949,24390675,24428788,24428941,24428944,24439361,24451319,24453989,24458839,24463871,24468724,24485421,24506515,24506784,24515423,24517093,24518452,24524098,24526515,24526642,24526774,24526787,24526794,24526797,24526806,24526815,24526823,24528550,24528559,24528577,24528582,24528640,24528647,24528659,24528666,24532148,24537200,24539025,24540881,24542367,24542452,24543193,24543197,24543199,24543201,24546060,24546075,24548627,24548629,24549786,24550285,24550458,24559327,24559699,24560416,24561142,24561147,24561152,24561206,24561383,24561412,24563746,24566293,24566687,24585907,24586687,24588590,24589493,24694842,24697067,24698452,24699899,39324156,51003636,51004018,51006181,51006338,51009757,51009781,51009900,51010235,51012165,51012291,51012659,51014091,51016856,51017346,51019442,51019626,51020570,51021953,51025415,51025833,51026715,51027535,51027870,51028271,51029412,51030103,51030311,51031235,51033399,51033577,51035166,51036438,51036511,51036735,51037088,51037346,51037353,51037540,51038399,51038805,51039199,51039493,51039699,51040473,51040842,51041266,51041331,51041497,51041809,51042257,51043059,51043940,51044150,51044152,51044154,51044158,51044723,51045016,51045888,51045969,51046164,51047537,51047579,51047619,51048488,51049006,51049611,51052043,51053957,51054668,51054675,51055016,51055107,51055917,51055919,51056050,51057396,51057534,51057811,51057820,51057842,51057857,51059134,51059323,51059543,51059573,51060161,51061018,51061427,51061467,51061926,51063131,51063140,51063143,51063154,51063327,51065641,51065729,51067339,51067810,51069001,51069319,51069838,51070585\"}]},{\"service\":\"CSI\",\"params\":[{\"key\":\"yt_fn\",\"value\":\"what_to_watch\"},{\"key\":\"c\",\"value\":\"WEB\"},{\"key\":\"cver\",\"value\":\"2.20231121.08.00\"},{\"key\":\"yt_li\",\"value\":\"0\"},{\"key\":\"GetHome_rid\",\"value\":\"0x29921eaa031cc939\"}]},{\"service\":\"GOOGLE_HELP\",\"params\":[{\"key\":\"browse_id\",\"value\":\"FEwhat_to_watch\"},{\"key\":\"browse_id_prefix\",\"value\":\"\"}]},{\"service\":\"ECATCHER\",\"params\":[{\"key\":\"client.version\",\"value\":\"2.20231121\"},{\"key\":\"client.name\",\"value\":\"WEB\"},{\"key\":\"client.fexp\",\"value\":\"24166867,51004018,24698452,24543193,51069838,51031235,51057534,24548629,51061467,51037088,51033399,51020570,24034168,24559327,24451319,24561412,24515423,51067810,24485421,24526642,51054675,24542452,51052043,51054668,51044154,51063143,51070585,24588590,24458839,51038805,24528582,24528647,24526806,51055917,24561383,51044723,24543199,24518452,24532148,51019442,24439361,51009757,51036735,24528640,51027870,51045888,24241378,24255543,23946420,51040473,51028271,24428944,24135310,24699899,24548627,51017346,51035166,51042257,51033577,24549786,51069319,24546060,51059323,24517093,51061926,24428941,51037346,51057820,24526787,24526823,51036511,24537200,51043940,51012291,51025415,24453989,24506515,24524098,51009781,51019626,51041266,24561206,24468724,51036438,51057857,24697067,51037540,24526815,24694842,24385728,24546075,51041331,51047579,51055107,51040842,51016856,51037353,24561147,39324156,51025833,51069001,24463871,24526794,24528577,24377910,51057396,51053957,51045969,51057842,24585907,51030103,51065729,51041497,23804281,51006338,51055016,51059134,24586687,24543197,23986028,51030311,24539025,51044150,24428788,51057811,51039699,24187377,23983296,24036947,24540881,51026715,51067339,23998056,24288664,24563746,51029412,24528666,24528659,24566687,51061018,51046164,24077241,24561142,51063154,24140247,24528550,24290971,24560416,24371779,51044158,24550285,24004644,51056050,24371398,24387949,51006181,51027535,51059573,51063327,51047537,51038399,24526515,51012659,24255545,51063140,24120820,24390675,24526774,51010235,24007246,24367580,51065641,24080738,24589493,51044152,51043059,24299873,24566293,51021953,24561152,51049611,51047619,51009900,24377598,24559699,51003636,24550458,51012165,51049006,24291857,24506784,51059543,51055919,51041809,51063131,24542367,24526797,24181174,51039199,24528559,24382552,51045016,51014091,51048488,51060161,23966208,24543201,51039493,51061427,24208765\"}]}],\"maxAgeSeconds\":300,\"mainAppWebResponseContext\":{\"loggedOut\":true,\"trackingParam\":\"kx_fmPxhoPZRemMIo5DJrpANoiWBEPs-MVZXM4UqQy1R8_wRgkuswmIBwOcCE59TDtslLKPQ-SS\"},\"webResponseContextExtensionData\":{\"ytConfigData\":{\"visitorData\":\"CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D\",\"rootVisualElementType\":3854},\"hasDecorated\":true}},\"contents\":{\"twoColumnBrowseResultsRenderer\":{\"tabs\":[{\"tabRenderer\":{\"selected\":true,\"content\":{\"richGridRenderer\":{\"contents\":[{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"Z-RqHz5EJqo\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/Z-RqHz5EJqo/hq720.jpg?sqp=-oaymwE2COgCEMoBSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgB_gmAAtAFigIMCAAQARhyIFYoOzAP\\u0026rs=AOn4CLD2v49BPSVfl87gik72Ft_BSDJGSA\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/Z-RqHz5EJqo/hq720.jpg?sqp=-oaymwE2CNAFEJQDSFXyq4qpAygIARUAAIhCGAFwAcABBvABAfgB_gmAAtAFigIMCAAQARhyIFYoOzAP\\u0026rs=AOn4CLCLGAD3eamvLcRFj25UNTOPRvrxfQ\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Digging A SECRET GARAGE Part 2\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Digging A SECRET GARAGE Part 2 by colinfurze 393,343 views 2 hours ago 21 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"We have the start of this EPIC ROOM \\nUSE Code COLIN to get £300 off your 8Sleep Pod https://www.eightsleep.com/colin\\n\\nGet your furze bundle boxes and Xmas Jumpers at https://www.colinfurzeshop.com...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"colinfurze\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@colinfurze\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCp68_FLety0O-n9QU6phsgw\",\"canonicalBaseUrl\":\"/@colinfurze\"}}}]},\"publishedTimeText\":{\"simpleText\":\"2 hours ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"21 minutes, 28 seconds\"}},\"simpleText\":\"21:28\"},\"viewCountText\":{\"simpleText\":\"393,343 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtcmVjWg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4YngE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=Z-RqHz5EJqo\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"Z-RqHz5EJqo\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=67e46a1f3e4426aa\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"colinfurze\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@colinfurze\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCp68_FLety0O-n9QU6phsgw\",\"canonicalBaseUrl\":\"/@colinfurze\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"colinfurze\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@colinfurze\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCp68_FLety0O-n9QU6phsgw\",\"canonicalBaseUrl\":\"/@colinfurze\"}}}]},\"trackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQKrNkPLzw5ryZw==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"393K views\"}},\"simpleText\":\"393K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CMwCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CMwCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"Z-RqHz5EJqo\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CMwCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"Z-RqHz5EJqo\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"Z-RqHz5EJqo\"]}}]}},\"trackingParams\":\"CMwCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CMsCENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"Z-RqHz5EJqo\",\"onAddCommand\":{\"clickTrackingParams\":\"CMsCENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"Z-RqHz5EJqo\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CMsCENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtaLVJxSHo1RUpxbw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CMoCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}},\"targetId\":\"browse-video-menu-button\"}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/ytc/APkrFKaW13RSsfz5nob6k86sG-XUxsBkYHLiiDkxcJ8RIw=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@colinfurze\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCp68_FLety0O-n9QU6phsgw\",\"canonicalBaseUrl\":\"/@colinfurze\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"21 minutes, 28 seconds\"}},\"simpleText\":\"21:28\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CMkCEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"Z-RqHz5EJqo\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CMkCEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"Z-RqHz5EJqo\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CMkCEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CMgCEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CMgCEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"Z-RqHz5EJqo\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CMgCEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"Z-RqHz5EJqo\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"Z-RqHz5EJqo\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CMgCEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/Z-RqHz5EJqo/mqdefault_6s.webp?du=3000\\u0026sqp=CMKD_qoG\\u0026rs=AOn4CLBNKsQ-xmN1hoVs_aVcmWTmBJEBbg\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CMcCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtcmVjWg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4YngE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=Z-RqHz5EJqo\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"Z-RqHz5EJqo\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=67e46a1f3e4426aa\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CMYCEJmNBRgAIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richSectionRenderer\":{\"content\":{\"richShelfRenderer\":{\"title\":{\"runs\":[{\"text\":\"Shorts\"}]},\"contents\":[{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"8A_GsMOcWeE\",\"headline\":{\"simpleText\":\"Largest Cake Pop (Official World Record)\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/8A_GsMOcWeE/oar2.jpg\",\"width\":406,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"140 million views\"}},\"simpleText\":\"140M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/8A_GsMOcWeE\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"8A_GsMOcWeE\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jvuu5YoGusDD9dpLNQwuuva\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/8A_GsMOcWeE/frame0.jpg\",\"width\":406,\"height\":720}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CMUCELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"Cgs4QV9Hc01PY1dlRSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgs4QV9Hc01PY1dlRVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CMQCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"8A_GsMOcWeE\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6mQOGz8ZyM1vGH8AE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Largest Cake Pop (Official World Record) - 57 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=8A_GsMOcWeE\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo77ruWKBrrAw_XaSzUMLrr2g%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"8A_GsMOcWeE\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo77ruWKBrrAw_XaSzUMLrr2g%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=f00fc6b0c39c59e1\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CMMCEIf2BBgAIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CMICEJmNBRgAIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"3m4aQSHvdbs\",\"headline\":{\"simpleText\":\"SON Deserves ACTING Award For THIS! 🤣🤣🤣\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/3m4aQSHvdbs/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLBLsNHvYdaMalFsUHeYrIlKbbaIDA\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"55 million views\"}},\"simpleText\":\"55M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/3m4aQSHvdbs\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"3m4aQSHvdbs\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jvTcV6cs4OxieVMHDAGUnV_\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/3m4aQSHvdbs/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CMECELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgszbTRhUVNIdmRicyoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgszbTRhUVNIdmRic1ICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CMACEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"3m4aQSHvdbs\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6mQLvrvY-SyIa33gE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"SON Deserves ACTING Award For THIS! 🤣🤣🤣 - 11 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=3m4aQSHvdbs\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo703FenLODsYnlTBwwBlJ1fw%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"3m4aQSHvdbs\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo703FenLODsYnlTBwwBlJ1fw%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=de6e1a4121ef75bb\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CL8CEIf2BBgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CL4CEJmNBRgBIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"gKX6dEOmGvM\",\"headline\":{\"simpleText\":\"cute deer 🦌 😍\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/gKX6dEOmGvM/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLDuJhJvv00oskPknrtkAobJhgtgbA\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"73 million views\"}},\"simpleText\":\"73M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/gKX6dEOmGvM\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"gKX6dEOmGvM\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtyqciEgFijeoqsgdqS5bpf\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/gKX6dEOmGvM/frame0.jpg\",\"width\":576,\"height\":1024}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CL0CELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtnS1g2ZEVPbUd2TSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtnS1g2ZEVPbUd2TVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CLwCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"gKX6dEOmGvM\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6mQPO1mJ3Ezv7SgAE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"cute deer 🦌 😍 - 14 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=gKX6dEOmGvM\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7cqnIhIBYo3qKrIHakuW6Xw%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"gKX6dEOmGvM\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7cqnIhIBYo3qKrIHakuW6Xw%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=80a5fa7443a61af3\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CLsCEIf2BBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CLoCEJmNBRgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"OIibXW2JS3A\",\"headline\":{\"simpleText\":\"Fan PROPOSES to Maria Sakkari! 💍\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/OIibXW2JS3A/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLCKaZeL0ExnKPcmhNFlqOY8Ibg_1w\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"129 million views\"}},\"simpleText\":\"129M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/OIibXW2JS3A\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"OIibXW2JS3A\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-ju1Ujgn30SaoBjTJIj1b6gz\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/OIibXW2JS3A/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CLkCELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtPSWliWFcySlMzQSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtPSWliWFcySlMzQVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CLgCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"OIibXW2JS3A\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6mQPCWpezW66bEOA==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Fan PROPOSES to Maria Sakkari! 💍 - 40 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=OIibXW2JS3A\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7tVI4J99EmqAY0ySI9W-oMw%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"OIibXW2JS3A\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7tVI4J99EmqAY0ySI9W-oMw%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=38889b5d6d894b70\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CLcCEIf2BBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CLYCEJmNBRgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"-7LJElqFEnQ\",\"headline\":{\"simpleText\":\"Stir the air\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/-7LJElqFEnQ/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLBEqR9_DaLkm4izx9Cvkdi4l9OMPQ\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"43 million views\"}},\"simpleText\":\"43M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/-7LJElqFEnQ\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"-7LJElqFEnQ\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtWrF-oLbux8_0GSVmZHkvr\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/-7LJElqFEnQ/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CLUCELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgstN0xKRWxxRkVuUSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgstN0xKRWxxRkVuUVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CLQCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"-7LJElqFEnQ\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6mQPSklNSlorLZ-wE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Stir the air - 35 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=-7LJElqFEnQ\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7VqxfqC27sfP9BklZmR5L6w%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"-7LJElqFEnQ\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7VqxfqC27sfP9BklZmR5L6w%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=fbb2c9125a851274\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CLMCEIf2BBgEIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CLICEJmNBRgEIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"ofhyQ066TPo\",\"headline\":{\"simpleText\":\"Non è stato facile feeega ✨ #shorts\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/ofhyQ066TPo/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLD65tQY0APOdjwwjZrRnmduewU5MA\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1.6 million views\"}},\"simpleText\":\"1.6M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/ofhyQ066TPo\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"ofhyQ066TPo\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-ju4huZ7pjD13i8NCHkxSIxV\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/ofhyQ066TPo/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CLECELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtvZmh5UTA2NlRQbyoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtvZmh5UTA2NlRQb1ICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CLACEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"ofhyQ066TPo\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6mQPqZ6fW0yJz8oQE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Non è stato facile feeega ✨ #shorts - 35 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=ofhyQ066TPo\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7uIbme6Yw9d4vDQh5MUiMVQ%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"ofhyQ066TPo\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7uIbme6Yw9d4vDQh5MUiMVQ%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=a1f872434eba4cfa\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CK8CEIf2BBgFIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CK4CEJmNBRgFIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"eAutzGk8gU0\",\"headline\":{\"simpleText\":\"What I ordered vs what I got #grwm\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/eAutzGk8gU0/oardefault.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLD6V8xDk-loQQo-vW8I-EQQxeUgwQ\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"5.7 million views\"}},\"simpleText\":\"5.7M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/eAutzGk8gU0\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"eAutzGk8gU0\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-juvdRKtRCxVL975QhJWJr7h\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/eAutzGk8gU0/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CK0CELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtlQXV0ekdrOGdVMCoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtlQXV0ekdrOGdVMFICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CKwCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"eAutzGk8gU0\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6mQM2C8snGueuFeA==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"What I ordered vs what I got #grwm - 15 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=eAutzGk8gU0\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7r3USrUQsVS_e-UISVia-4Q%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"eAutzGk8gU0\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7r3USrUQsVS_e-UISVia-4Q%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=780badcc693c814d\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CKsCEIf2BBgGIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CKoCEJmNBRgGIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"_aHLLLmYCjI\",\"headline\":{\"simpleText\":\"Best Bride Entrance Ever! 😱\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/_aHLLLmYCjI/oardefault.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLAl6RxkAa00G2ETI2b2kL7BdgMIrg\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"4.3 million views\"}},\"simpleText\":\"4.3M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/_aHLLLmYCjI\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"_aHLLLmYCjI\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jv1JroRt-12IyHVJn_aPY4N\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/_aHLLLmYCjI/frame0.jpg\",\"width\":720,\"height\":1280}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CKkCELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtfYUhMTExtWUNqSSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtfYUhMTExtWUNqSVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CKgCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"_aHLLLmYCjI\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6mQLKU4MzL5fLQ_QE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Best Bride Entrance Ever! 😱 - 31 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=_aHLLLmYCjI\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo79Sa6EbftdiMh1SZ_2j2ODQ%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"_aHLLLmYCjI\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo79Sa6EbftdiMh1SZ_2j2ODQ%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=fda1cb2cb9980a32\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CKcCEIf2BBgHIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CKYCEJmNBRgHIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"2dQuv4Pc5o0\",\"headline\":{\"simpleText\":\"respect 💯🙄🥶😱\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/2dQuv4Pc5o0/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLC3nEoBUQ6xONbRr_Q3388qPlBj5g\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"25 million views\"}},\"simpleText\":\"25M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/2dQuv4Pc5o0\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"2dQuv4Pc5o0\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jvdXQti3utKU2vtV54JgRQJ\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/2dQuv4Pc5o0/frame0.jpg\",\"width\":720,\"height\":1280}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CKUCELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgsyZFF1djRQYzVvMCoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgsyZFF1djRQYzVvMFICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CKQCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"2dQuv4Pc5o0\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6mQI3N857414vq2QE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"respect 💯🙄🥶😱 - 18 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=2dQuv4Pc5o0\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo73V0LYt7rSlNr7VeeCYEUCQ%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"2dQuv4Pc5o0\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo73V0LYt7rSlNr7VeeCYEUCQ%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=d9d42ebf83dce68d\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CKMCEIf2BBgIIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CKICEJmNBRgIIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"h0I10UmFijY\",\"headline\":{\"simpleText\":\"Spicy Ramen 🌶️🍜🥵 #shorts\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/h0I10UmFijY/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLB3a4hjB9NogMVDzNbvwkQO1UrNPg\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"18 million views\"}},\"simpleText\":\"18M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/h0I10UmFijY\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"h0I10UmFijY\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtNuCi8LuYcGUUOWbBSQJpM\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/h0I10UmFijY/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CKECELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtoMEkxMFVtRmlqWSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtoMEkxMFVtRmlqWVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CKACEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"h0I10UmFijY\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6mQLaUlsyUuo2hhwE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Spicy Ramen 🌶️🍜🥵 #shorts - 51 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=h0I10UmFijY\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7TbgovC7mHBlFDlmwUkCaTA%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"h0I10UmFijY\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7TbgovC7mHBlFDlmwUkCaTA%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=874235d149858a36\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CJ8CEIf2BBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CJ4CEJmNBRgJIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"mJNkzjOeKdE\",\"headline\":{\"simpleText\":\"How Babies get an X Ray\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/mJNkzjOeKdE/oar2.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=\\u0026rs=AOn4CLB22g6ED5fw7V9Hq8yUe7EamwfkmQ\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"11 million views\"}},\"simpleText\":\"11M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/mJNkzjOeKdE\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"mJNkzjOeKdE\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-ju48QQ7XwlGjSginb-GJqEK\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/mJNkzjOeKdE/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CJ0CELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgttSk5rempPZUtkRSoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgttSk5rempPZUtkRVICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CJwCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"mJNkzjOeKdE\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6mQNHT-JzjmdnJmAE=\",\"accessibility\":{\"accessibilityData\":{\"label\":\"How Babies get an X Ray - 12 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=mJNkzjOeKdE\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7uPEEO18JRo0oIp2_hiahCg%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"mJNkzjOeKdE\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7uPEEO18JRo0oIp2_hiahCg%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=989364ce339e29d1\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CJsCEIf2BBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CJoCEJmNBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"reelItemRenderer\":{\"videoId\":\"PyBvHn-KAZk\",\"headline\":{\"simpleText\":\"This Man Is A Warrior 👏❤️\"},\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/PyBvHn-KAZk/hq720.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=\\u0026rs=AOn4CLDoKGeHI6XDn7ufBxj7iMqznFVOmQ\",\"width\":405,\"height\":720}],\"isOriginalAspectRatio\":true},\"viewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"51 million views\"}},\"simpleText\":\"51M views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/shorts/PyBvHn-KAZk\",\"webPageType\":\"WEB_PAGE_TYPE_SHORTS\",\"rootVe\":37414}},\"reelWatchEndpoint\":{\"videoId\":\"PyBvHn-KAZk\",\"playerParams\":\"8AEBoAMByAMkuAQFogYVAdXZ-jtB902gthlh5PLzBPFy2b3l\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/PyBvHn-KAZk/frame0.jpg\",\"width\":1080,\"height\":1920}],\"isOriginalAspectRatio\":true},\"overlay\":{\"reelPlayerOverlayRenderer\":{\"style\":\"REEL_PLAYER_OVERLAY_STYLE_SHORTS\",\"trackingParams\":\"CJkCELC1BCITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"reelPlayerNavigationModel\":\"REEL_PLAYER_NAVIGATION_MODEL_UNSPECIFIED\"}},\"params\":\"CAUwAg%3D%3D\",\"sequenceProvider\":\"REEL_WATCH_SEQUENCE_PROVIDER_RPC\",\"sequenceParams\":\"CgtQeUJ2SG4tS0FaayoCGAVQGWgA\",\"loggingContext\":{\"vssLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"},\"qoeLoggingContext\":{\"serializedContextData\":\"CgIIDA%3D%3D\"}},\"ustreamerConfig\":\"CAwSGG1MdndaZU9qYzlpR3pxNnFMMkxGS1Q0PQ==\"}},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtQeUJ2SG4tS0Faa1ICCAI%3D\",\"commands\":[{\"clickTrackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CJgCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Share\"}},\"hasSeparator\":true}},{\"menuNavigationItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Send feedback\"}]},\"icon\":{\"iconType\":\"FEEDBACK\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"ignoreNavigation\":true}},\"userFeedbackEndpoint\":{\"additionalDatas\":[{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"video_id\",\"value\":\"PyBvHn-KAZk\"}},{\"userFeedbackEndpointProductSpecificValueData\":{\"key\":\"lockup\",\"value\":\"shelf\"}}]}},\"trackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Send feedback\"}}}}],\"trackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"More actions\"}}}},\"trackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6mQJmDqPzn45uQPw==\",\"accessibility\":{\"accessibilityData\":{\"label\":\"This Man Is A Warrior 👏❤️ - 26 seconds - play video\"}},\"style\":\"REEL_ITEM_STYLE_AVATAR_CIRCLE\",\"videoType\":\"REEL_VIDEO_TYPE_VIDEO\",\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6mMgZnLWhpZ2haD0ZFd2hhdF90b193YXRjaJoBBQgkEI4e\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=PyBvHn-KAZk\\u0026pp=YAHIAQHwAQG6AwIYAqIGFQHV2fo7QfdNoLYZYeTy8wTxctm95Q%3D%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"PyBvHn-KAZk\",\"playerParams\":\"YAHIAQHwAQG6AwIYAqIGFQHV2fo7QfdNoLYZYeTy8wTxctm95Q%3D%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=3f206f1e7f8a0199\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"loggingDirectives\":{\"trackingParams\":\"CJcCEIf2BBgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"visibility\":{\"types\":\"12\"},\"enableDisplayloggerExperiment\":true}}},\"trackingParams\":\"CJYCEJmNBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}}],\"trackingParams\":\"CJMCEN-DAyITCJPO8dDf2oIDFY1fegUdPzEOpg==\",\"showMoreButton\":{\"buttonRenderer\":{\"style\":\"STYLE_OPACITY\",\"size\":\"SIZE_DEFAULT\",\"text\":{\"runs\":[{\"text\":\"Show more\"}]},\"icon\":{\"iconType\":\"EXPAND\"},\"accessibility\":{\"label\":\"Show more\"},\"trackingParams\":\"CJUCEJnjCyITCJPO8dDf2oIDFY1fegUdPzEOpg==\"}},\"isExpanded\":false,\"icon\":{\"iconType\":\"YOUTUBE_SHORTS_BRAND_24\"},\"isTopDividerHidden\":false,\"isBottomDividerHidden\":false,\"showLessButton\":{\"buttonRenderer\":{\"style\":\"STYLE_OPACITY\",\"size\":\"SIZE_DEFAULT\",\"text\":{\"runs\":[{\"text\":\"Show less\"}]},\"icon\":{\"iconType\":\"COLLAPSE\"},\"accessibility\":{\"label\":\"Show less\"},\"trackingParams\":\"CJQCEPBbIhMIk87x0N_aggMVjV96BR0_MQ6m\"}}}},\"trackingParams\":\"CJICEOOXBRgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"fullBleed\":false}},{\"richSectionRenderer\":{\"content\":{\"richShelfRenderer\":{\"title\":{\"runs\":[{\"text\":\"Trending\"}]},\"contents\":[{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"34I8PW17TII\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/34I8PW17TII/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCOW6K9KmT7bDOvO_genEpqp-vDcw\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/34I8PW17TII/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCkOZ0B4oaYdl7x8iS40rbkt9V4Iw\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"BRASIL vs. ARGENTINA [0-1] | RESUMEN | ELIMINATORIAS SUDAMERICANAS | FECHA 6\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"BRASIL vs. ARGENTINA [0-1] | RESUMEN | ELIMINATORIAS SUDAMERICANAS | FECHA 6 by CONMEBOL 8,473,209 views 1 day ago 10 minutes, 9 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"#brasil #argentina #eliminatoriassudamericanas \\n¡Victoria histórica de #Argentina en el clásico! Venció a Brasil como visitante por primera vez en las #EliminatoriasSudamericanas 👏🇦🇷...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"CONMEBOL\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@conmebol\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCzU8-lZlRfkV3nj0RzAZdrQ\",\"canonicalBaseUrl\":\"/@conmebol\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"10 minutes, 9 seconds\"}},\"simpleText\":\"10:09\"},\"viewCountText\":{\"simpleText\":\"8,473,209 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=34I8PW17TII\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"34I8PW17TII\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=df823c3d6d7b4c82\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"CONMEBOL\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@conmebol\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCzU8-lZlRfkV3nj0RzAZdrQ\",\"canonicalBaseUrl\":\"/@conmebol\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"CONMEBOL\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@conmebol\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCzU8-lZlRfkV3nj0RzAZdrQ\",\"canonicalBaseUrl\":\"/@conmebol\"}}}]},\"trackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQIKZ7evWh4_B3wE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"8.4 million views\"}},\"simpleText\":\"8.4M views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CJECEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CJECEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"34I8PW17TII\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CJECEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"34I8PW17TII\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"34I8PW17TII\"]}}]}},\"trackingParams\":\"CJECEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CJACENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"34I8PW17TII\",\"onAddCommand\":{\"clickTrackingParams\":\"CJACENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"34I8PW17TII\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CJACENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgszNEk4UFcxN1RJSQ%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CI8CEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/89JiHsaEsuCuzlcmtemfWyfMtRRbZrjMciCZrWTWT7oRonqiz29iOnBndDifmPQAcF54thytIQ=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@conmebol\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCzU8-lZlRfkV3nj0RzAZdrQ\",\"canonicalBaseUrl\":\"/@conmebol\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"10 minutes, 9 seconds\"}},\"simpleText\":\"10:09\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CI4CEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"34I8PW17TII\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CI4CEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"34I8PW17TII\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CI4CEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CI0CEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CI0CEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"34I8PW17TII\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CI0CEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"34I8PW17TII\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"34I8PW17TII\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CI0CEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/34I8PW17TII/mqdefault_6s.webp?du=3000\\u0026sqp=CIyV_qoG\\u0026rs=AOn4CLDYzz5EaQj11_ek8aFoaKpQW5z1bg\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CIwCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=34I8PW17TII\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"34I8PW17TII\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=df823c3d6d7b4c82\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CIsCEJmNBRgAIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"aif_UpFY6hs\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/aif_UpFY6hs/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBfYwngN8IGxbB5zamvSS-J9-XPGw\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/aif_UpFY6hs/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBetw7QiQQ9DQokg6Gtg0mPuosDRw\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Brasil 0-1 Argentina: Resumen Extendido | Highlights | Melhores momentos CONMEBOL Eliminatorias\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Brasil 0-1 Argentina: Resumen Extendido | Highlights | Melhores momentos CONMEBOL Eliminatorias by Fanatiz 1,066,210 views 1 day ago 16 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Relive the Epic Clash: Brazil 0-1 Argentina | In this thrilling World Cup Qualifier at Maracanã Stadium, witness the historic moment as Argentine Centre back Nicolas Otamendi netted the winning...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Fanatiz\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Fanatiz\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCvEJrtUk0C2wh3P-9DOdblA\",\"canonicalBaseUrl\":\"/@Fanatiz\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"16 minutes, 13 seconds\"}},\"simpleText\":\"16:13\"},\"viewCountText\":{\"simpleText\":\"1,066,210 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=aif_UpFY6hs\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"aif_UpFY6hs\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=6a27ff529158ea1b\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerText\":{\"runs\":[{\"text\":\"Fanatiz\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Fanatiz\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCvEJrtUk0C2wh3P-9DOdblA\",\"canonicalBaseUrl\":\"/@Fanatiz\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Fanatiz\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Fanatiz\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCvEJrtUk0C2wh3P-9DOdblA\",\"canonicalBaseUrl\":\"/@Fanatiz\"}}}]},\"trackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQJvU44qp6v-Tag==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 million views\"}},\"simpleText\":\"1M views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIoCEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CIoCEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"aif_UpFY6hs\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CIoCEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"aif_UpFY6hs\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"aif_UpFY6hs\"]}}]}},\"trackingParams\":\"CIoCEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CIkCENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"aif_UpFY6hs\",\"onAddCommand\":{\"clickTrackingParams\":\"CIkCENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"aif_UpFY6hs\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CIkCENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgthaWZfVXBGWTZocw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CIgCEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/QCNiFPqjSmc4l9HKm4VlbFEGkCRwo8XHzKX2wpRDccuPZkNUwY6nU5s4RXUD4ww-BhSIH5nr=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Fanatiz\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCvEJrtUk0C2wh3P-9DOdblA\",\"canonicalBaseUrl\":\"/@Fanatiz\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"16 minutes, 13 seconds\"}},\"simpleText\":\"16:13\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CIcCEPnnAxgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"aif_UpFY6hs\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CIcCEPnnAxgBIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"aif_UpFY6hs\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CIcCEPnnAxgBIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CIYCEMfsBBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CIYCEMfsBBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"aif_UpFY6hs\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CIYCEMfsBBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"aif_UpFY6hs\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"aif_UpFY6hs\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CIYCEMfsBBgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/aif_UpFY6hs/mqdefault_6s.webp?du=3000\\u0026sqp=CP6k_qoG\\u0026rs=AOn4CLAgOouPCRObAjcxdeTqKI7DySgzWw\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CIUCENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=aif_UpFY6hs\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"aif_UpFY6hs\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=6a27ff529158ea1b\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CIQCEJmNBRgBIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"8FkLRUJj-o0\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/8FkLRUJj-o0/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCNx9k-JjrqBd5DHk-qydp5foMg_A\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/8FkLRUJj-o0/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLD5vK4ywcCtZAWwxW4aNgWy7Amq1A\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"ANIMAL (OFFICIAL TRAILER): Ranbir Kapoor | Rashmika M, Anil K, Bobby D | Sandeep Vanga | Bhushan K\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"ANIMAL (OFFICIAL TRAILER): Ranbir Kapoor | Rashmika M, Anil K, Bobby D | Sandeep Vanga | Bhushan K by T-Series 23,152,517 views 10 hours ago 3 minutes, 33 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"THE ANIMAL, YOU HAVE NEVER SEEN BEFORE! PRESENTING THE OFFICIAL TRAILER OF THE FILM ANIMAL. STARRING RANBIR KAPOOR, RASHMIKA MANDANNA, ANIL KAPOOR, BOBBY DEOL, TRIPTI DIMRI \\u0026 SHAKTI KAPOOR....\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"T-Series\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@tseries\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCq-Fj5jknLsUf-MWSy4_brA\",\"canonicalBaseUrl\":\"/@tseries\"}}}]},\"publishedTimeText\":{\"simpleText\":\"10 hours ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 33 seconds\"}},\"simpleText\":\"3:33\"},\"viewCountText\":{\"simpleText\":\"23,152,517 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=8FkLRUJj-o0\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"8FkLRUJj-o0\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=f0590b454263fa8d\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"T-Series\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@tseries\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCq-Fj5jknLsUf-MWSy4_brA\",\"canonicalBaseUrl\":\"/@tseries\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"T-Series\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@tseries\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCq-Fj5jknLsUf-MWSy4_brA\",\"canonicalBaseUrl\":\"/@tseries\"}}}]},\"trackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQI31j5PU6MKs8AE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"23 million views\"}},\"simpleText\":\"23M views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CIMCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CIMCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"8FkLRUJj-o0\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CIMCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"8FkLRUJj-o0\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"8FkLRUJj-o0\"]}}]}},\"trackingParams\":\"CIMCEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CIICENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"8FkLRUJj-o0\",\"onAddCommand\":{\"clickTrackingParams\":\"CIICENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"8FkLRUJj-o0\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CIICENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgs4RmtMUlVKai1vMA%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CIECEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/y1F4EOGuP19nZcBlzcyCtnHiYhkAOPQiRxwKeaGrOjXarUZZjcx_heiDiC06_Qj6ERea_qWK9A=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@tseries\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCq-Fj5jknLsUf-MWSy4_brA\",\"canonicalBaseUrl\":\"/@tseries\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 33 seconds\"}},\"simpleText\":\"3:33\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CIACEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"8FkLRUJj-o0\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CIACEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"8FkLRUJj-o0\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CIACEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CP8BEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CP8BEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"8FkLRUJj-o0\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CP8BEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"8FkLRUJj-o0\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"8FkLRUJj-o0\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CP8BEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/8FkLRUJj-o0/mqdefault_6s.webp?du=3000\\u0026sqp=CKSn_qoG\\u0026rs=AOn4CLDZ--n8onAbCY1J5sMXe5fxKeDkzA\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CP4BENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=8FkLRUJj-o0\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"8FkLRUJj-o0\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=f0590b454263fa8d\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CP0BEJmNBRgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"mkViD0_tXyU\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/mkViD0_tXyU/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLDHaMvs1duLUV6_lHIqAGErgsSbsg\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/mkViD0_tXyU/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBT5MkqKMqr17Bl4GRfYpf1DHQ5tw\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"RED LOCK DI NUOVO CAMPIONI!\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"RED LOCK DI NUOVO CAMPIONI! by ilMasseo 100,785 views 3 days ago 36 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Fioi ecco finalmente la seconda parte del secondo vlog per celebrare la vittoria della seconda edizione della GOA7 LEAGUE! \\nRicordate di lasciare un follow alla pagina Instagram dei Red Lock...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"ilMasseo\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@ilMasseo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCH5dV7XjIpPGtqYlHXtG20Q\",\"canonicalBaseUrl\":\"/@ilMasseo\"}}}]},\"publishedTimeText\":{\"simpleText\":\"3 days ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"36 minutes, 25 seconds\"}},\"simpleText\":\"36:25\"},\"viewCountText\":{\"simpleText\":\"100,785 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=mkViD0_tXyU\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"mkViD0_tXyU\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=9a45620f4fed5f25\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"ilMasseo\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@ilMasseo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCH5dV7XjIpPGtqYlHXtG20Q\",\"canonicalBaseUrl\":\"/@ilMasseo\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"ilMasseo\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@ilMasseo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCH5dV7XjIpPGtqYlHXtG20Q\",\"canonicalBaseUrl\":\"/@ilMasseo\"}}}]},\"trackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQKW-tf_0wdiimgE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"100K views\"}},\"simpleText\":\"100K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CPwBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPwBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"mkViD0_tXyU\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPwBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"mkViD0_tXyU\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"mkViD0_tXyU\"]}}]}},\"trackingParams\":\"CPwBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CPsBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"mkViD0_tXyU\",\"onAddCommand\":{\"clickTrackingParams\":\"CPsBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"mkViD0_tXyU\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CPsBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgtta1ZpRDBfdFh5VQ%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CPoBEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/ytc/APkrFKZjSpUpyAQqL-lRX00c56V_Cp5ouK7VSP41_OmPtw=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@ilMasseo\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCH5dV7XjIpPGtqYlHXtG20Q\",\"canonicalBaseUrl\":\"/@ilMasseo\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"36 minutes, 25 seconds\"}},\"simpleText\":\"36:25\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPkBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"mkViD0_tXyU\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CPkBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"mkViD0_tXyU\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPkBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPgBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPgBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"mkViD0_tXyU\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPgBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"mkViD0_tXyU\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"mkViD0_tXyU\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPgBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/mkViD0_tXyU/mqdefault_6s.webp?du=3000\\u0026sqp=CKXv_aoG\\u0026rs=AOn4CLDiHdXdL2NcegXtqIY1TIljQU8o7w\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CPcBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=mkViD0_tXyU\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"mkViD0_tXyU\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=9a45620f4fed5f25\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CPYBEJmNBRgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"wj4PF_v29jQ\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/wj4PF_v29jQ/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLAgNnQk03GiBuyOyio063kHaAiXsg\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/wj4PF_v29jQ/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLA_TApmUJP6A3mH07rE6PYj2x3gVg\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Highlights: Irlanda-Italia 2-2 | Under 21 | Qualificazioni U21 EURO 2025\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Highlights: Irlanda-Italia 2-2 | Under 21 | Qualificazioni U21 EURO 2025 by FIGC Azzurri e Azzurre 145,685 views 1 day ago 2 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"A Cork l’Italia pareggia per 2-2 contro l’Irlanda nella quinta gara delle qualificazioni a Euro 2025. Padroni di casa in gol nel primo tempo con Phillips, poi pari di Gnonto su rigore,...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"FIGC Azzurri e Azzurre\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@nazionaledicalcio\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCUnVodBnteAdGONNcUpS_kw\",\"canonicalBaseUrl\":\"/@nazionaledicalcio\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"2 minutes\"}},\"simpleText\":\"2:00\"},\"viewCountText\":{\"simpleText\":\"145,685 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=wj4PF_v29jQ\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"wj4PF_v29jQ\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=c23e0f17fbf6f634\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"FIGC Azzurri e Azzurre\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@nazionaledicalcio\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCUnVodBnteAdGONNcUpS_kw\",\"canonicalBaseUrl\":\"/@nazionaledicalcio\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"FIGC Azzurri e Azzurre\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@nazionaledicalcio\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCUnVodBnteAdGONNcUpS_kw\",\"canonicalBaseUrl\":\"/@nazionaledicalcio\"}}}]},\"trackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQLTs29__4oOfwgE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"145K views\"}},\"simpleText\":\"145K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CPUBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPUBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"wj4PF_v29jQ\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPUBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"wj4PF_v29jQ\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"wj4PF_v29jQ\"]}}]}},\"trackingParams\":\"CPUBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CPQBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"wj4PF_v29jQ\",\"onAddCommand\":{\"clickTrackingParams\":\"CPQBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"wj4PF_v29jQ\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CPQBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgt3ajRQRl92MjlqUQ%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CPMBEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/3VKRMEC6rcY8cbMh9mCVbrVIq8PkW9BE_a_KT8tUAF-QZKLWGmDzJF0Rb3kSiCByjhxSLGO6fw=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@nazionaledicalcio\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCUnVodBnteAdGONNcUpS_kw\",\"canonicalBaseUrl\":\"/@nazionaledicalcio\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"2 minutes\"}},\"simpleText\":\"2:00\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPIBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"wj4PF_v29jQ\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CPIBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"wj4PF_v29jQ\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPIBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CPEBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CPEBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"wj4PF_v29jQ\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CPEBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"wj4PF_v29jQ\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"wj4PF_v29jQ\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CPEBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/wj4PF_v29jQ/mqdefault_6s.webp?du=3000\\u0026sqp=CLir_qoG\\u0026rs=AOn4CLCdAwhejouX4aEocmQ9J2oF5P-sFQ\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CPABENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=wj4PF_v29jQ\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"wj4PF_v29jQ\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=c23e0f17fbf6f634\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CO8BEJmNBRgEIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"tuIozjGR9Pg\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/tuIozjGR9Pg/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCCc1Z8XFj3NjYV9grW2RjrFHZ0xw\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/tuIozjGR9Pg/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLD4S6u9Jmm1cC9Npi1Eug_lYfps8A\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Brazil vs Argentina 0-1 Hіghlіghts \\u0026 All Goals 2023\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Brazil vs Argentina 0-1 Hіghlіghts \\u0026 All Goals 2023 by Arap Soccer 1,701,603 views 1 day ago 8 minutes, 7 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"#Brazil#Argentina#Messi\\nBrazil vs Argentina 0-1 Hіghlіghts \\u0026 All Goals 2023\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Arap Soccer \",\"navigationEndpoint\":{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Arap-Soccer\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCk77wbekBWzB2JbDmvyCgCQ\",\"canonicalBaseUrl\":\"/@Arap-Soccer\"}}}]},\"publishedTimeText\":{\"simpleText\":\"1 day ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"8 minutes, 7 seconds\"}},\"simpleText\":\"8:07\"},\"viewCountText\":{\"simpleText\":\"1,701,603 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=tuIozjGR9Pg\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"tuIozjGR9Pg\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=b6e228ce3191f4f8\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"Arap Soccer \",\"navigationEndpoint\":{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Arap-Soccer\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCk77wbekBWzB2JbDmvyCgCQ\",\"canonicalBaseUrl\":\"/@Arap-Soccer\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Arap Soccer \",\"navigationEndpoint\":{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Arap-Soccer\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCk77wbekBWzB2JbDmvyCgCQ\",\"canonicalBaseUrl\":\"/@Arap-Soccer\"}}}]},\"trackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQPjpx4zjmYrxtgE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1.7 million views\"}},\"simpleText\":\"1.7M views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CO4BEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CO4BEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"tuIozjGR9Pg\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CO4BEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"tuIozjGR9Pg\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"tuIozjGR9Pg\"]}}]}},\"trackingParams\":\"CO4BEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CO0BENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"tuIozjGR9Pg\",\"onAddCommand\":{\"clickTrackingParams\":\"CO0BENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"tuIozjGR9Pg\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CO0BENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"Cgt0dUlvempHUjlQZw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"COwBEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/3unnsYUedZcqooONTuvayr9MN7H_ki4xUq_9MRPSy38qiXTrSoVaN0DK5GP9ql1cT_g4uG7vqA=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@Arap-Soccer\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCk77wbekBWzB2JbDmvyCgCQ\",\"canonicalBaseUrl\":\"/@Arap-Soccer\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"8 minutes, 7 seconds\"}},\"simpleText\":\"8:07\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COsBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"tuIozjGR9Pg\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"COsBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"tuIozjGR9Pg\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COsBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COoBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"COoBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"tuIozjGR9Pg\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"COoBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"tuIozjGR9Pg\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"tuIozjGR9Pg\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COoBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/tuIozjGR9Pg/mqdefault_6s.webp?du=3000\\u0026sqp=CIDx_aoG\\u0026rs=AOn4CLBjENpqa3JZKZmaaoRP_KGbxUx97g\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"COkBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=tuIozjGR9Pg\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"tuIozjGR9Pg\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=b6e228ce3191f4f8\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"COgBEJmNBRgFIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"_DH4WgY8lus\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/_DH4WgY8lus/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLCKxNkAWpENQ1E8YC2BVLNbKqvNjw\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/_DH4WgY8lus/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLDX334XswM6wRWd6EwiZXc9oyUXBA\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Vinz ft Stealth - Hood Life 3\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Vinz ft Stealth - Hood Life 3 by HELLBANIANZ 682,252 views 2 days ago 3 minutes, 25 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"Stream or Download \\\"HOOD LIFE 3\\\" here:\\nhttps://avd.lnk.to/HD3\\n\\nVinz on Instagram: http://instagram.com/selita.ervin\\nStealth on Instagram: http://instagram.com/st3alth.official\\n\\nLyrics: Vinz...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"HELLBANIANZ\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@hellbanianz7653\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCZTjGQcRN7tjqUNGAv4L6pg\",\"canonicalBaseUrl\":\"/@hellbanianz7653\"}}}]},\"publishedTimeText\":{\"simpleText\":\"2 days ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 25 seconds\"}},\"simpleText\":\"3:25\"},\"viewCountText\":{\"simpleText\":\"682,252 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=_DH4WgY8lus\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"_DH4WgY8lus\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=fc31f85a063c96eb\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"HELLBANIANZ\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@hellbanianz7653\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCZTjGQcRN7tjqUNGAv4L6pg\",\"canonicalBaseUrl\":\"/@hellbanianz7653\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"HELLBANIANZ\",\"navigationEndpoint\":{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@hellbanianz7653\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCZTjGQcRN7tjqUNGAv4L6pg\",\"canonicalBaseUrl\":\"/@hellbanianz7653\"}}}]},\"trackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQOut8rGgi_6Y_AE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"682K views\"}},\"simpleText\":\"682K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"COcBEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"COcBEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"_DH4WgY8lus\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"COcBEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"_DH4WgY8lus\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"_DH4WgY8lus\"]}}]}},\"trackingParams\":\"COcBEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"COYBENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"_DH4WgY8lus\",\"onAddCommand\":{\"clickTrackingParams\":\"COYBENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"_DH4WgY8lus\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"COYBENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtfREg0V2dZOGx1cw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"COUBEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/ytc/APkrFKYZPQG2mrZmntMf2bw7vKWpMBJwdn9C0nIawMBk=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@hellbanianz7653\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCZTjGQcRN7tjqUNGAv4L6pg\",\"canonicalBaseUrl\":\"/@hellbanianz7653\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"3 minutes, 25 seconds\"}},\"simpleText\":\"3:25\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COQBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"_DH4WgY8lus\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"COQBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"_DH4WgY8lus\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COQBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"COMBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"COMBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"_DH4WgY8lus\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"COMBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"_DH4WgY8lus\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"_DH4WgY8lus\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"COMBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"COIBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=_DH4WgY8lus\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"_DH4WgY8lus\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=fc31f85a063c96eb\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"COEBEJmNBRgGIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"B9yefLSHzH4\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/B9yefLSHzH4/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLBakD6sRxZAWBZ604OSL2Kht0XI8w\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/B9yefLSHzH4/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLA3JnHqbtrcvSRPtC9jG2FnEtGQ2Q\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Me contro Te - SUPER BABBO NATALE (Canzone Ufficiale)\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Me contro Te - SUPER BABBO NATALE (Canzone Ufficiale) by Me contro Te Music 948,051 views 6 days ago 2 minutes, 26 seconds\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"✨ PRENDI IL CD CON TUTTE LE CANZONI DI NATALE DEI ME CONTRO TE! ✨\\nhttps://amzn.to/3QHrji2\\n\\nSuper Babbo Natale è la prima canzone di Natale di Sofì e Luì! Insieme alla loro band suonano...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"Me contro Te Music\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@MecontroTeMusic\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCwjrf475hoHRJZc5SMnZzng\",\"canonicalBaseUrl\":\"/@MecontroTeMusic\"}}}]},\"publishedTimeText\":{\"simpleText\":\"6 days ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"2 minutes, 26 seconds\"}},\"simpleText\":\"2:26\"},\"viewCountText\":{\"simpleText\":\"948,051 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=B9yefLSHzH4\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"B9yefLSHzH4\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=07dc9e7cb487cc7e\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"Me contro Te Music\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@MecontroTeMusic\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCwjrf475hoHRJZc5SMnZzng\",\"canonicalBaseUrl\":\"/@MecontroTeMusic\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"Me contro Te Music\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@MecontroTeMusic\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCwjrf475hoHRJZc5SMnZzng\",\"canonicalBaseUrl\":\"/@MecontroTeMusic\"}}}]},\"trackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQP6Yn6TLz6fuBw==\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"948K views\"}},\"simpleText\":\"948K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"COABEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"COABEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"B9yefLSHzH4\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"COABEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"B9yefLSHzH4\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"B9yefLSHzH4\"]}}]}},\"trackingParams\":\"COABEP6YBBgJIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CN8BENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"B9yefLSHzH4\",\"onAddCommand\":{\"clickTrackingParams\":\"CN8BENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"B9yefLSHzH4\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CN8BENGqBRgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgtCOXllZkxTSHpINA%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CN4BEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/ytc/APkrFKbtqbjd2ogi9BFlRLBP7SY1tvOi2XomZFZ5VVmBFQ=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@MecontroTeMusic\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCwjrf475hoHRJZc5SMnZzng\",\"canonicalBaseUrl\":\"/@MecontroTeMusic\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"2 minutes, 26 seconds\"}},\"simpleText\":\"2:26\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CN0BEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"B9yefLSHzH4\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CN0BEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"B9yefLSHzH4\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CN0BEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CNwBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CNwBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"B9yefLSHzH4\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CNwBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"B9yefLSHzH4\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"B9yefLSHzH4\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CNwBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CNsBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=B9yefLSHzH4\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"B9yefLSHzH4\",\"playerParams\":\"YAHIAQE%3D\",\"playerExtraUrlParams\":[{\"key\":\"inline\",\"value\":\"1\"}],\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr2---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=07dc9e7cb487cc7e\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}}}},\"trackingParams\":\"CNoBEJmNBRgHIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"richItemRenderer\":{\"content\":{\"videoRenderer\":{\"videoId\":\"36UhfL7rr0c\",\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/vi/36UhfL7rr0c/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLAxUzLamZ2OBFkMnT_b3G3E9a3XYQ\",\"width\":360,\"height\":202},{\"url\":\"https://i.ytimg.com/vi/36UhfL7rr0c/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==\\u0026rs=AOn4CLAtHke8YGjOnAMBsB5n30a9mMi_ag\",\"width\":720,\"height\":404}]},\"title\":{\"runs\":[{\"text\":\"Michele Bravi, imparare ad amarsi - One More Time\"}],\"accessibility\":{\"accessibilityData\":{\"label\":\"Michele Bravi, imparare ad amarsi - One More Time by PODCAST ONE MORE TIME di Luca Casadei 54,289 views 2 days ago 1 hour, 43 minutes\"}}},\"descriptionSnippet\":{\"runs\":[{\"text\":\"#adv\\nLink allo shop ufficiale: https://www.onemoretime.me\\nLink al canale Telegram: https://t.me/podcastonemoretime\\nCi trovi anche qui: https://linktr.ee/podcastonemoretime\\n\\nStorie di vita raccontat...\"}]},\"longBylineText\":{\"runs\":[{\"text\":\"PODCAST ONE MORE TIME di Luca Casadei\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@OneMoreTimePodcast\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCXuc_HVyuWFoWQa1zyyuqJw\",\"canonicalBaseUrl\":\"/@OneMoreTimePodcast\"}}}]},\"publishedTimeText\":{\"simpleText\":\"2 days ago\"},\"lengthText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 43 minutes, 39 seconds\"}},\"simpleText\":\"1:43:39\"},\"viewCountText\":{\"simpleText\":\"54,289 views\"},\"navigationEndpoint\":{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=36UhfL7rr0c\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"36UhfL7rr0c\",\"watchEndpointSupportedOnesieConfig\":{\"html5PlaybackOnesieConfig\":{\"commonConfig\":{\"url\":\"https://rr1---sn-8vq54voxpu-bv5e.googlevideo.com/initplayback?source=youtube\\u0026oeis=1\\u0026c=WEB\\u0026oad=3200\\u0026ovd=3200\\u0026oaad=11000\\u0026oavd=11000\\u0026ocs=700\\u0026oewis=1\\u0026oputc=1\\u0026ofpcc=1\\u0026msp=1\\u0026odepv=1\\u0026id=dfa5217cbeebaf47\\u0026ip=[scrubbed]\\u0026initcwndbps=1773750\\u0026mt=1700763661\\u0026oweuc=\"}}}}},\"ownerBadges\":[{\"metadataBadgeRenderer\":{\"icon\":{\"iconType\":\"CHECK_CIRCLE_THICK\"},\"style\":\"BADGE_STYLE_TYPE_VERIFIED\",\"tooltip\":\"Verified\",\"trackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibilityData\":{\"label\":\"Verified\"}}}],\"ownerText\":{\"runs\":[{\"text\":\"PODCAST ONE MORE TIME di Luca Casadei\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@OneMoreTimePodcast\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCXuc_HVyuWFoWQa1zyyuqJw\",\"canonicalBaseUrl\":\"/@OneMoreTimePodcast\"}}}]},\"shortBylineText\":{\"runs\":[{\"text\":\"PODCAST ONE MORE TIME di Luca Casadei\",\"navigationEndpoint\":{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@OneMoreTimePodcast\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCXuc_HVyuWFoWQa1zyyuqJw\",\"canonicalBaseUrl\":\"/@OneMoreTimePodcast\"}}}]},\"trackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mQMfervfLr8jS3wE=\",\"showActionMenu\":false,\"shortViewCountText\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"54K views\"}},\"simpleText\":\"54K views\"},\"menu\":{\"menuRenderer\":{\"items\":[{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Add to queue\"}]},\"icon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CNkBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CNkBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"36UhfL7rr0c\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CNkBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"36UhfL7rr0c\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"36UhfL7rr0c\"]}}]}},\"trackingParams\":\"CNkBEP6YBBgKIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemDownloadRenderer\":{\"serviceEndpoint\":{\"clickTrackingParams\":\"CNgBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"offlineVideoEndpoint\":{\"videoId\":\"36UhfL7rr0c\",\"onAddCommand\":{\"clickTrackingParams\":\"CNgBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"getDownloadActionCommand\":{\"videoId\":\"36UhfL7rr0c\",\"params\":\"CAI%3D\"}}}},\"trackingParams\":\"CNgBENGqBRgLIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"menuServiceItemRenderer\":{\"text\":{\"runs\":[{\"text\":\"Share\"}]},\"icon\":{\"iconType\":\"SHARE\"},\"serviceEndpoint\":{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/share/get_share_panel\"}},\"shareEntityServiceEndpoint\":{\"serializedShareEntity\":\"CgszNlVoZkw3cnIwYw%3D%3D\",\"commands\":[{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"openPopupAction\":{\"popup\":{\"unifiedSharePanelRenderer\":{\"trackingParams\":\"CNcBEI5iIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"showLoadingSpinner\":true}},\"popupType\":\"DIALOG\",\"beReused\":true}}]}},\"trackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"hasSeparator\":true}}],\"trackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"accessibility\":{\"accessibilityData\":{\"label\":\"Action menu\"}}}},\"channelThumbnailSupportedRenderers\":{\"channelThumbnailWithLinkRenderer\":{\"thumbnail\":{\"thumbnails\":[{\"url\":\"https://yt3.ggpht.com/r6YN_GfewFFSOgFus14GXKWBqSYvs9O74SaqG9ffuSbKaUOWrihMgrdYMLUE_umCRBVoK_qPzg=s68-c-k-c0x00ffffff-no-rj\",\"width\":68,\"height\":68}]},\"navigationEndpoint\":{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/@OneMoreTimePodcast\",\"webPageType\":\"WEB_PAGE_TYPE_CHANNEL\",\"rootVe\":3611,\"apiUrl\":\"/youtubei/v1/browse\"}},\"browseEndpoint\":{\"browseId\":\"UCXuc_HVyuWFoWQa1zyyuqJw\",\"canonicalBaseUrl\":\"/@OneMoreTimePodcast\"}},\"accessibility\":{\"accessibilityData\":{\"label\":\"Go to channel\"}}}},\"thumbnailOverlays\":[{\"thumbnailOverlayTimeStatusRenderer\":{\"text\":{\"accessibility\":{\"accessibilityData\":{\"label\":\"1 hour, 43 minutes, 39 seconds\"}},\"simpleText\":\"1:43:39\"},\"style\":\"DEFAULT\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"isToggled\":false,\"untoggledIcon\":{\"iconType\":\"WATCH_LATER\"},\"toggledIcon\":{\"iconType\":\"CHECK\"},\"untoggledTooltip\":\"Watch later\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CNYBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"addedVideoId\":\"36UhfL7rr0c\",\"action\":\"ACTION_ADD_VIDEO\"}]}},\"toggledServiceEndpoint\":{\"clickTrackingParams\":\"CNYBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/browse/edit_playlist\"}},\"playlistEditEndpoint\":{\"playlistId\":\"WL\",\"actions\":[{\"action\":\"ACTION_REMOVE_VIDEO_BY_VIDEO_ID\",\"removedVideoId\":\"36UhfL7rr0c\"}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Watch later\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CNYBEPnnAxgCIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayToggleButtonRenderer\":{\"untoggledIcon\":{\"iconType\":\"ADD_TO_QUEUE_TAIL\"},\"toggledIcon\":{\"iconType\":\"PLAYLIST_ADD_CHECK\"},\"untoggledTooltip\":\"Add to queue\",\"toggledTooltip\":\"Added\",\"untoggledServiceEndpoint\":{\"clickTrackingParams\":\"CNUBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true}},\"signalServiceEndpoint\":{\"signal\":\"CLIENT_SIGNAL\",\"actions\":[{\"clickTrackingParams\":\"CNUBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"addToPlaylistCommand\":{\"openMiniplayer\":true,\"videoId\":\"36UhfL7rr0c\",\"listType\":\"PLAYLIST_EDIT_LIST_TYPE_QUEUE\",\"onCreateListCommand\":{\"clickTrackingParams\":\"CNUBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\",\"commandMetadata\":{\"webCommandMetadata\":{\"sendPost\":true,\"apiUrl\":\"/youtubei/v1/playlist/create\"}},\"createPlaylistServiceEndpoint\":{\"videoIds\":[\"36UhfL7rr0c\"],\"params\":\"CAQ%3D\"}},\"videoIds\":[\"36UhfL7rr0c\"]}}]}},\"untoggledAccessibility\":{\"accessibilityData\":{\"label\":\"Add to queue\"}},\"toggledAccessibility\":{\"accessibilityData\":{\"label\":\"Added\"}},\"trackingParams\":\"CNUBEMfsBBgDIhMIk87x0N_aggMVjV96BR0_MQ6m\"}},{\"thumbnailOverlayNowPlayingRenderer\":{\"text\":{\"runs\":[{\"text\":\"Now playing\"}]}}},{\"thumbnailOverlayLoadingPreviewRenderer\":{\"text\":{\"runs\":[{\"text\":\"Keep hovering to play\"}]}}}],\"richThumbnail\":{\"movingThumbnailRenderer\":{\"movingThumbnailDetails\":{\"thumbnails\":[{\"url\":\"https://i.ytimg.com/an_webp/36UhfL7rr0c/mqdefault_6s.webp?du=3000\\u0026sqp=COaw_qoG\\u0026rs=AOn4CLBs0Mk7E2PFTuia9-uDIljsBDNcqQ\",\"width\":320,\"height\":180}],\"logAsMovingThumbnail\":true},\"enableHoveredLogging\":true,\"enableOverlay\":true}},\"inlinePlaybackEndpoint\":{\"clickTrackingParams\":\"CNQBENwwIhMIk87x0N_aggMVjV96BR0_MQ6mMgpnLWhpZ2gtdHJ2Wg9GRXdoYXRfdG9fd2F0Y2iaAQYQjh4Y-QE=\",\"commandMetadata\":{\"webCommandMetadata\":{\"url\":\"/watch?v=36UhfL7rr0c\\u0026pp=YAHIAQE%3D\",\"webPageType\":\"WEB_PAGE_TYPE_WATCH\",\"rootVe\":3832}},\"watchEndpoint\":{\"videoId\":\"36UhfL7rr0c\",\"playerParams\":\"YAHIAQE%3D\",\"pla","body_is_truncated":true,"code":200,"headers_list":[["Accept-Ch","Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version"],["Accept-Ranges","none"],["Alt-Svc","h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"],["Cache-Control","no-cache, no-store, max-age=0, must-revalidate"],["Content-Type","text/html; charset=utf-8"],["Cross-Origin-Opener-Policy","same-origin-allow-popups; report-to=\"youtube_main\""],["Date","Thu, 23 Nov 2023 18:26:40 GMT"],["Expires","Mon, 01 Jan 1990 00:00:00 GMT"],["Origin-Trial","AvC9UlR6RDk2crliDsFl66RWLnTbHrDbp+DiY6AYz/PNQ4G4tdUTjrHYr2sghbkhGQAVxb7jaPTHpEVBz0uzQwkAAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTcxOTUzMjc5OSwiaXNTdWJkb21haW4iOnRydWV9"],["P3p","CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\""],["Permissions-Policy","ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factor=*, ch-ua-platform=*, ch-ua-platform-version=*"],["Pragma","no-cache"],["Report-To","{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}"],["Server","ESF"],["Set-Cookie","YSC=Fz-8xRP8Jo0; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none"],["Set-Cookie","__Secure-YEC=CgswU3lVbTdZdlY4RSjgsv6qBjIICgJJVBICEgA%3D; Domain=.youtube.com; Expires=Sun, 22-Dec-2024 18:26:39 GMT; Path=/; Secure; HttpOnly; SameSite=lax"],["Set-Cookie","VISITOR_PRIVACY_METADATA=CgJJVBICEgA%3D; Domain=.youtube.com; Expires=Sun, 22-Dec-2024 18:26:40 GMT; Path=/; Secure; HttpOnly; SameSite=lax"],["Set-Cookie","VISITOR_INFO1_LIVE=; Domain=.youtube.com; Expires=Fri, 26-Feb-2021 18:26:40 GMT; Path=/; Secure; HttpOnly; SameSite=none"],["Set-Cookie","CONSENT=PENDING+074; expires=Sat, 22-Nov-2025 18:26:40 GMT; path=/; domain=.youtube.com; Secure"],["Strict-Transport-Security","max-age=31536000"],["Vary","Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version,Accept-Encoding"],["X-Content-Type-Options","nosniff"],["X-Frame-Options","SAMEORIGIN"],["X-Xss-Protection","0"]],"headers":{"Accept-Ch":"Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version","Accept-Ranges":"none","Alt-Svc":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000","Cache-Control":"no-cache, no-store, max-age=0, must-revalidate","Content-Type":"text/html; charset=utf-8","Cross-Origin-Opener-Policy":"same-origin-allow-popups; report-to=\"youtube_main\"","Date":"Thu, 23 Nov 2023 18:26:40 GMT","Expires":"Mon, 01 Jan 1990 00:00:00 GMT","Origin-Trial":"AvC9UlR6RDk2crliDsFl66RWLnTbHrDbp+DiY6AYz/PNQ4G4tdUTjrHYr2sghbkhGQAVxb7jaPTHpEVBz0uzQwkAAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTcxOTUzMjc5OSwiaXNTdWJkb21haW4iOnRydWV9","P3p":"CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\"","Permissions-Policy":"ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factor=*, ch-ua-platform=*, ch-ua-platform-version=*","Pragma":"no-cache","Report-To":"{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}","Server":"ESF","Set-Cookie":"YSC=Fz-8xRP8Jo0; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none","Strict-Transport-Security":"max-age=31536000","Vary":"Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version,Accept-Encoding","X-Content-Type-Options":"nosniff","X-Frame-Options":"SAMEORIGIN","X-Xss-Protection":"0"}},"t0":0.452397,"t":1.492867,"tags":[],"transaction_id":7},{"network":"tcp","address":"[2a00:1450:4002:414::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.477564,"t":0.477564,"tags":[],"transaction_id":12},{"network":"tcp","address":"216.58.204.142:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.476504,"t":0.476504,"tags":[],"transaction_id":8},{"network":"tcp","address":"216.58.205.46:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.475418,"t":0.475418,"tags":[],"transaction_id":5},{"network":"tcp","address":"142.250.180.142:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.475041,"t":0.475041,"tags":[],"transaction_id":15},{"network":"tcp","address":"142.251.209.14:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.475032,"t":0.475032,"tags":[],"transaction_id":14},{"network":"tcp","address":"[2a00:1450:4002:402::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.473319,"t":0.473319,"tags":[],"transaction_id":13},{"network":"tcp","address":"[2a00:1450:4002:403::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.472926,"t":0.472926,"tags":[],"transaction_id":9},{"network":"tcp","address":"[2a00:1450:4002:410::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.472585,"t":0.472585,"tags":[],"transaction_id":10},{"network":"tcp","address":"[2a00:1450:4002:416::200e]:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.472387,"t":0.472387,"tags":[],"transaction_id":11},{"network":"tcp","address":"142.250.180.174:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.47142,"t":0.47142,"tags":[],"transaction_id":4},{"network":"tcp","address":"142.251.209.46:443","failure":"unknown_failure: http_request_canceled","request":{"body":"","body_is_truncated":false,"headers_list":[["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],["Accept-Language","en-US,en;q=0.9"],["Host","www.youtube.com"],["Referer",""],["User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"]],"headers":{"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":"en-US,en;q=0.9","Host":"www.youtube.com","Referer":"","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36"},"method":"GET","tor":{"exit_ip":null,"exit_name":null,"is_tor":false},"x_transport":"tcp","url":"https://www.youtube.com/"},"response":{"body":"","body_is_truncated":false,"code":0,"headers_list":[],"headers":{}},"t0":0.470667,"t":0.470667,"tags":[],"transaction_id":6}],"tcp_connect":[{"ip":"216.58.209.46","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.396053,"t":0.411923,"tags":[],"transaction_id":7},{"ip":"142.251.209.46","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.395832,"t":0.413203,"tags":[],"transaction_id":6},{"ip":"2a00:1450:4002:402::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.395951,"t":0.415468,"tags":[],"transaction_id":13},{"ip":"142.250.180.174","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.39635,"t":0.41553,"tags":[],"transaction_id":4},{"ip":"2a00:1450:4002:403::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.396408,"t":0.416441,"tags":[],"transaction_id":9},{"ip":"2a00:1450:4002:416::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.396461,"t":0.416484,"tags":[],"transaction_id":11},{"ip":"2a00:1450:4002:410::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.396471,"t":0.417629,"tags":[],"transaction_id":10},{"ip":"142.250.180.142","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.396707,"t":0.418861,"tags":[],"transaction_id":15},{"ip":"2a00:1450:4002:414::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.396723,"t":0.418956,"tags":[],"transaction_id":12},{"ip":"216.58.204.142","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.395722,"t":0.419464,"tags":[],"transaction_id":8},{"ip":"142.251.209.14","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.395747,"t":0.41948,"tags":[],"transaction_id":14},{"ip":"216.58.205.46","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":0.395701,"t":0.421933,"tags":[],"transaction_id":5},{"ip":"142.250.200.46","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.8941940000000002,"t":1.9308939999999999,"tags":[],"transaction_id":23},{"ip":"2a00:1450:4009:81e::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.894023,"t":1.930973,"tags":[],"transaction_id":25},{"ip":"142.250.179.238","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.89411,"t":1.931396,"tags":[],"transaction_id":22},{"ip":"142.250.200.14","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.8946960000000002,"t":1.93338,"tags":[],"transaction_id":20},{"ip":"216.58.204.78","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.89452,"t":1.9342679999999999,"tags":[],"transaction_id":21},{"ip":"2a00:1450:4009:815::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.8944800000000002,"t":1.935353,"tags":[],"transaction_id":31},{"ip":"216.58.212.238","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.894834,"t":1.936283,"tags":[],"transaction_id":28},{"ip":"142.250.187.238","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.894889,"t":1.936306,"tags":[],"transaction_id":26},{"ip":"2a00:1450:4009:81f::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.89456,"t":1.938354,"tags":[],"transaction_id":27},{"ip":"172.217.169.14","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.89481,"t":1.939539,"tags":[],"transaction_id":16},{"ip":"142.250.187.206","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.895168,"t":1.939568,"tags":[],"transaction_id":18},{"ip":"142.250.178.14","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.8953090000000001,"t":1.939593,"tags":[],"transaction_id":30},{"ip":"216.58.201.110","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.895193,"t":1.939627,"tags":[],"transaction_id":24},{"ip":"142.250.180.14","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.895467,"t":1.940271,"tags":[],"transaction_id":29},{"ip":"172.217.16.238","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.895386,"t":1.940296,"tags":[],"transaction_id":19},{"ip":"2a00:1450:4009:820::200e","port":443,"status":{"blocked":false,"failure":null,"success":true},"t0":1.895162,"t":1.940325,"tags":[],"transaction_id":17}],"tls_handshakes":[{"network":"tcp","address":"216.58.209.46:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.411989,"t":0.452334,"tags":[],"tls_version":"TLSv1.3","transaction_id":7},{"network":"tcp","address":"142.251.209.46:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.41324,"t":0.460508,"tags":[],"tls_version":"TLSv1.3","transaction_id":6},{"network":"tcp","address":"142.250.180.174:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.415573,"t":0.461278,"tags":[],"tls_version":"TLSv1.3","transaction_id":4},{"network":"tcp","address":"[2a00:1450:4002:416::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.416512,"t":0.462307,"tags":[],"tls_version":"TLSv1.3","transaction_id":11},{"network":"tcp","address":"[2a00:1450:4002:410::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.417656,"t":0.462505,"tags":[],"tls_version":"TLSv1.3","transaction_id":10},{"network":"tcp","address":"[2a00:1450:4002:403::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.416468,"t":0.46288,"tags":[],"tls_version":"TLSv1.3","transaction_id":9},{"network":"tcp","address":"[2a00:1450:4002:402::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.415515,"t":0.463236,"tags":[],"tls_version":"TLSv1.3","transaction_id":13},{"network":"tcp","address":"142.251.209.14:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.419504,"t":0.464932,"tags":[],"tls_version":"TLSv1.3","transaction_id":14},{"network":"tcp","address":"142.250.180.142:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.418894,"t":0.465008,"tags":[],"tls_version":"TLSv1.3","transaction_id":15},{"network":"tcp","address":"216.58.205.46:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.421961,"t":0.465331,"tags":[],"tls_version":"TLSv1.3","transaction_id":5},{"network":"tcp","address":"216.58.204.142:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.419487,"t":0.466341,"tags":[],"tls_version":"TLSv1.3","transaction_id":8},{"network":"tcp","address":"[2a00:1450:4002:414::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":0.419044,"t":0.467401,"tags":[],"tls_version":"TLSv1.3","transaction_id":12},{"network":"tcp","address":"142.250.200.14:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.9334069999999999,"t":1.984044,"tags":[],"tls_version":"TLSv1.3","transaction_id":20},{"network":"tcp","address":"142.250.200.46:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.930963,"t":1.990323,"tags":[],"tls_version":"TLSv1.3","transaction_id":23},{"network":"tcp","address":"142.250.179.238:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.9314230000000001,"t":1.990783,"tags":[],"tls_version":"TLSv1.3","transaction_id":22},{"network":"tcp","address":"216.58.204.78:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.934302,"t":1.990915,"tags":[],"tls_version":"TLSv1.3","transaction_id":21},{"network":"tcp","address":"216.58.212.238:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.936303,"t":1.992747,"tags":[],"tls_version":"TLSv1.3","transaction_id":28},{"network":"tcp","address":"[2a00:1450:4009:81e::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.9310070000000001,"t":1.993483,"tags":[],"tls_version":"TLSv1.3","transaction_id":25},{"network":"tcp","address":"142.250.187.238:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.936323,"t":1.993995,"tags":[],"tls_version":"TLSv1.3","transaction_id":26},{"network":"tcp","address":"[2a00:1450:4009:815::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.935376,"t":1.994195,"tags":[],"tls_version":"TLSv1.3","transaction_id":31},{"network":"tcp","address":"216.58.201.110:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.9396879999999999,"t":1.994988,"tags":[],"tls_version":"TLSv1.3","transaction_id":24},{"network":"tcp","address":"142.250.178.14:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.939614,"t":1.995451,"tags":[],"tls_version":"TLSv1.3","transaction_id":30},{"network":"tcp","address":"142.250.187.206:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.939584,"t":1.995897,"tags":[],"tls_version":"TLSv1.3","transaction_id":18},{"network":"tcp","address":"[2a00:1450:4009:81f::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.9384000000000001,"t":1.99783,"tags":[],"tls_version":"TLSv1.3","transaction_id":27},{"network":"tcp","address":"172.217.169.14:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.939556,"t":1.99845,"tags":[],"tls_version":"TLSv1.3","transaction_id":16},{"network":"tcp","address":"142.250.180.14:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.94029,"t":1.999167,"tags":[],"tls_version":"TLSv1.3","transaction_id":29},{"network":"tcp","address":"172.217.16.238:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.9403190000000001,"t":1.9993750000000001,"tags":[],"tls_version":"TLSv1.3","transaction_id":19},{"network":"tcp","address":"[2a00:1450:4009:820::200e]:443","cipher_suite":"TLS_AES_128_GCM_SHA256","failure":null,"negotiated_protocol":"h2","no_tls_verify":false,"peer_certificates":[{"data":"MIIOOjCCDSKgAwIBAgIRAIs+mCLMW+1cCl7dwvqQLe4wDQYJKoZIhvcNAQELBQAwRjELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxEzARBgNVBAMTCkdUUyBDQSAxQzMwHhcNMjMxMDIzMTExODI0WhcNMjQwMTE1MTExODIzWjAXMRUwEwYDVQQDDAwqLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARFkJP4ajCGcFu/dhDICgGR1D8gXKRbXr+9snEjrW23dyYy8ECV0dSw/xRprfep7Tstl4B58Yv/idte6cxHVTKVo4IMGzCCDBcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAwF+qpbtYBZSyha62gYCxXYB/HZMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIIJzQYDVR0RBIIJxDCCCcCCDCouZ29vZ2xlLmNvbYIWKi5hcHBlbmdpbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghUqLm9yaWdpbi10ZXN0LmJkbi5kZXaCEiouY2xvdWQuZ29vZ2xlLmNvbYIYKi5jcm93ZHNvdXJjZS5nb29nbGUuY29tghgqLmRhdGFjb21wdXRlLmdvb2dsZS5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2dsZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29vZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5nb29nbGVhcGlzLmNughEqLmdvb2dsZXZpZGVvLmNvbYIMKi5nc3RhdGljLmNughAqLmdzdGF0aWMtY24uY29tgg9nb29nbGVjbmFwcHMuY26CESouZ29vZ2xlY25hcHBzLmNughFnb29nbGVhcHBzLWNuLmNvbYITKi5nb29nbGVhcHBzLWNuLmNvbYIMZ2tlY25hcHBzLmNugg4qLmdrZWNuYXBwcy5jboISZ29vZ2xlZG93bmxvYWRzLmNughQqLmdvb2dsZWRvd25sb2Fkcy5jboIQcmVjYXB0Y2hhLm5ldC5jboISKi5yZWNhcHRjaGEubmV0LmNughByZWNhcHRjaGEtY24ubmV0ghIqLnJlY2FwdGNoYS1jbi5uZXSCC3dpZGV2aW5lLmNugg0qLndpZGV2aW5lLmNughFhbXBwcm9qZWN0Lm9yZy5jboITKi5hbXBwcm9qZWN0Lm9yZy5jboIRYW1wcHJvamVjdC5uZXQuY26CEyouYW1wcHJvamVjdC5uZXQuY26CF2dvb2dsZS1hbmFseXRpY3MtY24uY29tghkqLmdvb2dsZS1hbmFseXRpY3MtY24uY29tghdnb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIZKi5nb29nbGVhZHNlcnZpY2VzLWNuLmNvbYIRZ29vZ2xldmFkcy1jbi5jb22CEyouZ29vZ2xldmFkcy1jbi5jb22CEWdvb2dsZWFwaXMtY24uY29tghMqLmdvb2dsZWFwaXMtY24uY29tghVnb29nbGVvcHRpbWl6ZS1jbi5jb22CFyouZ29vZ2xlb3B0aW1pemUtY24uY29tghJkb3VibGVjbGljay1jbi5uZXSCFCouZG91YmxlY2xpY2stY24ubmV0ghgqLmZscy5kb3VibGVjbGljay1jbi5uZXSCFiouZy5kb3VibGVjbGljay1jbi5uZXSCDmRvdWJsZWNsaWNrLmNughAqLmRvdWJsZWNsaWNrLmNughQqLmZscy5kb3VibGVjbGljay5jboISKi5nLmRvdWJsZWNsaWNrLmNughFkYXJ0c2VhcmNoLWNuLm5ldIITKi5kYXJ0c2VhcmNoLWNuLm5ldIIdZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CHyouZ29vZ2xldHJhdmVsYWRzZXJ2aWNlcy1jbi5jb22CGGdvb2dsZXRhZ3NlcnZpY2VzLWNuLmNvbYIaKi5nb29nbGV0YWdzZXJ2aWNlcy1jbi5jb22CF2dvb2dsZXRhZ21hbmFnZXItY24uY29tghkqLmdvb2dsZXRhZ21hbmFnZXItY24uY29tghhnb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CGiouZ29vZ2xlc3luZGljYXRpb24tY24uY29tgiQqLnNhZmVmcmFtZS5nb29nbGVzeW5kaWNhdGlvbi1jbi5jb22CFmFwcC1tZWFzdXJlbWVudC1jbi5jb22CGCouYXBwLW1lYXN1cmVtZW50LWNuLmNvbYILZ3Z0MS1jbi5jb22CDSouZ3Z0MS1jbi5jb22CC2d2dDItY24uY29tgg0qLmd2dDItY24uY29tggsybWRuLWNuLm5ldIINKi4ybWRuLWNuLm5ldIIUZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCFiouZ29vZ2xlZmxpZ2h0cy1jbi5uZXSCDGFkbW9iLWNuLmNvbYIOKi5hZG1vYi1jbi5jb22CFGdvb2dsZXNhbmRib3gtY24uY29tghYqLmdvb2dsZXNhbmRib3gtY24uY29tgh4qLnNhZmVudXAuZ29vZ2xlc2FuZGJveC1jbi5jb22CDSouZ3N0YXRpYy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tggoqLmd2dDEuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIOKi5nY3AuZ3Z0Mi5jb22CECoudXJsLmdvb2dsZS5jb22CFioueW91dHViZS1ub2Nvb2tpZS5jb22CCyoueXRpbWcuY29tggthbmRyb2lkLmNvbYINKi5hbmRyb2lkLmNvbYITKi5mbGFzaC5hbmRyb2lkLmNvbYIEZy5jboIGKi5nLmNuggRnLmNvggYqLmcuY2+CBmdvby5nbIIKd3d3Lmdvby5nbIIUZ29vZ2xlLWFuYWx5dGljcy5jb22CFiouZ29vZ2xlLWFuYWx5dGljcy5jb22CCmdvb2dsZS5jb22CEmdvb2dsZWNvbW1lcmNlLmNvbYIUKi5nb29nbGVjb21tZXJjZS5jb22CCGdncGh0LmNuggoqLmdncGh0LmNuggp1cmNoaW4uY29tggwqLnVyY2hpbi5jb22CCHlvdXR1LmJlggt5b3V0dWJlLmNvbYINKi55b3V0dWJlLmNvbYIUeW91dHViZWVkdWNhdGlvbi5jb22CFioueW91dHViZWVkdWNhdGlvbi5jb22CD3lvdXR1YmVraWRzLmNvbYIRKi55b3V0dWJla2lkcy5jb22CBXl0LmJlggcqLnl0LmJlghphbmRyb2lkLmNsaWVudHMuZ29vZ2xlLmNvbYIbZGV2ZWxvcGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNughhzb3VyY2UuYW5kcm9pZC5nb29nbGUuY24wIQYDVR0gBBowGDAIBgZngQwBAgEwDAYKKwYBBAHWeQIFAzA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vY3Jscy5wa2kuZ29vZy9ndHMxYzMvbW9WRGZJU2lhMmsuY3JsMIIBAgYKKwYBBAHWeQIEAgSB8wSB8ADuAHUASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGLXHjeOgAABAMARjBEAiA5xkLry/jLvTgkNitDIuFmwVuL3SVofIIa9S9BX0aAlQIgWnF3vOB4zocZKrj1Ou4RgpTEZslWMbTi36QHOmI2rc8AdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYtceN4RAAAEAwBGMEQCIGNaR2SEb6EgAXBGxhriVs6xEmMSfNl+gxHXsAT1D26qAiB/nSwVTXKptImly3Nj1RlIBQ49kG6pLVjwM7pFTFFHgDANBgkqhkiG9w0BAQsFAAOCAQEA2zTHxu4FM4XJYuFVpYaFR+Rt4j27U4UZ/ju4CyY1h8PozUgpap6bKvsknfpltdaoHPqMBg7XdSX1hXpVJctAxPp/QgC6mYTlLGIk095lqyWYYH1HR/kf7VSBJDy8KYx44WliqK3kleYxbnz6BqEa8z9P0bILW8KvHyZt5tPYBvV2R42gueVgnJT9Kht3Pv0ZblajN0Ium+S03sDdMYT4nsKU5agIfeiO/nIgF14Zn+zKg0ilSZzum8pB0UgENi5CsowoNyOkdXOcIGMfOvy6hhXckE32lJu4gVL1W2fSeii8K9y7pMGNUMbV+h2sF24EGxP5zlhruE2lJGRgONjFpA==","format":"base64"},{"data":"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd","format":"base64"},{"data":"MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=","format":"base64"}],"server_name":"www.youtube.com","t0":1.940346,"t":2.00063,"tags":[],"tls_version":"TLSv1.3","transaction_id":17}],"x_control_request":{"http_request":"https://www.youtube.com/","http_request_headers":{"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.9"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"]},"tcp_connect":["142.250.180.174:443","142.250.180.174:80","216.58.205.46:443","216.58.205.46:80","142.251.209.46:443","142.251.209.46:80","216.58.209.46:443","216.58.209.46:80","216.58.204.142:443","216.58.204.142:80","[2a00:1450:4002:403::200e]:443","[2a00:1450:4002:403::200e]:80","[2a00:1450:4002:410::200e]:443","[2a00:1450:4002:410::200e]:80","[2a00:1450:4002:416::200e]:443","[2a00:1450:4002:416::200e]:80","[2a00:1450:4002:414::200e]:443","[2a00:1450:4002:414::200e]:80","[2a00:1450:4002:402::200e]:443","[2a00:1450:4002:402::200e]:80","142.251.209.14:443","142.251.209.14:80","142.250.180.142:443","142.250.180.142:80"],"x_quic_enabled":false},"control":{"tcp_connect":{"142.250.178.14:443":{"status":true,"failure":null},"142.250.179.238:443":{"status":true,"failure":null},"142.250.180.142:443":{"status":true,"failure":null},"142.250.180.14:443":{"status":true,"failure":null},"142.250.180.174:443":{"status":true,"failure":null},"142.250.187.206:443":{"status":true,"failure":null},"142.250.187.238:443":{"status":true,"failure":null},"142.250.200.14:443":{"status":true,"failure":null},"142.250.200.46:443":{"status":true,"failure":null},"142.251.209.14:443":{"status":true,"failure":null},"142.251.209.46:443":{"status":true,"failure":null},"172.217.16.238:443":{"status":true,"failure":null},"172.217.169.14:443":{"status":true,"failure":null},"216.58.201.110:443":{"status":true,"failure":null},"216.58.204.142:443":{"status":true,"failure":null},"216.58.204.78:443":{"status":true,"failure":null},"216.58.205.46:443":{"status":true,"failure":null},"216.58.209.46:443":{"status":true,"failure":null},"216.58.212.238:443":{"status":true,"failure":null},"[2a00:1450:4002:402::200e]:443":{"status":true,"failure":null},"[2a00:1450:4002:403::200e]:443":{"status":true,"failure":null},"[2a00:1450:4002:410::200e]:443":{"status":true,"failure":null},"[2a00:1450:4002:414::200e]:443":{"status":true,"failure":null},"[2a00:1450:4002:416::200e]:443":{"status":true,"failure":null},"[2a00:1450:4009:815::200e]:443":{"status":true,"failure":null},"[2a00:1450:4009:81e::200e]:443":{"status":true,"failure":null},"[2a00:1450:4009:81f::200e]:443":{"status":true,"failure":null},"[2a00:1450:4009:820::200e]:443":{"status":true,"failure":null}},"tls_handshake":{"142.250.178.14:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.179.238:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.180.142:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.180.14:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.180.174:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.187.206:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.187.238:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.200.14:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.250.200.46:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.251.209.14:443":{"server_name":"www.youtube.com","status":true,"failure":null},"142.251.209.46:443":{"server_name":"www.youtube.com","status":true,"failure":null},"172.217.16.238:443":{"server_name":"www.youtube.com","status":true,"failure":null},"172.217.169.14:443":{"server_name":"www.youtube.com","status":true,"failure":null},"216.58.201.110:443":{"server_name":"www.youtube.com","status":true,"failure":null},"216.58.204.142:443":{"server_name":"www.youtube.com","status":true,"failure":null},"216.58.204.78:443":{"server_name":"www.youtube.com","status":true,"failure":null},"216.58.205.46:443":{"server_name":"www.youtube.com","status":true,"failure":null},"216.58.209.46:443":{"server_name":"www.youtube.com","status":true,"failure":null},"216.58.212.238:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4002:402::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4002:403::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4002:410::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4002:414::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4002:416::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4009:815::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4009:81e::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4009:81f::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null},"[2a00:1450:4009:820::200e]:443":{"server_name":"www.youtube.com","status":true,"failure":null}},"quic_handshake":{},"http_request":{"body_length":928046,"discovered_h3_endpoint":"www.youtube.com:443","failure":null,"title":"YouTube","headers":{"Accept-Ch":"Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version","Accept-Ranges":"none","Alt-Svc":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000","Cache-Control":"no-cache, no-store, max-age=0, must-revalidate","Content-Type":"text/html; charset=utf-8","Cross-Origin-Opener-Policy":"same-origin-allow-popups; report-to=\"youtube_main\"","Date":"Thu, 23 Nov 2023 18:26:41 GMT","Expires":"Mon, 01 Jan 1990 00:00:00 GMT","Origin-Trial":"AvC9UlR6RDk2crliDsFl66RWLnTbHrDbp+DiY6AYz/PNQ4G4tdUTjrHYr2sghbkhGQAVxb7jaPTHpEVBz0uzQwkAAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTcxOTUzMjc5OSwiaXNTdWJkb21haW4iOnRydWV9","P3p":"CP=\"This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=en for more info.\"","Permissions-Policy":"ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factor=*, ch-ua-platform=*, ch-ua-platform-version=*","Pragma":"no-cache","Report-To":"{\"group\":\"youtube_main\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube_main\"}]}","Server":"ESF","Set-Cookie":"YSC=fdjkg7HJcyY; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none","Strict-Transport-Security":"max-age=31536000","Vary":"Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factor, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version,Accept-Encoding","X-Content-Type-Options":"nosniff","X-Frame-Options":"SAMEORIGIN","X-Xss-Protection":"0"},"status_code":200},"http3_request":null,"dns":{"failure":null,"addrs":["216.58.212.238","142.250.179.238","142.250.180.14","142.250.187.206","142.250.187.238","142.250.178.14","172.217.16.238","142.250.200.14","142.250.200.46","216.58.201.110","216.58.204.78","172.217.169.14","2a00:1450:4009:81e::200e","2a00:1450:4009:81f::200e","2a00:1450:4009:820::200e","2a00:1450:4009:815::200e"]},"ip_info":{"142.250.178.14":{"asn":15169,"flags":10},"142.250.179.238":{"asn":15169,"flags":10},"142.250.180.14":{"asn":15169,"flags":10},"142.250.180.142":{"asn":15169,"flags":9},"142.250.180.174":{"asn":15169,"flags":9},"142.250.187.206":{"asn":15169,"flags":10},"142.250.187.238":{"asn":15169,"flags":10},"142.250.200.14":{"asn":15169,"flags":10},"142.250.200.46":{"asn":15169,"flags":10},"142.251.209.14":{"asn":15169,"flags":9},"142.251.209.46":{"asn":15169,"flags":9},"172.217.16.238":{"asn":15169,"flags":10},"172.217.169.14":{"asn":15169,"flags":10},"216.58.201.110":{"asn":15169,"flags":10},"216.58.204.142":{"asn":15169,"flags":9},"216.58.204.78":{"asn":15169,"flags":10},"216.58.205.46":{"asn":15169,"flags":9},"216.58.209.46":{"asn":15169,"flags":9},"216.58.212.238":{"asn":15169,"flags":10},"2a00:1450:4002:402::200e":{"asn":15169,"flags":9},"2a00:1450:4002:403::200e":{"asn":15169,"flags":9},"2a00:1450:4002:410::200e":{"asn":15169,"flags":9},"2a00:1450:4002:414::200e":{"asn":15169,"flags":9},"2a00:1450:4002:416::200e":{"asn":15169,"flags":9},"2a00:1450:4009:815::200e":{"asn":15169,"flags":10},"2a00:1450:4009:81e::200e":{"asn":15169,"flags":10},"2a00:1450:4009:81f::200e":{"asn":15169,"flags":10},"2a00:1450:4009:820::200e":{"asn":15169,"flags":10}}},"x_conn_priority_log":[{"msg":"create with [{Addr:142.250.180.174 Flags:7} {Addr:216.58.205.46 Flags:7} {Addr:142.251.209.46 Flags:7} {Addr:216.58.209.46 Flags:3} {Addr:216.58.204.142 Flags:7} {Addr:2a00:1450:4002:403::200e Flags:7} {Addr:2a00:1450:4002:410::200e Flags:3} {Addr:2a00:1450:4002:416::200e Flags:7} {Addr:2a00:1450:4002:414::200e Flags:4} {Addr:2a00:1450:4002:402::200e Flags:7} {Addr:142.251.209.14 Flags:7} {Addr:142.250.180.142 Flags:7}]","t":0.394935},{"msg":"conn 216.58.209.46:443: granted permission: true","t":0.452358},{"msg":"conn 142.251.209.46:443: denied permission: timed out sending","t":0.470646},{"msg":"conn 142.250.180.174:443: denied permission: timed out sending","t":0.471405},{"msg":"conn [2a00:1450:4002:416::200e]:443: denied permission: timed out sending","t":0.472374},{"msg":"conn [2a00:1450:4002:410::200e]:443: denied permission: timed out sending","t":0.472574},{"msg":"conn [2a00:1450:4002:403::200e]:443: denied permission: timed out sending","t":0.472918},{"msg":"conn [2a00:1450:4002:402::200e]:443: denied permission: timed out sending","t":0.473309},{"msg":"conn 142.251.209.14:443: denied permission: timed out sending","t":0.475022},{"msg":"conn 142.250.180.142:443: denied permission: timed out sending","t":0.475034},{"msg":"conn 216.58.205.46:443: denied permission: timed out sending","t":0.475404},{"msg":"conn 216.58.204.142:443: denied permission: timed out sending","t":0.476496},{"msg":"conn [2a00:1450:4002:414::200e]:443: denied permission: timed out sending","t":0.477555},{"msg":"conn 142.250.200.14:443: denied permission: timed out sending","t":1.995075},{"msg":"conn 142.250.200.46:443: denied permission: timed out sending","t":2.000614},{"msg":"conn 142.250.179.238:443: denied permission: timed out sending","t":2.000956},{"msg":"conn 216.58.204.78:443: denied permission: timed out sending","t":2.000999},{"msg":"conn 216.58.212.238:443: denied permission: timed out sending","t":2.003022},{"msg":"conn [2a00:1450:4009:81e::200e]:443: denied permission: timed out sending","t":2.003587},{"msg":"conn 142.250.187.238:443: denied permission: timed out sending","t":2.004086},{"msg":"conn [2a00:1450:4009:815::200e]:443: denied permission: timed out sending","t":2.004241},{"msg":"conn 216.58.201.110:443: denied permission: timed out sending","t":2.005122},{"msg":"conn 142.250.178.14:443: denied permission: timed out sending","t":2.005525},{"msg":"conn 142.250.187.206:443: denied permission: timed out sending","t":2.005979},{"msg":"conn [2a00:1450:4009:81f::200e]:443: denied permission: timed out sending","t":2.008104},{"msg":"conn 172.217.169.14:443: denied permission: timed out sending","t":2.00853},{"msg":"conn 142.250.180.14:443: denied permission: timed out sending","t":2.009284},{"msg":"conn 172.217.16.238:443: denied permission: timed out sending","t":2.009404},{"msg":"conn [2a00:1450:4009:820::200e]:443: denied permission: timed out sending","t":2.010817}],"control_failure":null,"x_dns_flags":0,"dns_experiment_failure":null,"dns_consistency":"consistent","http_experiment_failure":"unknown_failure: http_request_canceled","x_blocking_flags":0,"x_null_null_flags":0,"body_length_match":null,"headers_match":null,"status_code_match":null,"title_match":null,"blocking":null,"accessible":null},"test_name":"web_connectivity","test_runtime":2.011304875,"test_start_time":"2023-11-23 18:26:40","test_version":"0.5.26"} diff --git a/internal/pipeline/testdata/youtube_db.json b/internal/pipeline/testdata/youtube_db.json new file mode 100644 index 0000000000..8c0a18da9c --- /dev/null +++ b/internal/pipeline/testdata/youtube_db.json @@ -0,0 +1 @@ +{"XdnsByTxID":{"1":{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782},"2":{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264},"3":{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}},"XthEpntByEpnt":{"142.250.178.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.179.238:443/tcp":{"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.180.142:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.180.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.180.174:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.187.206:443/tcp":{"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.187.238:443/tcp":{"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.200.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.200.46:443/tcp":{"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.251.209.14:443/tcp":{"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.251.209.46:443/tcp":{"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"172.217.16.238:443/tcp":{"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"172.217.169.14:443/tcp":{"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.201.110:443/tcp":{"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.204.142:443/tcp":{"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.204.78:443/tcp":{"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.205.46:443/tcp":{"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.209.46:443/tcp":{"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.212.238:443/tcp":{"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:402::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:403::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:410::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:414::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:416::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:815::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:81e::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:81f::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:820::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"}},"XthWeb":{"HTTPFailure":null,"HTTPResponseStatusCode":200,"HTTPResponseBodyLength":928046,"HTTPResponseHeadersKeys":{"Accept-Ch":2,"Accept-Ranges":2,"Alt-Svc":2,"Cache-Control":2,"Content-Type":2,"Cross-Origin-Opener-Policy":2,"Date":2,"Expires":2,"Origin-Trial":2,"P3p":2,"Permissions-Policy":2,"Pragma":2,"Report-To":2,"Server":2,"Set-Cookie":2,"Strict-Transport-Security":2,"Vary":2,"X-Content-Type-Options":2,"X-Frame-Options":2,"X-Xss-Protection":2},"HTTPResponseTitle":"YouTube"},"XwebByTxID":{"10":{"TransactionID":10,"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396471,"TCPConnectT":0.417629,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.417656,"TLSHandshakeT":0.462505,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"11":{"TransactionID":11,"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396461,"TCPConnectT":0.416484,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.416512,"TLSHandshakeT":0.462307,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"12":{"TransactionID":12,"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396723,"TCPConnectT":0.418956,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419044,"TLSHandshakeT":0.467401,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"13":{"TransactionID":13,"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395951,"TCPConnectT":0.415468,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.415515,"TLSHandshakeT":0.463236,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"14":{"TransactionID":14,"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395747,"TCPConnectT":0.41948,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419504,"TLSHandshakeT":0.464932,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"15":{"TransactionID":15,"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396707,"TCPConnectT":0.418861,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.418894,"TLSHandshakeT":0.465008,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"16":{"TransactionID":16,"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89481,"TCPConnectT":1.939539,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939556,"TLSHandshakeT":1.99845,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"17":{"TransactionID":17,"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895162,"TCPConnectT":1.940325,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.940346,"TLSHandshakeT":2.00063,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"18":{"TransactionID":18,"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895168,"TCPConnectT":1.939568,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939584,"TLSHandshakeT":1.995897,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"19":{"TransactionID":19,"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895386,"TCPConnectT":1.940296,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9403190000000001,"TLSHandshakeT":1.9993750000000001,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"20":{"TransactionID":20,"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8946960000000002,"TCPConnectT":1.93338,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9334069999999999,"TLSHandshakeT":1.984044,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"21":{"TransactionID":21,"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89452,"TCPConnectT":1.9342679999999999,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.934302,"TLSHandshakeT":1.990915,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"22":{"TransactionID":22,"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89411,"TCPConnectT":1.931396,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9314230000000001,"TLSHandshakeT":1.990783,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"23":{"TransactionID":23,"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8941940000000002,"TCPConnectT":1.9308939999999999,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.930963,"TLSHandshakeT":1.990323,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"24":{"TransactionID":24,"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895193,"TCPConnectT":1.939627,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9396879999999999,"TLSHandshakeT":1.994988,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"25":{"TransactionID":25,"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894023,"TCPConnectT":1.930973,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9310070000000001,"TLSHandshakeT":1.993483,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"26":{"TransactionID":26,"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894889,"TCPConnectT":1.936306,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.936323,"TLSHandshakeT":1.993995,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"27":{"TransactionID":27,"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89456,"TCPConnectT":1.938354,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9384000000000001,"TLSHandshakeT":1.99783,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"28":{"TransactionID":28,"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894834,"TCPConnectT":1.936283,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.936303,"TLSHandshakeT":1.992747,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"29":{"TransactionID":29,"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895467,"TCPConnectT":1.940271,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.94029,"TLSHandshakeT":1.999167,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"30":{"TransactionID":30,"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8953090000000001,"TCPConnectT":1.939593,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939614,"TLSHandshakeT":1.995451,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"31":{"TransactionID":31,"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8944800000000002,"TCPConnectT":1.935353,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.935376,"TLSHandshakeT":1.994195,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"4":{"TransactionID":4,"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.39635,"TCPConnectT":0.41553,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.415573,"TLSHandshakeT":0.461278,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"5":{"TransactionID":5,"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395701,"TCPConnectT":0.421933,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.421961,"TLSHandshakeT":0.465331,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"6":{"TransactionID":6,"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395832,"TCPConnectT":0.413203,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.41324,"TLSHandshakeT":0.460508,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"7":{"TransactionID":7,"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396053,"TCPConnectT":0.411923,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.411989,"TLSHandshakeT":0.452334,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":null,"HTTPResponseStatusCode":200,"HTTPResponseBodyLength":524298,"HTTPResponseBodyIsTruncated":true,"HTTPResponseHeadersKeys":{"Accept-Ch":1,"Accept-Ranges":1,"Alt-Svc":1,"Cache-Control":1,"Content-Type":1,"Cross-Origin-Opener-Policy":1,"Date":1,"Expires":1,"Origin-Trial":1,"P3p":1,"Permissions-Policy":1,"Pragma":1,"Report-To":1,"Server":1,"Set-Cookie":1,"Strict-Transport-Security":1,"Vary":1,"X-Content-Type-Options":1,"X-Frame-Options":1,"X-Xss-Protection":1},"HTTPResponseTitle":"YouTube"},"8":{"TransactionID":8,"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395722,"TCPConnectT":0.419464,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419487,"TLSHandshakeT":0.466341,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"9":{"TransactionID":9,"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396408,"TCPConnectT":0.416441,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.416468,"TLSHandshakeT":0.46288,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null}}} \ No newline at end of file diff --git a/internal/pipeline/th.go b/internal/pipeline/th.go new file mode 100644 index 0000000000..099d84727e --- /dev/null +++ b/internal/pipeline/th.go @@ -0,0 +1,152 @@ +package pipeline + +import ( + "errors" + "fmt" + "net" + + "github.com/ooni/probe-cli/v3/internal/geoipx" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// EndpointObservationTH is an endpoint observation made by the test helper (TH). +// +// Optional values represent data that may not be there if we do not +// find the expected events. Non-optional data should always be there. +// +// This type is inspired by and adapted from https://github.com/ooni/data +// and adapts the WebControlObservation type to probe-engine. +type EndpointObservationTH struct { + // Proto is "tcp" (http/https) or "udp" (http/3). + Proto string + + // IPAddress is the IPv4/IPv6 address. + IPAddress string + + // Port is the TCP/UDP port. + Port string + + // Endpoint summarizes IPAddress, Port, and Proto. + Endpoint string + + // IPAddressASN is the IPAddress of the ASN. + IPAddressASN optional.Value[int64] + + // IPAddressIsBogon indicates that the IP address is a bogon. + IPAddressIsBogon bool + + // TCPConnectFailure is the error that occurred. + TCPConnectFailure optional.Value[*string] + + // QUICHandshakeFailure is the error that occurred. + QUICHandshakeFailure optional.Value[*string] + + // TLSHandshakeFailure is the error that occurred. + TLSHandshakeFailure optional.Value[*string] + + // TLSServerName is the SNI value. + TLSServerName optional.Value[string] +} + +// WebObservationTH is a web observation made by the TH. +// +// Optional values represent data that may not be there if we do not +// find the expected events. Non-optional data should always be there. +// +// This type is inspired by and adapted from https://github.com/ooni/data +// and adapts the WebControlObservation type to probe-engine. +type WebObservationTH struct { + // HTTPFailure is the error that occurred. + HTTPFailure optional.Value[*string] + + // HTTPResponseStatusCode is the response status code. + HTTPResponseStatusCode optional.Value[int64] + + // HTTPResponseBodyLength is the length of the response body. + HTTPResponseBodyLength optional.Value[int64] + + // HTTPResponseHeadersKeys contains the response headers keys. + HTTPResponseHeadersKeys map[string]HeaderOrigin + + // HTTPResponseTitle contains the response title. + HTTPResponseTitle optional.Value[string] +} + +func (db *DB) thAddDNS(resp *model.THResponse) error { + db.thDNSFailure = resp.DNS.Failure + for _, addr := range resp.DNS.Addrs { + db.thDNSAddrs[addr] = true + } + return nil +} + +var errInconsistentTHResponse = errors.New("analysis: inconsistent TH response") + +func (db *DB) thAddTCPConnect(resp *model.THResponse) error { + for addrport, status := range resp.TCPConnect { + addr, port, err := net.SplitHostPort(addrport) + if err != nil { + return err + } + + endpoint := fmt.Sprintf("%s/tcp", addrport) + var asn optional.Value[int64] + if v, _, err := geoipx.LookupASN(addr); err == nil { + asn = optional.Some(int64(v)) + } + + // Implementation note: because we're reading a map, we can't have duplicates + // so we can blindly insert into the destination map here + db.thEpntByEpnt[endpoint] = &EndpointObservationTH{ + Proto: "tcp", + IPAddress: addr, + Port: port, + Endpoint: endpoint, + IPAddressASN: asn, + IPAddressIsBogon: netxlite.IsBogon(addr), + TCPConnectFailure: optional.Some(status.Failure), + } + } + return nil +} + +func (db *DB) thAddTLSHandshake(resp *model.THResponse) error { + for addrport, status := range resp.TLSHandshake { + endpoint := fmt.Sprintf("%s/tcp", addrport) + + entry, found := db.thEpntByEpnt[endpoint] + if !found { + return errInconsistentTHResponse + } + + entry.TLSServerName = optional.Some(status.ServerName) + entry.TLSHandshakeFailure = optional.Some(status.Failure) + } + return nil +} + +var errAlreadyExistingTHWeb = errors.New("analysis: thWeb already exists") + +func (db *DB) thAddHTTPResponse(resp *model.THResponse) error { + if !db.thWeb.IsNone() { + return errAlreadyExistingTHWeb + } + + db.thWeb = optional.Some(&WebObservationTH{ + HTTPFailure: optional.Some(resp.HTTPRequest.Failure), + HTTPResponseStatusCode: optional.Some(resp.HTTPRequest.StatusCode), + HTTPResponseBodyLength: optional.Some(resp.HTTPRequest.BodyLength), + HTTPResponseHeadersKeys: func() (out map[string]HeaderOrigin) { + out = make(map[string]HeaderOrigin) + for key := range resp.HTTPRequest.Headers { + out[key] = HeaderOriginTH + } + return + }(), + HTTPResponseTitle: optional.Some(resp.HTTPRequest.Title), + }) + + return nil +} diff --git a/internal/pipeline/web.go b/internal/pipeline/web.go new file mode 100644 index 0000000000..22cda3c4ba --- /dev/null +++ b/internal/pipeline/web.go @@ -0,0 +1,246 @@ +package pipeline + +import ( + "errors" + "fmt" + "net" + + "github.com/ooni/probe-cli/v3/internal/geoipx" + "github.com/ooni/probe-cli/v3/internal/measurexlite" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// WebEndpointObservation is an endpoint observation made by the probe. +// +// Optional values represent data that may not be there if we do not +// find the expected events. Non-optional data should always be there. +// +// This type is inspired by and adapted from https://github.com/ooni/data +// and adapts the WebObservation type to probe-engine. +type WebEndpointObservation struct { + // TransactionID is the ID of the transaction. + TransactionID int64 + + // Proto is "tcp" (http/https) or "udp" (http/3). + Proto string + + // IPAddress is the IPv4/IPv6 address. + IPAddress string + + // Port is the TCP/UDP port. + Port string + + // Endpoint summarizes IPAddress, Port, and Proto. + Endpoint string + + // IPAddressASN is the IPAddress of the ASN. + IPAddressASN optional.Value[int64] + + // IPAddressIsBogon indicates that the IP address is a bogon. + IPAddressIsBogon bool + + // TCPConnectT0 is when we started connecting. + TCPConnectT0 optional.Value[float64] + + // TCPConnectT is when connect returned. + TCPConnectT optional.Value[float64] + + // TCPConnectFailure is the error that occurred. + TCPConnectFailure optional.Value[*string] + + // DNSDomainName is the domain name that produced this IP address. + DNSDomainName optional.Value[string] + + // DNSLookupGetaddrinfoXref contains references to the getaddrinfo + // based DNS lookups that produced this IP address. + DNSLookupGetaddrinfoXref []*DNSObservation + + // DNSLookupUDPXref contains references to the DNS-over-UDP + // based DNS lookups that produced this IP address. + DNSLookupUDPXref []*DNSObservation + + // DNSLookupHTTPSXref contains references to the DNS-over-HTTPS + // based DNS lookups that produced this IP address. + DNSLookupHTTPSXref []*DNSObservation + + // DNSLookupTHXref is true when this address was discovered by the TH + DNSLookupTHXref bool + + // QUICHandshakeT0 is when we started handshaking. + QUICHandshakeT0 optional.Value[float64] + + // QUICHandshakeT is when the QUIC handshake finished. + QUICHandshakeT optional.Value[float64] + + // QUICHandshakeFailure is the error that occurred. + QUICHandshakeFailure optional.Value[*string] + + // TLSHandshakeT0 is when we started handshaking. + TLSHandshakeT0 optional.Value[float64] + + // TLSHandshakeT is when the TLS handshake finished. + TLSHandshakeT optional.Value[float64] + + // TLSHandshakeFailure is the error that occurred. + TLSHandshakeFailure optional.Value[*string] + + // TLSServerName is the SNI value. + TLSServerName optional.Value[string] + + // TLSVersion is the negotiated TLS version. + TLSVersion optional.Value[string] + + // TLSCipherSuite is the negotiated TLS cipher suite. + TLSCipherSuite optional.Value[string] + + // TLSNegotiatedProtocol is the negotiated TLS protocol. + TLSNegotiatedProtocol optional.Value[string] + + // THEndpointXref is a reference to the corresponding TH endpoint. + THEndpointXref optional.Value[*EndpointObservationTH] + + // HTTPRequestURL is the HTTP request URL. + HTTPRequestURL optional.Value[string] + + // HTTPFailure is the error that occurred. + HTTPFailure optional.Value[*string] + + // HTTPResponseStatusCode is the response status code. + HTTPResponseStatusCode optional.Value[int64] + + // HTTPResponseBodyLength is the length of the response body. + HTTPResponseBodyLength optional.Value[int64] + + // HTTPResponseBodyIsTruncated indicates whether the response body is truncated. + HTTPResponseBodyIsTruncated optional.Value[bool] + + // HTTPResponseHeadersKeys contains the response headers keys. + HTTPResponseHeadersKeys map[string]HeaderOrigin + + // HTTPResponseTitle contains the response title. + HTTPResponseTitle optional.Value[string] +} + +func (db *DB) addNetworkEventsTCPConnect(evs ...*model.ArchivalNetworkEvent) error { + for _, ev := range evs { + switch { + case ev.Operation == netxlite.ConnectOperation && ev.Proto == "tcp": + wobs, err := db.newWebEndpointObservation(ev.TransactionID) + if err != nil { + return err + } + addr, port, err := net.SplitHostPort(ev.Address) + if err != nil { + return err + } + wobs.Proto = "tcp" + wobs.IPAddress = addr + wobs.Port = port + wobs.Endpoint = fmt.Sprintf("%s/%s", ev.Address, ev.Proto) + if asn, _, err := geoipx.LookupASN(addr); err == nil { + wobs.IPAddressASN = optional.Some(int64(asn)) + } + wobs.IPAddressIsBogon = netxlite.IsBogon(addr) + wobs.TCPConnectT0 = optional.Some(ev.T0) + wobs.TCPConnectT = optional.Some(ev.T) + wobs.TCPConnectFailure = optional.Some(ev.Failure) + + default: + // nothing + } + } + return nil +} + +func (db *DB) addTLSHandshakeEvents(evs ...*model.ArchivalTLSOrQUICHandshakeResult) error { + for _, ev := range evs { + wobs, err := db.getWebEndpointObservation(ev.TransactionID) + if err != nil { + return err + } + wobs.TLSHandshakeT0 = optional.Some(ev.T0) + wobs.TLSHandshakeT = optional.Some(ev.T) + wobs.TLSHandshakeFailure = optional.Some(ev.Failure) + wobs.TLSServerName = optional.Some(ev.ServerName) + wobs.TLSVersion = optional.Some(ev.TLSVersion) + wobs.TLSCipherSuite = optional.Some(ev.CipherSuite) + wobs.TLSNegotiatedProtocol = optional.Some(ev.NegotiatedProtocol) + } + return nil +} + +func (db *DB) addQUICHandshakeEvents(evs ...*model.ArchivalTLSOrQUICHandshakeResult) error { + for _, ev := range evs { + wobs, err := db.newWebEndpointObservation(ev.TransactionID) + if err != nil { + return err + } + addr, port, err := net.SplitHostPort(ev.Address) + if err != nil { + return err + } + wobs.Proto = ev.Network + wobs.IPAddress = addr + wobs.Port = port + wobs.Endpoint = fmt.Sprintf("%s/%s", ev.Address, ev.Network) + if asn, _, err := geoipx.LookupASN(addr); err == nil { + wobs.IPAddressASN = optional.Some(int64(asn)) + } + wobs.IPAddressIsBogon = netxlite.IsBogon(addr) + wobs.QUICHandshakeT0 = optional.Some(ev.T0) + wobs.QUICHandshakeT = optional.Some(ev.T) + wobs.QUICHandshakeFailure = optional.Some(ev.Failure) + wobs.TLSServerName = optional.Some(ev.ServerName) + wobs.TLSVersion = optional.Some(ev.TLSVersion) + wobs.TLSCipherSuite = optional.Some(ev.CipherSuite) + wobs.TLSNegotiatedProtocol = optional.Some(ev.NegotiatedProtocol) + } + return nil +} + +func (db *DB) addHTTPRoundTrips(evs ...*model.ArchivalHTTPRequestResult) error { + for _, ev := range evs { + wobs, err := db.getWebEndpointObservation(ev.TransactionID) + if err != nil { + return err + } + wobs.HTTPRequestURL = optional.Some(ev.Request.URL) + wobs.HTTPFailure = optional.Some(ev.Failure) + wobs.HTTPResponseStatusCode = optional.Some(ev.Response.Code) + wobs.HTTPResponseBodyLength = optional.Some(int64(len(ev.Response.Body))) + wobs.HTTPResponseBodyIsTruncated = optional.Some(ev.Response.BodyIsTruncated) + wobs.HTTPResponseHeadersKeys = make(map[string]HeaderOrigin) + for key := range ev.Response.Headers { + wobs.HTTPResponseHeadersKeys[key] = HeaderOriginProbe + } + if title := measurexlite.WebGetTitle(string(ev.Response.Body)); title != "" { + wobs.HTTPResponseTitle = optional.Some(title) + } + } + return nil +} + +var errNoSuchTransaction = errors.New("analysis: no such transaction") + +func (db *DB) getWebEndpointObservation(txid int64) (*WebEndpointObservation, error) { + wobs, good := db.webByTxID[txid] + if !good { + return nil, errNoSuchTransaction + } + return wobs, nil +} + +var errTransactionAlreadyExists = errors.New("analysis: transaction already exists") + +func (db *DB) newWebEndpointObservation(txid int64) (*WebEndpointObservation, error) { + if _, good := db.webByTxID[txid]; good { + return nil, errTransactionAlreadyExists + } + wobs := &WebEndpointObservation{ + TransactionID: txid, + } + db.webByTxID[txid] = wobs + return wobs, nil +} From 6aff4f0820f12572db874c0c89fbe7217a0aee08 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 24 Nov 2023 01:20:21 +0100 Subject: [PATCH 13/97] convert more of v0.5's analysis to the ooni/data-like style --- internal/pipeline/analysiscore.go | 79 +++++++++ internal/pipeline/analysisdns.go | 221 ++++++++++++++++++++++++++ internal/pipeline/analysishttpcore.go | 57 +++++++ internal/pipeline/analysishttpdiff.go | 1 + internal/pipeline/analysistcpip.go | 50 ++++++ internal/pipeline/analysistls.go | 38 +++++ internal/pipeline/db.go | 4 +- internal/pipeline/dns.go | 13 ++ internal/pipeline/headers.go | 12 -- internal/pipeline/origin.go | 12 ++ internal/pipeline/th.go | 8 +- internal/pipeline/web.go | 6 +- 12 files changed, 480 insertions(+), 21 deletions(-) create mode 100644 internal/pipeline/analysiscore.go create mode 100644 internal/pipeline/analysisdns.go create mode 100644 internal/pipeline/analysishttpcore.go create mode 100644 internal/pipeline/analysishttpdiff.go create mode 100644 internal/pipeline/analysistcpip.go create mode 100644 internal/pipeline/analysistls.go delete mode 100644 internal/pipeline/headers.go create mode 100644 internal/pipeline/origin.go diff --git a/internal/pipeline/analysiscore.go b/internal/pipeline/analysiscore.go new file mode 100644 index 0000000000..642997247f --- /dev/null +++ b/internal/pipeline/analysiscore.go @@ -0,0 +1,79 @@ +package pipeline + +import ( + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// TODO(bassosimone): we are not extracting the data required to produce +// duplicate-response based failure, which is also not implemented inside +// of the v0.5 codebase, hence we're not regressing here. + +// Analysis aggregates the results of several analysis algorithms. +// +// Some values are optional. When a value IsNone, it means we could not run the +// corresponding analysis algorithm, so we don't basically know. +// +// All the methods in this struct ARE NOT goroutine safe. +// +// The zero value of this struct is ready to use. +type Analysis struct { + // DNSUnexpectedAddr lists all the DNS transaction IDs with unexpected addrs (i.e., IP + // addrs that have not have been also resolved by the TH). + DNSUnexpectedAddr []int64 + + // DNSUnexpectedAddrASN lists all the DNS transaction IDS with unexpected addrs ASNs. + DNSUnexpectedAddrASN []int64 + + // DNSUnexpectedBogon lists all the DNS transaction IDs for which we saw unexpected bogons. + DNSUnexpectedBogon []int64 + + // DNSUnexpectedFailure lists all the DNS transaction IDs containing unexpected DNS lookup failures. + DNSUnexpectedFailure []int64 + + // DNSWithTLSHandshakeFailureAddr lists all the DNS transaction IDs containing IP addresses + // for which the TH could perform a successful TLS handshake where the probe failed. + DNSWithTLSHandshakeFailureAddr []int64 + + // DNSExperimentFailure is a backward-compatibility value that contains the + // failure obtained when using getaddrinfo for the URL's domain + DNSExperimentFailure optional.Value[*string] + + // HTTPExperimentFailure is a backward-compatibility value that contains the + // failure obtained for the final HTTP request made by the probe + HTTPExperimentFailure optional.Value[*string] + + // HTTPUnexpectedFailure contains all the endpoint transaction IDs where + // the TH succeded while the probe failed to fetch a response + HTTPUnexpectedFailure []int64 + + // TCPUnexpectedFailure contains all the endpoint transaction IDs where the TH succeeded + // while the probe failed to connect (excluding obvious IPv6 issues). + TCPUnexpectedFailure []int64 + + // TLSUnexpectedFailure is like TCPUnexpectedFailure but for TLS. + TLSUnexpectedFailure []int64 +} + +// ComputeAll computes all the analysis flags using the DB. +func (ax *Analysis) ComputeAll(db *DB) { + // DNS + ax.ComputeDNSExperimentFailure(db) + ax.ComputeDNSBogon(db) + ax.ComputeDNSUnexpectedFailure(db) + ax.ComputeDNSUnexpectedAddr(db) + ax.ComputeDNSUnexpectedAddrASN(db) + ax.ComputeDNSWithTLSHandshakeFailureAddr(db) + + // TCP/IP + ax.ComputeTCPUnexpectedFailure(db) + + // TLS + ax.ComputeTLSUnexpectedFailure(db) + + // HTTP (core) + ax.ComputeHTTPUnexpectedFailure(db) + ax.ComputeHTTPExperimentFailure(db) + + // HTTP (diff) + +} diff --git a/internal/pipeline/analysisdns.go b/internal/pipeline/analysisdns.go new file mode 100644 index 0000000000..da50747275 --- /dev/null +++ b/internal/pipeline/analysisdns.go @@ -0,0 +1,221 @@ +package pipeline + +import ( + "github.com/ooni/probe-cli/v3/internal/geoipx" + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// ComputeDNSExperimentFailure computes DNSExperimentFailure. +func (ax *Analysis) ComputeDNSExperimentFailure(db *DB) { + for _, entry := range db.dnsByTxID { + // skip queries not for the original hostname + if db.urlHostname != entry.QueryHostname { + continue + } + + // skip queries not using getaddrinfo + if dnsNormalizeEngineName(entry.Engine) != "getaddrinfo" { + continue + } + + // skip successful cases + if entry.Failure == nil { + continue + } + + // assign the first failure and return + ax.DNSExperimentFailure = optional.Some(entry.Failure) + return + } +} + +// ComputeDNSUnexpectedBogon computes DNSUnexpectedBogon. +func (ax *Analysis) ComputeDNSBogon(db *DB) { + for _, entry := range db.webByTxID { + // skip all the entries without a bogon + if !entry.IPAddressIsBogon { + continue + } + + // skip cases where the TH also resolved the same bogon (e.g., as of 2023-11-23, the + // polito.it domain legitimately resolves to 192.168.59.6 and 192.168.40.1) + if entry.DNSLookupTHXref { + continue + } + + // register the transaction containing the bogon. + ax.DNSUnexpectedBogon = append(ax.DNSUnexpectedBogon, entry.TransactionID) + } +} + +// ComputeDNSUnexpectedFailure computes DNSUnexpectedFailure. +func (ax *Analysis) ComputeDNSUnexpectedFailure(db *DB) { + // we cannot run this algorithm if the control failed or returned no IP addresses. + if db.thDNSFailure != nil { + return + } + + // we cannot run this algorithm if the control returned no IP addresses. + if len(db.thDNSAddrs) <= 0 { + return + } + + // inspect DNS lookup results + for _, entry := range db.dnsByTxID { + // skip cases without failures + if entry.Failure == nil { + continue + } + + // skip cases that query the wrong domain name + if entry.QueryHostname != db.urlHostname { + continue + } + + // A DoH failure is not information about the DNS blocking of the URL hostname + // we're measuring but rather about the DoH service being blocked. + // + // See https://github.com/ooni/probe/issues/2274 + if entry.Engine == "doh" { + continue + } + + // skip cases where there's no IPv6 addresses for a domain + if entry.QueryType == "AAAA" && *entry.Failure == netxlite.FailureDNSNoAnswer { + continue + } + + // register the transaction as containing an unexpected DNS failure + ax.DNSUnexpectedFailure = append(ax.DNSUnexpectedFailure, entry.TransactionID) + } +} + +func (ax *Analysis) dnsDiffHelper(db *DB, fx func(db *DB, entry *DNSObservation)) { + // we cannot run this algorithm if the control failed or returned no IP addresses. + if db.thDNSFailure != nil { + return + } + + // we cannot run this algorithm if the control returned no IP addresses. + if len(db.thDNSAddrs) <= 0 { + return + } + + // inspect DNS lookup results + for _, entry := range db.dnsByTxID { + // skip cases witht failures + if entry.Failure != nil { + continue + } + + // skip cases that query the wrong domain name + if entry.QueryHostname != db.urlHostname { + continue + } + + // Note: we include DoH-resolved addresses in this comparison + // because they should be ~as good as the TH addresses. + + // invoke user defined function + fx(db, entry) + } +} + +// ComputeDNSUnexpectedAddr computes DNSUnexpectedAddr. +func (ax *Analysis) ComputeDNSUnexpectedAddr(db *DB) { + ax.dnsDiffHelper(db, func(db *DB, entry *DNSObservation) { + state := make(map[string]Origin) + + for _, addr := range entry.IPAddrs { + state[addr] |= OriginProbe + } + + for addr := range db.thDNSAddrs { + state[addr] |= OriginTH + } + + for _, flags := range state { + if (flags & OriginTH) == 0 { + ax.DNSUnexpectedAddr = append(ax.DNSUnexpectedAddr, entry.TransactionID) + return + } + } + }) +} + +// ComputeDNSUnexpectedAddrASN computes DNSUnexpectedAddrASN. +func (ax *Analysis) ComputeDNSUnexpectedAddrASN(db *DB) { + ax.dnsDiffHelper(db, func(db *DB, entry *DNSObservation) { + state := make(map[int64]Origin) + + for _, addr := range entry.IPAddrs { + if asn, _, err := geoipx.LookupASN(addr); err == nil { + state[int64(asn)] |= OriginProbe + } + } + + for addr := range db.thDNSAddrs { + if asn, _, err := geoipx.LookupASN(addr); err == nil { + state[int64(asn)] |= OriginTH + } + } + + for _, flags := range state { + if (flags & OriginTH) == 0 { + ax.DNSUnexpectedAddrASN = append(ax.DNSUnexpectedAddrASN, entry.TransactionID) + return + } + } + }) +} + +// ComputeDNSWithTLSHandshakeFailureAddr computes DNSWithTLSHandshakeFailureAddr. +func (ax *Analysis) ComputeDNSWithTLSHandshakeFailureAddr(db *DB) { + ax.dnsDiffHelper(db, func(db *DB, dns *DNSObservation) { + // walk through each resolved address in this DNS lookup + for _, addr := range dns.IPAddrs { + + // find the corresponding endpoint measurement + for _, epnt := range db.webByTxID { + + // skip entries related to a different address + if epnt.IPAddress != addr { + continue + } + + // skip entries where we did not attempt a TLS handshake + if epnt.TLSHandshakeFailure.IsNone() { + continue + } + + // skip entries where the handshake succeded + if epnt.TLSHandshakeFailure.Unwrap() == nil { + continue + } + + // find the related TH measurement + thEpnt, good := db.thEpntByEpnt[epnt.Endpoint] + + // skip cases where there's no TH entry + if !good { + continue + } + + // skip cases where the TH did not perform an handshake (a bug?) + if thEpnt.TLSHandshakeFailure.IsNone() { + continue + } + + // skip cases where the TH's handshake also failed + if thEpnt.TLSHandshakeFailure.Unwrap() != nil { + continue + } + + // mark the DNS transaction as bad and stop + ax.DNSWithTLSHandshakeFailureAddr = append(ax.DNSWithTLSHandshakeFailureAddr, dns.TransactionID) + return + } + } + }) +} diff --git a/internal/pipeline/analysishttpcore.go b/internal/pipeline/analysishttpcore.go new file mode 100644 index 0000000000..24fc6dd222 --- /dev/null +++ b/internal/pipeline/analysishttpcore.go @@ -0,0 +1,57 @@ +package pipeline + +import "github.com/ooni/probe-cli/v3/internal/optional" + +func (ax *Analysis) httpExperimentFailureHelper(db *DB, fx func(txId int64, probeFailure *string)) { + // skip if there's no final request + if db.webFinalRequest.IsNone() { + return + } + probeFR := db.webFinalRequest.Unwrap() + + // skip if the HTTP failure is not defined (bug?) + if probeFR.HTTPFailure.IsNone() { + return + } + + // skip if the final request succeded + // TODO(bassosimone): say that the probe succeeds and the TH fails, then what? + probeFailure := probeFR.HTTPFailure.Unwrap() + if probeFailure == nil { + return + } + + // skip if the final request is not defined for the TH + if db.thWeb.IsNone() { + return + } + thFR := db.thWeb.Unwrap() + + // skip if the failure is not defined for the TH + if thFR.HTTPFailure.IsNone() { + return + } + + // skip if also the TH's HTTP request failed + thFailure := thFR.HTTPFailure.Unwrap() + if thFailure != nil { + return + } + + // invoke user defined func + fx(probeFR.TransactionID, probeFailure) +} + +// ComputeHTTPUnexpectedFailure computes HTTPUnexpectedFailure. +func (ax *Analysis) ComputeHTTPUnexpectedFailure(db *DB) { + ax.httpExperimentFailureHelper(db, func(txId int64, probeFailure *string) { + ax.HTTPUnexpectedFailure = append(ax.HTTPUnexpectedFailure, txId) + }) +} + +// ComputeHTTPExperimentFailure computes HTTPExperimentFailure. +func (ax *Analysis) ComputeHTTPExperimentFailure(db *DB) { + ax.httpExperimentFailureHelper(db, func(txId int64, probeFailure *string) { + ax.HTTPExperimentFailure = optional.Some(probeFailure) + }) +} diff --git a/internal/pipeline/analysishttpdiff.go b/internal/pipeline/analysishttpdiff.go new file mode 100644 index 0000000000..fb2071c7f5 --- /dev/null +++ b/internal/pipeline/analysishttpdiff.go @@ -0,0 +1 @@ +package pipeline diff --git a/internal/pipeline/analysistcpip.go b/internal/pipeline/analysistcpip.go new file mode 100644 index 0000000000..3ec8c51bcc --- /dev/null +++ b/internal/pipeline/analysistcpip.go @@ -0,0 +1,50 @@ +package pipeline + +import "github.com/ooni/probe-cli/v3/internal/netxlite" + +// ComputeTCPUnexpectedFailure computes TCPUnexpectedFailure. +func (ax *Analysis) ComputeTCPUnexpectedFailure(db *DB) { + for _, entry := range db.webByTxID { + // skip all the entries where we did not set a TCP failure + if entry.TCPConnectFailure.IsNone() { + continue + } + + // skip all the entries where connect succeded + // TODO(bassosimone): say that the probe succeeds and the TH fails, then what? + if entry.TCPConnectFailure.Unwrap() == nil { + continue + } + + // get the corresponding TH measurement + th, good := db.thEpntByEpnt[entry.Endpoint] + + // skip if there's no TH data + if !good { + continue + } + + // skip if we don't have a failure defined for TH (bug?) + if th.TCPConnectFailure.IsNone() { + continue + } + + // skip if also the TH failed to connect + if th.TCPConnectFailure.Unwrap() != nil { + continue + } + + // ignore failures that are most likely caused by a broken IPv6 network stack + if ipv6, err := netxlite.IsIPv6(entry.IPAddress); err == nil && ipv6 { + failure := th.TCPConnectFailure.Unwrap() + likelyFalsePositive := (*failure == netxlite.FailureNetworkUnreachable || + *failure == netxlite.FailureHostUnreachable) + if likelyFalsePositive { + continue + } + } + + // mark this entry as problematic + ax.TCPUnexpectedFailure = append(ax.TCPUnexpectedFailure, entry.TransactionID) + } +} diff --git a/internal/pipeline/analysistls.go b/internal/pipeline/analysistls.go new file mode 100644 index 0000000000..2c5cb2d872 --- /dev/null +++ b/internal/pipeline/analysistls.go @@ -0,0 +1,38 @@ +package pipeline + +// ComputeTLSUnexpectedFailure computes TLSUnexpectedFailure. +func (ax *Analysis) ComputeTLSUnexpectedFailure(db *DB) { + for _, entry := range db.webByTxID { + // skip all the entries where we did not set a TLS failure + if entry.TLSHandshakeFailure.IsNone() { + continue + } + + // skip all the entries where connect succeded + // TODO(bassosimone): say that the probe succeeds and the TH fails, then what? + if entry.TLSHandshakeFailure.Unwrap() == nil { + continue + } + + // get the corresponding TH measurement + th, good := db.thEpntByEpnt[entry.Endpoint] + + // skip if there's no TH data + if !good { + continue + } + + // skip if we don't have a failure defined for TH (bug?) + if th.TLSHandshakeFailure.IsNone() { + continue + } + + // skip if also the TH failed to handshake + if th.TLSHandshakeFailure.Unwrap() != nil { + continue + } + + // mark this entry as problematic + ax.TLSUnexpectedFailure = append(ax.TLSUnexpectedFailure, entry.TransactionID) + } +} diff --git a/internal/pipeline/db.go b/internal/pipeline/db.go index b13a7ef676..c5cd6ec998 100644 --- a/internal/pipeline/db.go +++ b/internal/pipeline/db.go @@ -113,8 +113,8 @@ func (db *DB) buildXrefsDNS() { addrToUDP := make(map[string][]*DNSObservation) addrToHTTPS := make(map[string][]*DNSObservation) for _, dobs := range db.dnsByTxID { - switch dobs.Engine { - case "system", "getaddrinfo", "golang_net_resolver", "go": + switch dnsNormalizeEngineName(dobs.Engine) { + case "getaddrinfo": for _, addr := range dobs.IPAddrs { addrToGetaddrinfo[addr] = append(addrToGetaddrinfo[addr], dobs) } diff --git a/internal/pipeline/dns.go b/internal/pipeline/dns.go index 55638ee0b8..dc8ea7b38f 100644 --- a/internal/pipeline/dns.go +++ b/internal/pipeline/dns.go @@ -18,6 +18,9 @@ type DNSObservation struct { // QueryType is the DNS query type (e.g., "A"). QueryType string + // QueryHostname is the hostname inside the query. + QueryHostname string + // Failure is the failure that occurred. Failure *string @@ -44,6 +47,7 @@ func (db *DB) addDNSLookups(evs ...*model.ArchivalDNSLookupResult) error { return err } dobs.QueryType = ev.QueryType + dobs.QueryHostname = ev.Hostname dobs.Failure = ev.Failure dobs.Engine = ev.Engine dobs.ResolverAddress = ev.ResolverAddress @@ -76,3 +80,12 @@ func (db *DB) newDNSObservation(txid int64) (*DNSObservation, error) { db.dnsByTxID[txid] = dobs return dobs, nil } + +func dnsNormalizeEngineName(engine string) string { + switch engine { + case "system", "getaddrinfo", "golang_net_resolver", "go": + return "getaddrinfo" + default: + return engine + } +} diff --git a/internal/pipeline/headers.go b/internal/pipeline/headers.go deleted file mode 100644 index 1a838efdcd..0000000000 --- a/internal/pipeline/headers.go +++ /dev/null @@ -1,12 +0,0 @@ -package pipeline - -// HeaderOrigin indicates the header origin -type HeaderOrigin int64 - -const ( - // HeaderOriginProbe indicates that the header was seen by the probe - HeaderOriginProbe = HeaderOrigin(1 << iota) - - // HeaderOriginTH indicates that the header was seen by the TH - HeaderOriginTH -) diff --git a/internal/pipeline/origin.go b/internal/pipeline/origin.go new file mode 100644 index 0000000000..7c2cc74188 --- /dev/null +++ b/internal/pipeline/origin.go @@ -0,0 +1,12 @@ +package pipeline + +// Origin indicates the header origin +type Origin int64 + +const ( + // OriginProbe indicates that the header was seen by the probe + OriginProbe = Origin(1 << iota) + + // OriginTH indicates that the header was seen by the TH + OriginTH +) diff --git a/internal/pipeline/th.go b/internal/pipeline/th.go index 099d84727e..57f9965d06 100644 --- a/internal/pipeline/th.go +++ b/internal/pipeline/th.go @@ -68,7 +68,7 @@ type WebObservationTH struct { HTTPResponseBodyLength optional.Value[int64] // HTTPResponseHeadersKeys contains the response headers keys. - HTTPResponseHeadersKeys map[string]HeaderOrigin + HTTPResponseHeadersKeys map[string]Origin // HTTPResponseTitle contains the response title. HTTPResponseTitle optional.Value[string] @@ -138,10 +138,10 @@ func (db *DB) thAddHTTPResponse(resp *model.THResponse) error { HTTPFailure: optional.Some(resp.HTTPRequest.Failure), HTTPResponseStatusCode: optional.Some(resp.HTTPRequest.StatusCode), HTTPResponseBodyLength: optional.Some(resp.HTTPRequest.BodyLength), - HTTPResponseHeadersKeys: func() (out map[string]HeaderOrigin) { - out = make(map[string]HeaderOrigin) + HTTPResponseHeadersKeys: func() (out map[string]Origin) { + out = make(map[string]Origin) for key := range resp.HTTPRequest.Headers { - out[key] = HeaderOriginTH + out[key] = OriginTH } return }(), diff --git a/internal/pipeline/web.go b/internal/pipeline/web.go index 22cda3c4ba..d6b4f44f7b 100644 --- a/internal/pipeline/web.go +++ b/internal/pipeline/web.go @@ -117,7 +117,7 @@ type WebEndpointObservation struct { HTTPResponseBodyIsTruncated optional.Value[bool] // HTTPResponseHeadersKeys contains the response headers keys. - HTTPResponseHeadersKeys map[string]HeaderOrigin + HTTPResponseHeadersKeys map[string]Origin // HTTPResponseTitle contains the response title. HTTPResponseTitle optional.Value[string] @@ -211,9 +211,9 @@ func (db *DB) addHTTPRoundTrips(evs ...*model.ArchivalHTTPRequestResult) error { wobs.HTTPResponseStatusCode = optional.Some(ev.Response.Code) wobs.HTTPResponseBodyLength = optional.Some(int64(len(ev.Response.Body))) wobs.HTTPResponseBodyIsTruncated = optional.Some(ev.Response.BodyIsTruncated) - wobs.HTTPResponseHeadersKeys = make(map[string]HeaderOrigin) + wobs.HTTPResponseHeadersKeys = make(map[string]Origin) for key := range ev.Response.Headers { - wobs.HTTPResponseHeadersKeys[key] = HeaderOriginProbe + wobs.HTTPResponseHeadersKeys[key] = OriginProbe } if title := measurexlite.WebGetTitle(string(ev.Response.Body)); title != "" { wobs.HTTPResponseTitle = optional.Some(title) From 94f9fd7c6674f340b1a24e65e71a3593f7b81868 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 24 Nov 2023 02:36:01 +0100 Subject: [PATCH 14/97] some more progress --- internal/cmd/pipeline/main.go | 25 ++ .../webconnectivitylte/cleartextflow.go | 1 + .../webconnectivitylte/secureflow.go | 1 + internal/pipeline/analysiscore.go | 26 +- internal/pipeline/analysisdns.go | 42 +-- internal/pipeline/analysishttpcore.go | 18 +- internal/pipeline/analysishttpdiff.go | 271 ++++++++++++++++++ internal/pipeline/analysistcpip.go | 18 +- internal/pipeline/analysistls.go | 8 +- internal/pipeline/db.go | 48 ++-- internal/pipeline/dns.go | 8 +- internal/pipeline/failure.go | 12 + internal/pipeline/qa_test.go | 22 +- internal/pipeline/testdata/youtube_ax.json | 1 + internal/pipeline/testdata/youtube_db.json | 2 +- internal/pipeline/th.go | 26 +- internal/pipeline/web.go | 27 +- 17 files changed, 437 insertions(+), 119 deletions(-) create mode 100644 internal/cmd/pipeline/main.go create mode 100644 internal/pipeline/failure.go create mode 100644 internal/pipeline/testdata/youtube_ax.json diff --git a/internal/cmd/pipeline/main.go b/internal/cmd/pipeline/main.go new file mode 100644 index 0000000000..a1495649ee --- /dev/null +++ b/internal/cmd/pipeline/main.go @@ -0,0 +1,25 @@ +package main + +import ( + "os" + + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/pipeline" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +func main() { + rawMeasurement := must.ReadFile(os.Args[1]) + var canonicalMeasurement pipeline.CanonicalMeasurement + must.UnmarshalJSON(rawMeasurement, &canonicalMeasurement) + + db := pipeline.NewDB() + runtimex.Try0(db.Ingest(&canonicalMeasurement)) + + must.WriteFile("db.json", must.MarshalJSON(db), 0600) + + ax := &pipeline.Analysis{} + ax.ComputeAllValues(db) + + must.WriteFile("ax.json", must.MarshalJSON(ax), 0600) +} diff --git a/internal/experiment/webconnectivitylte/cleartextflow.go b/internal/experiment/webconnectivitylte/cleartextflow.go index 55b4ef1f4b..4af51d5c82 100644 --- a/internal/experiment/webconnectivitylte/cleartextflow.go +++ b/internal/experiment/webconnectivitylte/cleartextflow.go @@ -132,6 +132,7 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { tcpDialer := trace.NewDialerWithoutResolver(t.Logger) tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) + t.TestKeys.AppendNetworkEvents(trace.NetworkEvents()...) if err != nil { // TODO(bassosimone): document why we're adding a request to the heap here t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index 0540ce0778..fcedfde511 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -177,6 +177,7 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { tcpDialer := trace.NewDialerWithoutResolver(t.Logger) tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) + t.TestKeys.AppendNetworkEvents(trace.NetworkEvents()...) if err != nil { // TODO(bassosimone): document why we're adding a request to the heap here if t.PrioSelector != nil { diff --git a/internal/pipeline/analysiscore.go b/internal/pipeline/analysiscore.go index 642997247f..9126a366cb 100644 --- a/internal/pipeline/analysiscore.go +++ b/internal/pipeline/analysiscore.go @@ -36,11 +36,24 @@ type Analysis struct { // DNSExperimentFailure is a backward-compatibility value that contains the // failure obtained when using getaddrinfo for the URL's domain - DNSExperimentFailure optional.Value[*string] + DNSExperimentFailure optional.Value[Failure] + + // HTTPDiffBodyProportionFactor is the ratio of the two final bodies. + HTTPDiffBodyProportionFactor optional.Value[float64] + + // HTTPDiffTitleMatch indicates whether the titles have common words in them. + HTTPDiffTitleMatch optional.Value[bool] + + // HTTPDiffStatusCodeMatch indicates whether the status code matches taking into + // account some false positives that may arise. + HTTPDiffStatusCodeMatch optional.Value[bool] + + // HTTPDiffUncommonHeadersMatch indicates whether uncommon headers match. + HTTPDiffUncommonHeadersMatch optional.Value[bool] // HTTPExperimentFailure is a backward-compatibility value that contains the // failure obtained for the final HTTP request made by the probe - HTTPExperimentFailure optional.Value[*string] + HTTPExperimentFailure optional.Value[Failure] // HTTPUnexpectedFailure contains all the endpoint transaction IDs where // the TH succeded while the probe failed to fetch a response @@ -54,8 +67,8 @@ type Analysis struct { TLSUnexpectedFailure []int64 } -// ComputeAll computes all the analysis flags using the DB. -func (ax *Analysis) ComputeAll(db *DB) { +// ComputeAllValues computes all the analysis values using the DB. +func (ax *Analysis) ComputeAllValues(db *DB) { // DNS ax.ComputeDNSExperimentFailure(db) ax.ComputeDNSBogon(db) @@ -75,5 +88,8 @@ func (ax *Analysis) ComputeAll(db *DB) { ax.ComputeHTTPExperimentFailure(db) // HTTP (diff) - + ax.ComputeHTTPDiffBodyProportionFactor(db) + ax.ComputeHTTPDiffStatusCodeMatch(db) + ax.ComputeHTTPDiffUncommonHeadersMatch(db) + ax.ComputeHTTPDiffTitleMatch(db) } diff --git a/internal/pipeline/analysisdns.go b/internal/pipeline/analysisdns.go index da50747275..8c06dc0010 100644 --- a/internal/pipeline/analysisdns.go +++ b/internal/pipeline/analysisdns.go @@ -8,9 +8,9 @@ import ( // ComputeDNSExperimentFailure computes DNSExperimentFailure. func (ax *Analysis) ComputeDNSExperimentFailure(db *DB) { - for _, entry := range db.dnsByTxID { + for _, entry := range db.DNSByTxID { // skip queries not for the original hostname - if db.urlHostname != entry.QueryHostname { + if db.URLHostname != entry.QueryHostname { continue } @@ -20,7 +20,7 @@ func (ax *Analysis) ComputeDNSExperimentFailure(db *DB) { } // skip successful cases - if entry.Failure == nil { + if entry.Failure == "" { continue } @@ -32,7 +32,7 @@ func (ax *Analysis) ComputeDNSExperimentFailure(db *DB) { // ComputeDNSUnexpectedBogon computes DNSUnexpectedBogon. func (ax *Analysis) ComputeDNSBogon(db *DB) { - for _, entry := range db.webByTxID { + for _, entry := range db.WebByTxID { // skip all the entries without a bogon if !entry.IPAddressIsBogon { continue @@ -52,24 +52,24 @@ func (ax *Analysis) ComputeDNSBogon(db *DB) { // ComputeDNSUnexpectedFailure computes DNSUnexpectedFailure. func (ax *Analysis) ComputeDNSUnexpectedFailure(db *DB) { // we cannot run this algorithm if the control failed or returned no IP addresses. - if db.thDNSFailure != nil { + if db.THDNSFailure != "" { return } // we cannot run this algorithm if the control returned no IP addresses. - if len(db.thDNSAddrs) <= 0 { + if len(db.THDNSAddrs) <= 0 { return } // inspect DNS lookup results - for _, entry := range db.dnsByTxID { + for _, entry := range db.DNSByTxID { // skip cases without failures - if entry.Failure == nil { + if entry.Failure == "" { continue } // skip cases that query the wrong domain name - if entry.QueryHostname != db.urlHostname { + if entry.QueryHostname != db.URLHostname { continue } @@ -82,7 +82,7 @@ func (ax *Analysis) ComputeDNSUnexpectedFailure(db *DB) { } // skip cases where there's no IPv6 addresses for a domain - if entry.QueryType == "AAAA" && *entry.Failure == netxlite.FailureDNSNoAnswer { + if entry.QueryType == "AAAA" && entry.Failure == netxlite.FailureDNSNoAnswer { continue } @@ -93,24 +93,24 @@ func (ax *Analysis) ComputeDNSUnexpectedFailure(db *DB) { func (ax *Analysis) dnsDiffHelper(db *DB, fx func(db *DB, entry *DNSObservation)) { // we cannot run this algorithm if the control failed or returned no IP addresses. - if db.thDNSFailure != nil { + if db.THDNSFailure != "" { return } // we cannot run this algorithm if the control returned no IP addresses. - if len(db.thDNSAddrs) <= 0 { + if len(db.THDNSAddrs) <= 0 { return } // inspect DNS lookup results - for _, entry := range db.dnsByTxID { + for _, entry := range db.DNSByTxID { // skip cases witht failures - if entry.Failure != nil { + if entry.Failure != "" { continue } // skip cases that query the wrong domain name - if entry.QueryHostname != db.urlHostname { + if entry.QueryHostname != db.URLHostname { continue } @@ -131,7 +131,7 @@ func (ax *Analysis) ComputeDNSUnexpectedAddr(db *DB) { state[addr] |= OriginProbe } - for addr := range db.thDNSAddrs { + for addr := range db.THDNSAddrs { state[addr] |= OriginTH } @@ -155,7 +155,7 @@ func (ax *Analysis) ComputeDNSUnexpectedAddrASN(db *DB) { } } - for addr := range db.thDNSAddrs { + for addr := range db.THDNSAddrs { if asn, _, err := geoipx.LookupASN(addr); err == nil { state[int64(asn)] |= OriginTH } @@ -177,7 +177,7 @@ func (ax *Analysis) ComputeDNSWithTLSHandshakeFailureAddr(db *DB) { for _, addr := range dns.IPAddrs { // find the corresponding endpoint measurement - for _, epnt := range db.webByTxID { + for _, epnt := range db.WebByTxID { // skip entries related to a different address if epnt.IPAddress != addr { @@ -190,12 +190,12 @@ func (ax *Analysis) ComputeDNSWithTLSHandshakeFailureAddr(db *DB) { } // skip entries where the handshake succeded - if epnt.TLSHandshakeFailure.Unwrap() == nil { + if epnt.TLSHandshakeFailure.Unwrap() == "" { continue } // find the related TH measurement - thEpnt, good := db.thEpntByEpnt[epnt.Endpoint] + thEpnt, good := db.THEpntByEpnt[epnt.Endpoint] // skip cases where there's no TH entry if !good { @@ -208,7 +208,7 @@ func (ax *Analysis) ComputeDNSWithTLSHandshakeFailureAddr(db *DB) { } // skip cases where the TH's handshake also failed - if thEpnt.TLSHandshakeFailure.Unwrap() != nil { + if thEpnt.TLSHandshakeFailure.Unwrap() != "" { continue } diff --git a/internal/pipeline/analysishttpcore.go b/internal/pipeline/analysishttpcore.go index 24fc6dd222..5ddc259cdd 100644 --- a/internal/pipeline/analysishttpcore.go +++ b/internal/pipeline/analysishttpcore.go @@ -2,12 +2,12 @@ package pipeline import "github.com/ooni/probe-cli/v3/internal/optional" -func (ax *Analysis) httpExperimentFailureHelper(db *DB, fx func(txId int64, probeFailure *string)) { +func (ax *Analysis) httpExperimentFailureHelper(db *DB, fx func(txId int64, probeFailure Failure)) { // skip if there's no final request - if db.webFinalRequest.IsNone() { + if db.WebFinalRequest.IsNone() { return } - probeFR := db.webFinalRequest.Unwrap() + probeFR := db.WebFinalRequest.Unwrap() // skip if the HTTP failure is not defined (bug?) if probeFR.HTTPFailure.IsNone() { @@ -17,15 +17,15 @@ func (ax *Analysis) httpExperimentFailureHelper(db *DB, fx func(txId int64, prob // skip if the final request succeded // TODO(bassosimone): say that the probe succeeds and the TH fails, then what? probeFailure := probeFR.HTTPFailure.Unwrap() - if probeFailure == nil { + if probeFailure == "" { return } // skip if the final request is not defined for the TH - if db.thWeb.IsNone() { + if db.THWeb.IsNone() { return } - thFR := db.thWeb.Unwrap() + thFR := db.THWeb.Unwrap() // skip if the failure is not defined for the TH if thFR.HTTPFailure.IsNone() { @@ -34,7 +34,7 @@ func (ax *Analysis) httpExperimentFailureHelper(db *DB, fx func(txId int64, prob // skip if also the TH's HTTP request failed thFailure := thFR.HTTPFailure.Unwrap() - if thFailure != nil { + if thFailure != "" { return } @@ -44,14 +44,14 @@ func (ax *Analysis) httpExperimentFailureHelper(db *DB, fx func(txId int64, prob // ComputeHTTPUnexpectedFailure computes HTTPUnexpectedFailure. func (ax *Analysis) ComputeHTTPUnexpectedFailure(db *DB) { - ax.httpExperimentFailureHelper(db, func(txId int64, probeFailure *string) { + ax.httpExperimentFailureHelper(db, func(txId int64, probeFailure Failure) { ax.HTTPUnexpectedFailure = append(ax.HTTPUnexpectedFailure, txId) }) } // ComputeHTTPExperimentFailure computes HTTPExperimentFailure. func (ax *Analysis) ComputeHTTPExperimentFailure(db *DB) { - ax.httpExperimentFailureHelper(db, func(txId int64, probeFailure *string) { + ax.httpExperimentFailureHelper(db, func(txId int64, probeFailure Failure) { ax.HTTPExperimentFailure = optional.Some(probeFailure) }) } diff --git a/internal/pipeline/analysishttpdiff.go b/internal/pipeline/analysishttpdiff.go index fb2071c7f5..d67c46ab53 100644 --- a/internal/pipeline/analysishttpdiff.go +++ b/internal/pipeline/analysishttpdiff.go @@ -1 +1,272 @@ package pipeline + +import ( + "strings" + + "github.com/ooni/probe-cli/v3/internal/optional" +) + +func (ax *Analysis) httpDiffHelper(db *DB, fx func(probeFR *WebEndpointObservation, thFR *WebObservationTH)) { + // skip if there's no final request + if db.WebFinalRequest.IsNone() { + return + } + probeFR := db.WebFinalRequest.Unwrap() + + // skip if the HTTP failure is not defined (bug?) + if probeFR.HTTPFailure.IsNone() { + return + } + + // skip if the final request failed + probeFailure := probeFR.HTTPFailure.Unwrap() + if probeFailure != "" { + return + } + + // skip if the final request is not defined for the TH + if db.THWeb.IsNone() { + return + } + thFR := db.THWeb.Unwrap() + + // skip if the failure is not defined for the TH + if thFR.HTTPFailure.IsNone() { + return + } + + // skip if also the TH's HTTP request failed + thFailure := thFR.HTTPFailure.Unwrap() + if thFailure != "" { + return + } + + // invoke user defined func + fx(probeFR, thFR) +} + +// ComputeHTTPDiffBodyProportionFactor computes HTTPDiffBodyProportionFactor. +func (ax *Analysis) ComputeHTTPDiffBodyProportionFactor(db *DB) { + ax.httpDiffHelper(db, func(probeFT *WebEndpointObservation, thFR *WebObservationTH) { + // skip if there's no length for the TH + if thFR.HTTPResponseBodyLength.IsNone() { + return + } + + // skip if the length has not been computed by the TH + control := thFR.HTTPResponseBodyLength.Unwrap() + if control <= 0 { + return + } + + // skip if we don't know whether the body was truncated + if probeFT.HTTPResponseBodyIsTruncated.IsNone() { + return + } + truncated := probeFT.HTTPResponseBodyIsTruncated.Unwrap() + + // skip if the body was truncated (we cannot trust length in this case) + if truncated { + return + } + + // skip if we don't know the body length + if probeFT.HTTPResponseBodyLength.IsNone() { + return + } + measurement := probeFT.HTTPResponseBodyLength.Unwrap() + + // skip if the length is zero or negative (which doesn't make sense and seems a bug) + if measurement <= 0 { + return + } + + // compute the body proportion factor + var proportion float64 + if measurement >= control { + proportion = float64(control) / float64(measurement) + } else { + proportion = float64(measurement) / float64(control) + } + + // save the body proportion factor + ax.HTTPDiffBodyProportionFactor = optional.Some(proportion) + }) +} + +// ComputeHTTPDiffStatusCodeMatch computes HTTPDiffStatusCodeMatch. +func (ax *Analysis) ComputeHTTPDiffStatusCodeMatch(db *DB) { + ax.httpDiffHelper(db, func(probeFR *WebEndpointObservation, thFR *WebObservationTH) { + // skip if we don't know the control status + if thFR.HTTPResponseStatusCode.IsNone() { + return + } + control := thFR.HTTPResponseStatusCode.Unwrap() + + // skip the control is invalid + if control <= 0 { + return + } + + // skip if we don't know the probe status + if probeFR.HTTPResponseStatusCode.IsNone() { + return + } + measurement := probeFR.HTTPResponseStatusCode.Unwrap() + + // skip if the meaasurement is invalid + if measurement <= 0 { + return + } + + // compute whether there's a match including caveats + good := control == measurement + if !good && control/100 != 2 { + // Avoid comparison if it seems the TH failed _and_ the two + // status codes are not equal. Originally, this algorithm was + // https://github.com/measurement-kit/measurement-kit/blob/b55fbecb205be62c736249b689df0c45ae342804/src/libmeasurement_kit/ooni/web_connectivity.cpp#L60 + // and excluded the case where the TH failed with 5xx. + // + // Then, we discovered when implementing websteps a bunch + // of control failure modes that suggested to be more + // cautious. See https://github.com/bassosimone/websteps-illustrated/blob/632f27443ab9d94fb05efcf5e0b0c1ce190221e2/internal/engine/experiment/websteps/analysisweb.go#L137. + // + // However, it seems a bit retarded to avoid comparison + // when both the TH and the probe failed equally. See + // https://github.com/ooni/probe/issues/2287, which refers + // to a measurement where both the probe and the TH fail + // with 404, but we fail to say "status_code_match = true". + // + // See https://explorer.ooni.org/measurement/20220911T203447Z_webconnectivity_IT_30722_n1_YDZQZOHAziEJk6o9?input=http%3A%2F%2Fwww.webbox.com%2Findex.php + // for a measurement where this was fixed. + return + } + + // store the algorithm result + ax.HTTPDiffStatusCodeMatch = optional.Some(good) + }) +} + +// ComputeHTTPDiffUncommonHeadersMatch computes HTTPDiffUncommonHeadersMatch. +func (ax *Analysis) ComputeHTTPDiffUncommonHeadersMatch(db *DB) { + ax.httpDiffHelper(db, func(probeFR *WebEndpointObservation, thFR *WebObservationTH) { + // skip if we don't know the control headers keys + if len(thFR.HTTPResponseHeadersKeys) <= 0 { + return + } + control := thFR.HTTPResponseHeadersKeys + + // skip if we don't know the probe headers keys + if len(probeFR.HTTPResponseHeadersKeys) <= 0 { + return + } + measurement := probeFR.HTTPResponseHeadersKeys + + commonHeaders := map[string]bool{ + "date": true, + "content-type": true, + "server": true, + "cache-control": true, + "vary": true, + "set-cookie": true, + "location": true, + "expires": true, + "x-powered-by": true, + "content-encoding": true, + "last-modified": true, + "accept-ranges": true, + "pragma": true, + "x-frame-options": true, + "etag": true, + "x-content-type-options": true, + "age": true, + "via": true, + "p3p": true, + "x-xss-protection": true, + "content-language": true, + "cf-ray": true, + "strict-transport-security": true, + "link": true, + "x-varnish": true, + } + + matching := make(map[string]Origin) + for key := range measurement { + key = strings.ToLower(key) + if _, ok := commonHeaders[key]; !ok { + matching[key] |= OriginProbe + } + } + + for key := range control { + key = strings.ToLower(key) + if _, ok := commonHeaders[key]; !ok { + matching[key] |= OriginTH + } + } + + // compute the intersection of uncommon headers + found := false + for _, value := range matching { + if (value & (OriginProbe | OriginTH)) == (OriginProbe | OriginTH) { + found = true + break + } + } + + // store the result + ax.HTTPDiffUncommonHeadersMatch = optional.Some(found) + }) +} + +// ComputeHTTPDiffTitleMatch computes HTTPDiffTitleMatch. +func (ax *Analysis) ComputeHTTPDiffTitleMatch(db *DB) { + ax.httpDiffHelper(db, func(probeFR *WebEndpointObservation, thFR *WebObservationTH) { + // skip if we don't know the TH title + if thFR.HTTPResponseTitle.IsNone() { + return + } + control := thFR.HTTPResponseTitle.Unwrap() + + // skip if we don't know the probe title + if probeFR.HTTPResponseTitle.IsNone() { + return + } + measurement := probeFR.HTTPResponseTitle.Unwrap() + + if control == "" || measurement == "" { + return + } + + words := make(map[string]Origin) + // We don't consider to match words that are shorter than 5 + // characters (5 is the average word length for english) + // + // The original implementation considered the word order but + // considering different languages it seems we could have less + // false positives by ignoring the word order. + const minWordLength = 5 + for _, word := range strings.Split(measurement, " ") { + if len(word) >= minWordLength { + words[strings.ToLower(word)] |= OriginProbe + } + } + for _, word := range strings.Split(control, " ") { + if len(word) >= minWordLength { + words[strings.ToLower(word)] |= OriginTH + } + } + + // check whether there's a long word that does not match + good := true + for _, score := range words { + if (score & (OriginProbe | OriginTH)) != (OriginProbe | OriginTH) { + good = false + break + } + } + + // store the results + ax.HTTPDiffTitleMatch = optional.Some(good) + }) +} diff --git a/internal/pipeline/analysistcpip.go b/internal/pipeline/analysistcpip.go index 3ec8c51bcc..6a9a497cf1 100644 --- a/internal/pipeline/analysistcpip.go +++ b/internal/pipeline/analysistcpip.go @@ -1,10 +1,12 @@ package pipeline -import "github.com/ooni/probe-cli/v3/internal/netxlite" +import ( + "github.com/ooni/probe-cli/v3/internal/netxlite" +) // ComputeTCPUnexpectedFailure computes TCPUnexpectedFailure. func (ax *Analysis) ComputeTCPUnexpectedFailure(db *DB) { - for _, entry := range db.webByTxID { + for _, entry := range db.WebByTxID { // skip all the entries where we did not set a TCP failure if entry.TCPConnectFailure.IsNone() { continue @@ -12,12 +14,12 @@ func (ax *Analysis) ComputeTCPUnexpectedFailure(db *DB) { // skip all the entries where connect succeded // TODO(bassosimone): say that the probe succeeds and the TH fails, then what? - if entry.TCPConnectFailure.Unwrap() == nil { + if entry.TCPConnectFailure.Unwrap() == "" { continue } // get the corresponding TH measurement - th, good := db.thEpntByEpnt[entry.Endpoint] + th, good := db.THEpntByEpnt[entry.Endpoint] // skip if there's no TH data if !good { @@ -30,15 +32,15 @@ func (ax *Analysis) ComputeTCPUnexpectedFailure(db *DB) { } // skip if also the TH failed to connect - if th.TCPConnectFailure.Unwrap() != nil { + if th.TCPConnectFailure.Unwrap() != "" { continue } // ignore failures that are most likely caused by a broken IPv6 network stack if ipv6, err := netxlite.IsIPv6(entry.IPAddress); err == nil && ipv6 { - failure := th.TCPConnectFailure.Unwrap() - likelyFalsePositive := (*failure == netxlite.FailureNetworkUnreachable || - *failure == netxlite.FailureHostUnreachable) + failure := entry.TCPConnectFailure.Unwrap() + likelyFalsePositive := (failure == netxlite.FailureNetworkUnreachable || + failure == netxlite.FailureHostUnreachable) if likelyFalsePositive { continue } diff --git a/internal/pipeline/analysistls.go b/internal/pipeline/analysistls.go index 2c5cb2d872..98ceb5cf6c 100644 --- a/internal/pipeline/analysistls.go +++ b/internal/pipeline/analysistls.go @@ -2,7 +2,7 @@ package pipeline // ComputeTLSUnexpectedFailure computes TLSUnexpectedFailure. func (ax *Analysis) ComputeTLSUnexpectedFailure(db *DB) { - for _, entry := range db.webByTxID { + for _, entry := range db.WebByTxID { // skip all the entries where we did not set a TLS failure if entry.TLSHandshakeFailure.IsNone() { continue @@ -10,12 +10,12 @@ func (ax *Analysis) ComputeTLSUnexpectedFailure(db *DB) { // skip all the entries where connect succeded // TODO(bassosimone): say that the probe succeeds and the TH fails, then what? - if entry.TLSHandshakeFailure.Unwrap() == nil { + if entry.TLSHandshakeFailure.Unwrap() == "" { continue } // get the corresponding TH measurement - th, good := db.thEpntByEpnt[entry.Endpoint] + th, good := db.THEpntByEpnt[entry.Endpoint] // skip if there's no TH data if !good { @@ -28,7 +28,7 @@ func (ax *Analysis) ComputeTLSUnexpectedFailure(db *DB) { } // skip if also the TH failed to handshake - if th.TLSHandshakeFailure.Unwrap() != nil { + if th.TLSHandshakeFailure.Unwrap() != "" { continue } diff --git a/internal/pipeline/db.go b/internal/pipeline/db.go index c5cd6ec998..efb730c60c 100644 --- a/internal/pipeline/db.go +++ b/internal/pipeline/db.go @@ -12,27 +12,27 @@ import ( // This struct is not goroutine safe. The zero value is invalid. Use the // [NewDB] to construct a valid instance. type DB struct { - dnsByTxID map[int64]*DNSObservation - thDNSAddrs map[string]bool - thDNSFailure *string - thEpntByEpnt map[string]*EndpointObservationTH - thWeb optional.Value[*WebObservationTH] - urlHostname string - webByTxID map[int64]*WebEndpointObservation - webFinalRequest optional.Value[*WebEndpointObservation] + DNSByTxID map[int64]*DNSObservation + THDNSAddrs map[string]bool + THDNSFailure Failure + THEpntByEpnt map[string]*EndpointObservationTH + THWeb optional.Value[*WebObservationTH] + URLHostname string + WebByTxID map[int64]*WebEndpointObservation + WebFinalRequest optional.Value[*WebEndpointObservation] } // NewObservationsDB constructs a new [*DB] instance. func NewDB() *DB { return &DB{ - dnsByTxID: map[int64]*DNSObservation{}, - thDNSAddrs: map[string]bool{}, - thDNSFailure: nil, - thEpntByEpnt: map[string]*EndpointObservationTH{}, - thWeb: optional.None[*WebObservationTH](), - urlHostname: "", - webByTxID: map[int64]*WebEndpointObservation{}, - webFinalRequest: optional.None[*WebEndpointObservation](), + DNSByTxID: map[int64]*DNSObservation{}, + THDNSAddrs: map[string]bool{}, + THDNSFailure: Failure(""), + THEpntByEpnt: map[string]*EndpointObservationTH{}, + THWeb: optional.None[*WebObservationTH](), + URLHostname: "", + WebByTxID: map[int64]*WebEndpointObservation{}, + WebFinalRequest: optional.None[*WebEndpointObservation](), } } @@ -43,7 +43,7 @@ func (db *DB) Ingest(m *CanonicalMeasurement) error { if err != nil { return err } - db.urlHostname = URL.Hostname() + db.URLHostname = URL.Hostname() // Obtain the test keys or stop early tk := m.TestKeys.UnwrapOr(nil) @@ -112,7 +112,7 @@ func (db *DB) buildXrefsDNS() { addrToGetaddrinfo := make(map[string][]*DNSObservation) addrToUDP := make(map[string][]*DNSObservation) addrToHTTPS := make(map[string][]*DNSObservation) - for _, dobs := range db.dnsByTxID { + for _, dobs := range db.DNSByTxID { switch dnsNormalizeEngineName(dobs.Engine) { case "getaddrinfo": for _, addr := range dobs.IPAddrs { @@ -132,7 +132,7 @@ func (db *DB) buildXrefsDNS() { } // create cross references inside the endpoints - for _, wobs := range db.webByTxID { + for _, wobs := range db.WebByTxID { wobs.DNSLookupGetaddrinfoXref = addrToGetaddrinfo[wobs.IPAddress] wobs.DNSLookupUDPXref = addrToUDP[wobs.IPAddress] wobs.DNSLookupHTTPSXref = addrToHTTPS[wobs.IPAddress] @@ -140,13 +140,13 @@ func (db *DB) buildXrefsDNS() { } func (db *DB) buildXrefTH() { - for _, wobs := range db.webByTxID { + for _, wobs := range db.WebByTxID { // create cross references with TH DNS lookups - _, ok := db.thDNSAddrs[wobs.IPAddress] + _, ok := db.THDNSAddrs[wobs.IPAddress] wobs.DNSLookupTHXref = ok // create cross references with TH endpoints - if xref, ok := db.thEpntByEpnt[wobs.Endpoint]; ok { + if xref, ok := db.THEpntByEpnt[wobs.Endpoint]; ok { wobs.THEndpointXref = optional.Some(xref) } } @@ -157,7 +157,7 @@ var errMultipleFinalRequests = errors.New("analysis: multiple final requests") func (db *DB) maybeFindFinalRequest() error { // find all the possible final request candidates var finals []*WebEndpointObservation - for _, wobs := range db.webByTxID { + for _, wobs := range db.WebByTxID { switch code := wobs.HTTPResponseStatusCode.UnwrapOr(0); code { case 0, 301, 302, 307, 308: // this is a redirect or a nonexisting response in the case of zero @@ -176,7 +176,7 @@ func (db *DB) maybeFindFinalRequest() error { return errMultipleFinalRequests case len(finals) == 1: - db.webFinalRequest = optional.Some(finals[0]) + db.WebFinalRequest = optional.Some(finals[0]) return nil default: diff --git a/internal/pipeline/dns.go b/internal/pipeline/dns.go index dc8ea7b38f..c913da7fd3 100644 --- a/internal/pipeline/dns.go +++ b/internal/pipeline/dns.go @@ -22,7 +22,7 @@ type DNSObservation struct { QueryHostname string // Failure is the failure that occurred. - Failure *string + Failure Failure // Engine is the engined used by the probe to lookup. Engine string @@ -48,7 +48,7 @@ func (db *DB) addDNSLookups(evs ...*model.ArchivalDNSLookupResult) error { } dobs.QueryType = ev.QueryType dobs.QueryHostname = ev.Hostname - dobs.Failure = ev.Failure + dobs.Failure = NewFailure(ev.Failure) dobs.Engine = ev.Engine dobs.ResolverAddress = ev.ResolverAddress dobs.T0 = ev.T0 @@ -71,13 +71,13 @@ func (db *DB) addDNSLookups(evs ...*model.ArchivalDNSLookupResult) error { } func (db *DB) newDNSObservation(txid int64) (*DNSObservation, error) { - if _, good := db.webByTxID[txid]; good { + if _, good := db.WebByTxID[txid]; good { return nil, errTransactionAlreadyExists } dobs := &DNSObservation{ TransactionID: txid, } - db.dnsByTxID[txid] = dobs + db.DNSByTxID[txid] = dobs return dobs, nil } diff --git a/internal/pipeline/failure.go b/internal/pipeline/failure.go new file mode 100644 index 0000000000..212e553b55 --- /dev/null +++ b/internal/pipeline/failure.go @@ -0,0 +1,12 @@ +package pipeline + +// Failure is a failure string. The empty string represents the absence of failure. +type Failure string + +// NewFailure constructs a new [Failure] instance. +func NewFailure(in *string) (out Failure) { + if in != nil { + out = Failure(*in) + } + return +} diff --git a/internal/pipeline/qa_test.go b/internal/pipeline/qa_test.go index 4669389798..875ebbbae5 100644 --- a/internal/pipeline/qa_test.go +++ b/internal/pipeline/qa_test.go @@ -5,17 +5,9 @@ import ( "path/filepath" "github.com/ooni/probe-cli/v3/internal/must" - "github.com/ooni/probe-cli/v3/internal/optional" "github.com/ooni/probe-cli/v3/internal/runtimex" ) -type flatDB struct { - XdnsByTxID map[int64]*DNSObservation - XthEpntByEpnt map[string]*EndpointObservationTH - XthWeb optional.Value[*WebObservationTH] - XwebByTxID map[int64]*WebEndpointObservation -} - func Example() { rawJSON := must.ReadFile(filepath.Join("testdata", "youtube.json")) var meas CanonicalMeasurement @@ -24,15 +16,15 @@ func Example() { db := NewDB() runtimex.Try0(db.Ingest(&meas)) - fdb := &flatDB{ - XdnsByTxID: db.dnsByTxID, - XthEpntByEpnt: db.thEpntByEpnt, - XthWeb: db.thWeb, - XwebByTxID: db.webByTxID, - } - rawDB := must.MarshalJSON(fdb) + rawDB := must.MarshalJSON(db) must.WriteFile(filepath.Join("testdata", "youtube_db.json"), rawDB, 0600) + ax := &Analysis{} + ax.ComputeAllValues(db) + + rawAx := must.MarshalJSON(ax) + must.WriteFile(filepath.Join("testdata", "youtube_ax.json"), rawAx, 0600) + fmt.Printf("true\n") // Output: // true diff --git a/internal/pipeline/testdata/youtube_ax.json b/internal/pipeline/testdata/youtube_ax.json new file mode 100644 index 0000000000..71cb3dfb7e --- /dev/null +++ b/internal/pipeline/testdata/youtube_ax.json @@ -0,0 +1 @@ +{"DNSUnexpectedAddr":[1,3,2],"DNSUnexpectedAddrASN":null,"DNSUnexpectedBogon":null,"DNSUnexpectedFailure":null,"DNSWithTLSHandshakeFailureAddr":null,"DNSExperimentFailure":null,"HTTPDiffBodyProportionFactor":null,"HTTPDiffTitleMatch":true,"HTTPDiffStatusCodeMatch":true,"HTTPDiffUncommonHeadersMatch":true,"HTTPExperimentFailure":null,"HTTPUnexpectedFailure":null,"TCPUnexpectedFailure":null,"TLSUnexpectedFailure":null} \ No newline at end of file diff --git a/internal/pipeline/testdata/youtube_db.json b/internal/pipeline/testdata/youtube_db.json index 8c0a18da9c..2d4dc3dcc4 100644 --- a/internal/pipeline/testdata/youtube_db.json +++ b/internal/pipeline/testdata/youtube_db.json @@ -1 +1 @@ -{"XdnsByTxID":{"1":{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782},"2":{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264},"3":{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}},"XthEpntByEpnt":{"142.250.178.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.179.238:443/tcp":{"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.180.142:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.180.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.180.174:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.187.206:443/tcp":{"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.187.238:443/tcp":{"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.200.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.250.200.46:443/tcp":{"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.251.209.14:443/tcp":{"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"142.251.209.46:443/tcp":{"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"172.217.16.238:443/tcp":{"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"172.217.169.14:443/tcp":{"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.201.110:443/tcp":{"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.204.142:443/tcp":{"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.204.78:443/tcp":{"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.205.46:443/tcp":{"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.209.46:443/tcp":{"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"216.58.212.238:443/tcp":{"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:402::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:403::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:410::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:414::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4002:416::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:815::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:81e::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:81f::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"[2a00:1450:4009:820::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"}},"XthWeb":{"HTTPFailure":null,"HTTPResponseStatusCode":200,"HTTPResponseBodyLength":928046,"HTTPResponseHeadersKeys":{"Accept-Ch":2,"Accept-Ranges":2,"Alt-Svc":2,"Cache-Control":2,"Content-Type":2,"Cross-Origin-Opener-Policy":2,"Date":2,"Expires":2,"Origin-Trial":2,"P3p":2,"Permissions-Policy":2,"Pragma":2,"Report-To":2,"Server":2,"Set-Cookie":2,"Strict-Transport-Security":2,"Vary":2,"X-Content-Type-Options":2,"X-Frame-Options":2,"X-Xss-Protection":2},"HTTPResponseTitle":"YouTube"},"XwebByTxID":{"10":{"TransactionID":10,"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396471,"TCPConnectT":0.417629,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.417656,"TLSHandshakeT":0.462505,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"11":{"TransactionID":11,"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396461,"TCPConnectT":0.416484,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.416512,"TLSHandshakeT":0.462307,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"12":{"TransactionID":12,"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396723,"TCPConnectT":0.418956,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419044,"TLSHandshakeT":0.467401,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"13":{"TransactionID":13,"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395951,"TCPConnectT":0.415468,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.415515,"TLSHandshakeT":0.463236,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"14":{"TransactionID":14,"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395747,"TCPConnectT":0.41948,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419504,"TLSHandshakeT":0.464932,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"15":{"TransactionID":15,"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396707,"TCPConnectT":0.418861,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.418894,"TLSHandshakeT":0.465008,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"16":{"TransactionID":16,"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89481,"TCPConnectT":1.939539,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939556,"TLSHandshakeT":1.99845,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"17":{"TransactionID":17,"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895162,"TCPConnectT":1.940325,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.940346,"TLSHandshakeT":2.00063,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"18":{"TransactionID":18,"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895168,"TCPConnectT":1.939568,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939584,"TLSHandshakeT":1.995897,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"19":{"TransactionID":19,"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895386,"TCPConnectT":1.940296,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9403190000000001,"TLSHandshakeT":1.9993750000000001,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"20":{"TransactionID":20,"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8946960000000002,"TCPConnectT":1.93338,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9334069999999999,"TLSHandshakeT":1.984044,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"21":{"TransactionID":21,"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89452,"TCPConnectT":1.9342679999999999,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.934302,"TLSHandshakeT":1.990915,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"22":{"TransactionID":22,"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89411,"TCPConnectT":1.931396,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9314230000000001,"TLSHandshakeT":1.990783,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"23":{"TransactionID":23,"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8941940000000002,"TCPConnectT":1.9308939999999999,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.930963,"TLSHandshakeT":1.990323,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"24":{"TransactionID":24,"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895193,"TCPConnectT":1.939627,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9396879999999999,"TLSHandshakeT":1.994988,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"25":{"TransactionID":25,"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894023,"TCPConnectT":1.930973,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9310070000000001,"TLSHandshakeT":1.993483,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"26":{"TransactionID":26,"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894889,"TCPConnectT":1.936306,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.936323,"TLSHandshakeT":1.993995,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"27":{"TransactionID":27,"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89456,"TCPConnectT":1.938354,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9384000000000001,"TLSHandshakeT":1.99783,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"28":{"TransactionID":28,"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894834,"TCPConnectT":1.936283,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.936303,"TLSHandshakeT":1.992747,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"29":{"TransactionID":29,"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895467,"TCPConnectT":1.940271,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.94029,"TLSHandshakeT":1.999167,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"30":{"TransactionID":30,"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8953090000000001,"TCPConnectT":1.939593,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939614,"TLSHandshakeT":1.995451,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"31":{"TransactionID":31,"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8944800000000002,"TCPConnectT":1.935353,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.935376,"TLSHandshakeT":1.994195,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"4":{"TransactionID":4,"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.39635,"TCPConnectT":0.41553,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.415573,"TLSHandshakeT":0.461278,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"5":{"TransactionID":5,"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395701,"TCPConnectT":0.421933,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.421961,"TLSHandshakeT":0.465331,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"6":{"TransactionID":6,"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395832,"TCPConnectT":0.413203,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.41324,"TLSHandshakeT":0.460508,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"7":{"TransactionID":7,"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396053,"TCPConnectT":0.411923,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.411989,"TLSHandshakeT":0.452334,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":null,"HTTPResponseStatusCode":200,"HTTPResponseBodyLength":524298,"HTTPResponseBodyIsTruncated":true,"HTTPResponseHeadersKeys":{"Accept-Ch":1,"Accept-Ranges":1,"Alt-Svc":1,"Cache-Control":1,"Content-Type":1,"Cross-Origin-Opener-Policy":1,"Date":1,"Expires":1,"Origin-Trial":1,"P3p":1,"Permissions-Policy":1,"Pragma":1,"Report-To":1,"Server":1,"Set-Cookie":1,"Strict-Transport-Security":1,"Vary":1,"X-Content-Type-Options":1,"X-Frame-Options":1,"X-Xss-Protection":1},"HTTPResponseTitle":"YouTube"},"8":{"TransactionID":8,"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395722,"TCPConnectT":0.419464,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","Failure":null,"Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419487,"TLSHandshakeT":0.466341,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"9":{"TransactionID":9,"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396408,"TCPConnectT":0.416441,"TCPConnectFailure":null,"DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","Failure":null,"Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","Failure":null,"Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.416468,"TLSHandshakeT":0.46288,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":null,"QUICHandshakeFailure":null,"TLSHandshakeFailure":null,"TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null}}} \ No newline at end of file +{"DNSByTxID":{"1":{"TransactionID":1,"QueryType":"AAAA","QueryHostname":"www.youtube.com","Failure":"","Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782},"2":{"TransactionID":2,"QueryType":"A","QueryHostname":"www.youtube.com","Failure":"","Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264},"3":{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}},"THDNSAddrs":{"142.250.178.14":true,"142.250.179.238":true,"142.250.180.14":true,"142.250.187.206":true,"142.250.187.238":true,"142.250.200.14":true,"142.250.200.46":true,"172.217.16.238":true,"172.217.169.14":true,"216.58.201.110":true,"216.58.204.78":true,"216.58.212.238":true,"2a00:1450:4009:815::200e":true,"2a00:1450:4009:81e::200e":true,"2a00:1450:4009:81f::200e":true,"2a00:1450:4009:820::200e":true},"THDNSFailure":"","THEpntByEpnt":{"142.250.178.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.179.238:443/tcp":{"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.180.142:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.180.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.180.174:443/tcp":{"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.187.206:443/tcp":{"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.187.238:443/tcp":{"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.200.14:443/tcp":{"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.250.200.46:443/tcp":{"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.251.209.14:443/tcp":{"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"142.251.209.46:443/tcp":{"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"172.217.16.238:443/tcp":{"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"172.217.169.14:443/tcp":{"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"216.58.201.110:443/tcp":{"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"216.58.204.142:443/tcp":{"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"216.58.204.78:443/tcp":{"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"216.58.205.46:443/tcp":{"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"216.58.209.46:443/tcp":{"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"216.58.212.238:443/tcp":{"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4002:402::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4002:403::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4002:410::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4002:414::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4002:416::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4009:815::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4009:81e::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4009:81f::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"[2a00:1450:4009:820::200e]:443/tcp":{"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"}},"THWeb":{"HTTPFailure":"","HTTPResponseStatusCode":200,"HTTPResponseBodyLength":928046,"HTTPResponseHeadersKeys":{"Accept-Ch":2,"Accept-Ranges":2,"Alt-Svc":2,"Cache-Control":2,"Content-Type":2,"Cross-Origin-Opener-Policy":2,"Date":2,"Expires":2,"Origin-Trial":2,"P3p":2,"Permissions-Policy":2,"Pragma":2,"Report-To":2,"Server":2,"Set-Cookie":2,"Strict-Transport-Security":2,"Vary":2,"X-Content-Type-Options":2,"X-Frame-Options":2,"X-Xss-Protection":2},"HTTPResponseTitle":"YouTube"},"URLHostname":"www.youtube.com","WebByTxID":{"10":{"TransactionID":10,"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396471,"TCPConnectT":0.417629,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","QueryHostname":"www.youtube.com","Failure":"","Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.417656,"TLSHandshakeT":0.462505,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:410::200e","Port":"443","Endpoint":"[2a00:1450:4002:410::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"11":{"TransactionID":11,"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396461,"TCPConnectT":0.416484,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","QueryHostname":"www.youtube.com","Failure":"","Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.416512,"TLSHandshakeT":0.462307,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:416::200e","Port":"443","Endpoint":"[2a00:1450:4002:416::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"12":{"TransactionID":12,"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396723,"TCPConnectT":0.418956,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419044,"TLSHandshakeT":0.467401,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:414::200e","Port":"443","Endpoint":"[2a00:1450:4002:414::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"13":{"TransactionID":13,"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395951,"TCPConnectT":0.415468,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","QueryHostname":"www.youtube.com","Failure":"","Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.415515,"TLSHandshakeT":0.463236,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:402::200e","Port":"443","Endpoint":"[2a00:1450:4002:402::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"14":{"TransactionID":14,"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395747,"TCPConnectT":0.41948,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","QueryHostname":"www.youtube.com","Failure":"","Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419504,"TLSHandshakeT":0.464932,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.251.209.14","Port":"443","Endpoint":"142.251.209.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"15":{"TransactionID":15,"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396707,"TCPConnectT":0.418861,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","QueryHostname":"www.youtube.com","Failure":"","Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.418894,"TLSHandshakeT":0.465008,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.142","Port":"443","Endpoint":"142.250.180.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"16":{"TransactionID":16,"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89481,"TCPConnectT":1.939539,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939556,"TLSHandshakeT":1.99845,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"172.217.169.14","Port":"443","Endpoint":"172.217.169.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"17":{"TransactionID":17,"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895162,"TCPConnectT":1.940325,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.940346,"TLSHandshakeT":2.00063,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:820::200e","Port":"443","Endpoint":"[2a00:1450:4009:820::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"18":{"TransactionID":18,"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895168,"TCPConnectT":1.939568,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939584,"TLSHandshakeT":1.995897,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.187.206","Port":"443","Endpoint":"142.250.187.206:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"19":{"TransactionID":19,"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895386,"TCPConnectT":1.940296,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9403190000000001,"TLSHandshakeT":1.9993750000000001,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"172.217.16.238","Port":"443","Endpoint":"172.217.16.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"20":{"TransactionID":20,"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8946960000000002,"TCPConnectT":1.93338,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9334069999999999,"TLSHandshakeT":1.984044,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.200.14","Port":"443","Endpoint":"142.250.200.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"21":{"TransactionID":21,"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89452,"TCPConnectT":1.9342679999999999,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.934302,"TLSHandshakeT":1.990915,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.204.78","Port":"443","Endpoint":"216.58.204.78:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"22":{"TransactionID":22,"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89411,"TCPConnectT":1.931396,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9314230000000001,"TLSHandshakeT":1.990783,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.179.238","Port":"443","Endpoint":"142.250.179.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"23":{"TransactionID":23,"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8941940000000002,"TCPConnectT":1.9308939999999999,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.930963,"TLSHandshakeT":1.990323,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.200.46","Port":"443","Endpoint":"142.250.200.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"24":{"TransactionID":24,"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895193,"TCPConnectT":1.939627,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9396879999999999,"TLSHandshakeT":1.994988,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.201.110","Port":"443","Endpoint":"216.58.201.110:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"25":{"TransactionID":25,"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894023,"TCPConnectT":1.930973,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9310070000000001,"TLSHandshakeT":1.993483,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81e::200e","Port":"443","Endpoint":"[2a00:1450:4009:81e::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"26":{"TransactionID":26,"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894889,"TCPConnectT":1.936306,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.936323,"TLSHandshakeT":1.993995,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.187.238","Port":"443","Endpoint":"142.250.187.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"27":{"TransactionID":27,"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.89456,"TCPConnectT":1.938354,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.9384000000000001,"TLSHandshakeT":1.99783,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:81f::200e","Port":"443","Endpoint":"[2a00:1450:4009:81f::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"28":{"TransactionID":28,"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.894834,"TCPConnectT":1.936283,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.936303,"TLSHandshakeT":1.992747,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.212.238","Port":"443","Endpoint":"216.58.212.238:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"29":{"TransactionID":29,"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.895467,"TCPConnectT":1.940271,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.94029,"TLSHandshakeT":1.999167,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.14","Port":"443","Endpoint":"142.250.180.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"30":{"TransactionID":30,"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8953090000000001,"TCPConnectT":1.939593,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.939614,"TLSHandshakeT":1.995451,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.178.14","Port":"443","Endpoint":"142.250.178.14:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"31":{"TransactionID":31,"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":1.8944800000000002,"TCPConnectT":1.935353,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":null,"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":true,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":1.935376,"TLSHandshakeT":1.994195,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4009:815::200e","Port":"443","Endpoint":"[2a00:1450:4009:815::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"4":{"TransactionID":4,"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.39635,"TCPConnectT":0.41553,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","QueryHostname":"www.youtube.com","Failure":"","Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.415573,"TLSHandshakeT":0.461278,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.250.180.174","Port":"443","Endpoint":"142.250.180.174:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"5":{"TransactionID":5,"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395701,"TCPConnectT":0.421933,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","QueryHostname":"www.youtube.com","Failure":"","Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.421961,"TLSHandshakeT":0.465331,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.205.46","Port":"443","Endpoint":"216.58.205.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"6":{"TransactionID":6,"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395832,"TCPConnectT":0.413203,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","QueryHostname":"www.youtube.com","Failure":"","Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.41324,"TLSHandshakeT":0.460508,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"142.251.209.46","Port":"443","Endpoint":"142.251.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"7":{"TransactionID":7,"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396053,"TCPConnectT":0.411923,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.411989,"TLSHandshakeT":0.452334,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"","HTTPResponseStatusCode":200,"HTTPResponseBodyLength":524298,"HTTPResponseBodyIsTruncated":true,"HTTPResponseHeadersKeys":{"Accept-Ch":1,"Accept-Ranges":1,"Alt-Svc":1,"Cache-Control":1,"Content-Type":1,"Cross-Origin-Opener-Policy":1,"Date":1,"Expires":1,"Origin-Trial":1,"P3p":1,"Permissions-Policy":1,"Pragma":1,"Report-To":1,"Server":1,"Set-Cookie":1,"Strict-Transport-Security":1,"Vary":1,"X-Content-Type-Options":1,"X-Frame-Options":1,"X-Xss-Protection":1},"HTTPResponseTitle":"YouTube"},"8":{"TransactionID":8,"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.395722,"TCPConnectT":0.419464,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":[{"TransactionID":2,"QueryType":"A","QueryHostname":"www.youtube.com","Failure":"","Engine":"doh","ResolverAddress":"https://dns.quad9.net/dns-query","IPAddrs":["142.250.180.142","142.250.180.174","142.251.209.14","216.58.205.46","142.251.209.46","216.58.204.142"],"T0":0.00128,"T":0.394264}],"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.419487,"TLSHandshakeT":0.466341,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.204.142","Port":"443","Endpoint":"216.58.204.142:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null},"9":{"TransactionID":9,"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396408,"TCPConnectT":0.416441,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":[{"TransactionID":1,"QueryType":"AAAA","QueryHostname":"www.youtube.com","Failure":"","Engine":"udp","ResolverAddress":"8.8.4.4:53","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e"],"T0":0.000471,"T":0.019782}],"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.416468,"TLSHandshakeT":0.46288,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"2a00:1450:4002:403::200e","Port":"443","Endpoint":"[2a00:1450:4002:403::200e]:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"unknown_failure: http_request_canceled","HTTPResponseStatusCode":0,"HTTPResponseBodyLength":0,"HTTPResponseBodyIsTruncated":false,"HTTPResponseHeadersKeys":{},"HTTPResponseTitle":null}},"WebFinalRequest":{"TransactionID":7,"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectT0":0.396053,"TCPConnectT":0.411923,"TCPConnectFailure":"","DNSDomainName":null,"DNSLookupGetaddrinfoXref":[{"TransactionID":3,"QueryType":"ANY","QueryHostname":"www.youtube.com","Failure":"","Engine":"getaddrinfo","ResolverAddress":"","IPAddrs":["2a00:1450:4002:402::200e","2a00:1450:4002:403::200e","2a00:1450:4002:410::200e","2a00:1450:4002:416::200e","142.250.180.174","216.58.205.46","142.251.209.14","142.251.209.46","216.58.209.46","216.58.204.142","142.250.180.142"],"T0":0.000966,"T":0.020698}],"DNSLookupUDPXref":null,"DNSLookupHTTPSXref":null,"DNSLookupTHXref":false,"QUICHandshakeT0":null,"QUICHandshakeT":null,"QUICHandshakeFailure":null,"TLSHandshakeT0":0.411989,"TLSHandshakeT":0.452334,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com","TLSVersion":"TLSv1.3","TLSCipherSuite":"TLS_AES_128_GCM_SHA256","TLSNegotiatedProtocol":"h2","THEndpointXref":{"Proto":"tcp","IPAddress":"216.58.209.46","Port":"443","Endpoint":"216.58.209.46:443/tcp","IPAddressASN":15169,"IPAddressIsBogon":false,"TCPConnectFailure":"","QUICHandshakeFailure":null,"TLSHandshakeFailure":"","TLSServerName":"www.youtube.com"},"HTTPRequestURL":"https://www.youtube.com/","HTTPFailure":"","HTTPResponseStatusCode":200,"HTTPResponseBodyLength":524298,"HTTPResponseBodyIsTruncated":true,"HTTPResponseHeadersKeys":{"Accept-Ch":1,"Accept-Ranges":1,"Alt-Svc":1,"Cache-Control":1,"Content-Type":1,"Cross-Origin-Opener-Policy":1,"Date":1,"Expires":1,"Origin-Trial":1,"P3p":1,"Permissions-Policy":1,"Pragma":1,"Report-To":1,"Server":1,"Set-Cookie":1,"Strict-Transport-Security":1,"Vary":1,"X-Content-Type-Options":1,"X-Frame-Options":1,"X-Xss-Protection":1},"HTTPResponseTitle":"YouTube"}} \ No newline at end of file diff --git a/internal/pipeline/th.go b/internal/pipeline/th.go index 57f9965d06..8fde14d257 100644 --- a/internal/pipeline/th.go +++ b/internal/pipeline/th.go @@ -38,13 +38,13 @@ type EndpointObservationTH struct { IPAddressIsBogon bool // TCPConnectFailure is the error that occurred. - TCPConnectFailure optional.Value[*string] + TCPConnectFailure optional.Value[Failure] // QUICHandshakeFailure is the error that occurred. - QUICHandshakeFailure optional.Value[*string] + QUICHandshakeFailure optional.Value[Failure] // TLSHandshakeFailure is the error that occurred. - TLSHandshakeFailure optional.Value[*string] + TLSHandshakeFailure optional.Value[Failure] // TLSServerName is the SNI value. TLSServerName optional.Value[string] @@ -59,7 +59,7 @@ type EndpointObservationTH struct { // and adapts the WebControlObservation type to probe-engine. type WebObservationTH struct { // HTTPFailure is the error that occurred. - HTTPFailure optional.Value[*string] + HTTPFailure optional.Value[Failure] // HTTPResponseStatusCode is the response status code. HTTPResponseStatusCode optional.Value[int64] @@ -75,9 +75,9 @@ type WebObservationTH struct { } func (db *DB) thAddDNS(resp *model.THResponse) error { - db.thDNSFailure = resp.DNS.Failure + db.THDNSFailure = NewFailure(resp.DNS.Failure) for _, addr := range resp.DNS.Addrs { - db.thDNSAddrs[addr] = true + db.THDNSAddrs[addr] = true } return nil } @@ -99,14 +99,14 @@ func (db *DB) thAddTCPConnect(resp *model.THResponse) error { // Implementation note: because we're reading a map, we can't have duplicates // so we can blindly insert into the destination map here - db.thEpntByEpnt[endpoint] = &EndpointObservationTH{ + db.THEpntByEpnt[endpoint] = &EndpointObservationTH{ Proto: "tcp", IPAddress: addr, Port: port, Endpoint: endpoint, IPAddressASN: asn, IPAddressIsBogon: netxlite.IsBogon(addr), - TCPConnectFailure: optional.Some(status.Failure), + TCPConnectFailure: optional.Some(NewFailure(status.Failure)), } } return nil @@ -116,13 +116,13 @@ func (db *DB) thAddTLSHandshake(resp *model.THResponse) error { for addrport, status := range resp.TLSHandshake { endpoint := fmt.Sprintf("%s/tcp", addrport) - entry, found := db.thEpntByEpnt[endpoint] + entry, found := db.THEpntByEpnt[endpoint] if !found { return errInconsistentTHResponse } entry.TLSServerName = optional.Some(status.ServerName) - entry.TLSHandshakeFailure = optional.Some(status.Failure) + entry.TLSHandshakeFailure = optional.Some(NewFailure(status.Failure)) } return nil } @@ -130,12 +130,12 @@ func (db *DB) thAddTLSHandshake(resp *model.THResponse) error { var errAlreadyExistingTHWeb = errors.New("analysis: thWeb already exists") func (db *DB) thAddHTTPResponse(resp *model.THResponse) error { - if !db.thWeb.IsNone() { + if !db.THWeb.IsNone() { return errAlreadyExistingTHWeb } - db.thWeb = optional.Some(&WebObservationTH{ - HTTPFailure: optional.Some(resp.HTTPRequest.Failure), + db.THWeb = optional.Some(&WebObservationTH{ + HTTPFailure: optional.Some(NewFailure(resp.HTTPRequest.Failure)), HTTPResponseStatusCode: optional.Some(resp.HTTPRequest.StatusCode), HTTPResponseBodyLength: optional.Some(resp.HTTPRequest.BodyLength), HTTPResponseHeadersKeys: func() (out map[string]Origin) { diff --git a/internal/pipeline/web.go b/internal/pipeline/web.go index d6b4f44f7b..584b47a6ad 100644 --- a/internal/pipeline/web.go +++ b/internal/pipeline/web.go @@ -48,10 +48,7 @@ type WebEndpointObservation struct { TCPConnectT optional.Value[float64] // TCPConnectFailure is the error that occurred. - TCPConnectFailure optional.Value[*string] - - // DNSDomainName is the domain name that produced this IP address. - DNSDomainName optional.Value[string] + TCPConnectFailure optional.Value[Failure] // DNSLookupGetaddrinfoXref contains references to the getaddrinfo // based DNS lookups that produced this IP address. @@ -75,7 +72,7 @@ type WebEndpointObservation struct { QUICHandshakeT optional.Value[float64] // QUICHandshakeFailure is the error that occurred. - QUICHandshakeFailure optional.Value[*string] + QUICHandshakeFailure optional.Value[Failure] // TLSHandshakeT0 is when we started handshaking. TLSHandshakeT0 optional.Value[float64] @@ -84,7 +81,7 @@ type WebEndpointObservation struct { TLSHandshakeT optional.Value[float64] // TLSHandshakeFailure is the error that occurred. - TLSHandshakeFailure optional.Value[*string] + TLSHandshakeFailure optional.Value[Failure] // TLSServerName is the SNI value. TLSServerName optional.Value[string] @@ -105,7 +102,7 @@ type WebEndpointObservation struct { HTTPRequestURL optional.Value[string] // HTTPFailure is the error that occurred. - HTTPFailure optional.Value[*string] + HTTPFailure optional.Value[Failure] // HTTPResponseStatusCode is the response status code. HTTPResponseStatusCode optional.Value[int64] @@ -145,7 +142,7 @@ func (db *DB) addNetworkEventsTCPConnect(evs ...*model.ArchivalNetworkEvent) err wobs.IPAddressIsBogon = netxlite.IsBogon(addr) wobs.TCPConnectT0 = optional.Some(ev.T0) wobs.TCPConnectT = optional.Some(ev.T) - wobs.TCPConnectFailure = optional.Some(ev.Failure) + wobs.TCPConnectFailure = optional.Some(NewFailure(ev.Failure)) default: // nothing @@ -162,7 +159,7 @@ func (db *DB) addTLSHandshakeEvents(evs ...*model.ArchivalTLSOrQUICHandshakeResu } wobs.TLSHandshakeT0 = optional.Some(ev.T0) wobs.TLSHandshakeT = optional.Some(ev.T) - wobs.TLSHandshakeFailure = optional.Some(ev.Failure) + wobs.TLSHandshakeFailure = optional.Some(NewFailure(ev.Failure)) wobs.TLSServerName = optional.Some(ev.ServerName) wobs.TLSVersion = optional.Some(ev.TLSVersion) wobs.TLSCipherSuite = optional.Some(ev.CipherSuite) @@ -191,7 +188,7 @@ func (db *DB) addQUICHandshakeEvents(evs ...*model.ArchivalTLSOrQUICHandshakeRes wobs.IPAddressIsBogon = netxlite.IsBogon(addr) wobs.QUICHandshakeT0 = optional.Some(ev.T0) wobs.QUICHandshakeT = optional.Some(ev.T) - wobs.QUICHandshakeFailure = optional.Some(ev.Failure) + wobs.QUICHandshakeFailure = optional.Some(NewFailure(ev.Failure)) wobs.TLSServerName = optional.Some(ev.ServerName) wobs.TLSVersion = optional.Some(ev.TLSVersion) wobs.TLSCipherSuite = optional.Some(ev.CipherSuite) @@ -207,7 +204,7 @@ func (db *DB) addHTTPRoundTrips(evs ...*model.ArchivalHTTPRequestResult) error { return err } wobs.HTTPRequestURL = optional.Some(ev.Request.URL) - wobs.HTTPFailure = optional.Some(ev.Failure) + wobs.HTTPFailure = optional.Some(NewFailure(ev.Failure)) wobs.HTTPResponseStatusCode = optional.Some(ev.Response.Code) wobs.HTTPResponseBodyLength = optional.Some(int64(len(ev.Response.Body))) wobs.HTTPResponseBodyIsTruncated = optional.Some(ev.Response.BodyIsTruncated) @@ -225,9 +222,9 @@ func (db *DB) addHTTPRoundTrips(evs ...*model.ArchivalHTTPRequestResult) error { var errNoSuchTransaction = errors.New("analysis: no such transaction") func (db *DB) getWebEndpointObservation(txid int64) (*WebEndpointObservation, error) { - wobs, good := db.webByTxID[txid] + wobs, good := db.WebByTxID[txid] if !good { - return nil, errNoSuchTransaction + return nil, fmt.Errorf("%w: %d", errNoSuchTransaction, txid) } return wobs, nil } @@ -235,12 +232,12 @@ func (db *DB) getWebEndpointObservation(txid int64) (*WebEndpointObservation, er var errTransactionAlreadyExists = errors.New("analysis: transaction already exists") func (db *DB) newWebEndpointObservation(txid int64) (*WebEndpointObservation, error) { - if _, good := db.webByTxID[txid]; good { + if _, good := db.WebByTxID[txid]; good { return nil, errTransactionAlreadyExists } wobs := &WebEndpointObservation{ TransactionID: txid, } - db.webByTxID[txid] = wobs + db.WebByTxID[txid] = wobs return wobs, nil } From ff42f3cb16e17839cae021b7ef1801c6b908ac18 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 24 Nov 2023 10:15:15 +0100 Subject: [PATCH 15/97] break the code in a different way Because I am dropping the requests again, we break again the tests with the redirects. I could possibly fix it by putting requests back again but I am not super happy about doing this because that would cause the DSL to do some strange work and I'd honestly rather not do this. --- .../webconnectivitylte/analysishttpcore.go | 12 ++ .../webconnectivitylte/cleartextflow.go | 93 ++++++------- .../webconnectivitylte/httpfailure.go | 28 ---- .../webconnectivitylte/httpredirect.go | 65 +++++++++ .../webconnectivitylte/secureflow.go | 127 +++++++++--------- 5 files changed, 188 insertions(+), 137 deletions(-) delete mode 100644 internal/experiment/webconnectivitylte/httpfailure.go create mode 100644 internal/experiment/webconnectivitylte/httpredirect.go diff --git a/internal/experiment/webconnectivitylte/analysishttpcore.go b/internal/experiment/webconnectivitylte/analysishttpcore.go index 794bfbd871..6113489e44 100644 --- a/internal/experiment/webconnectivitylte/analysishttpcore.go +++ b/internal/experiment/webconnectivitylte/analysishttpcore.go @@ -73,6 +73,18 @@ func (tk *TestKeys) analysisHTTPToplevel(logger model.Logger) { return } + // Make sure that the request is "final". This means that the request + // is not a redirect. If it's a redirect we can't compare to the + // final request by the TH. If you find this choice tricky, here's + // why we're doing this. We only save request entries when we actually + // attempt doing HTTP. So, if there is a redirect with a TCP or TLS + // error, there's no request to compare to. Yet, this means that a + // previous request MAY be considered as final and compared against + // the TH response, which would obviously be wrong. + if httpRedirectIsRedirect(finalRequest.Response.Code) { + return + } + // fallback to the HTTP diff algo. tk.analysisHTTPDiff(logger, finalRequest, &ctrl) } diff --git a/internal/experiment/webconnectivitylte/cleartextflow.go b/internal/experiment/webconnectivitylte/cleartextflow.go index 4af51d5c82..264e7553c6 100644 --- a/internal/experiment/webconnectivitylte/cleartextflow.go +++ b/internal/experiment/webconnectivitylte/cleartextflow.go @@ -8,7 +8,6 @@ package webconnectivitylte import ( "context" - "errors" "io" "net" "net/http" @@ -132,17 +131,19 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { tcpDialer := trace.NewDialerWithoutResolver(t.Logger) tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) - t.TestKeys.AppendNetworkEvents(trace.NetworkEvents()...) + t.TestKeys.AppendNetworkEvents(trace.NetworkEvents()...) // BUGFIX: EXPLAIN if err != nil { - // TODO(bassosimone): document why we're adding a request to the heap here - t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( - trace, - "tcp", - t.Address, - "", - httpReq, - err, - )) + /* + // TODO(bassosimone): document why we're adding a request to the heap here + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + err, + )) + */ ol.Stop(err) return err } @@ -155,15 +156,17 @@ func (t *CleartextFlow) Run(parentCtx context.Context, index int64) error { // Determine whether we're allowed to fetch the webpage if t.PrioSelector == nil || !t.PrioSelector.permissionToFetch(t.Address) { - // TODO(bassosimone): document why we're adding a request to the heap here - t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( - trace, - "tcp", - t.Address, - "", - httpReq, - errors.New("http_request_canceled"), // TODO(bassosimone): define this error - )) + /* + // TODO(bassosimone): document why we're adding a request to the heap here + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + errors.New("http_request_canceled"), // TODO(bassosimone): define this error + )) + */ ol.Stop("stop after TCP connect") return errNotPermittedToFetch } @@ -306,31 +309,29 @@ func (t *CleartextFlow) maybeFollowRedirects(ctx context.Context, resp *http.Res if !t.FollowRedirects || !t.NumRedirects.CanFollowOneMoreRedirect() { return // not configured or too many redirects } - switch resp.StatusCode { - case 301, 302, 307, 308: - location, err := resp.Location() - if err != nil { - return // broken response from server - } - t.Logger.Infof("redirect to: %s", location.String()) - resolvers := &DNSResolvers{ - CookieJar: t.CookieJar, - DNSCache: t.DNSCache, - Domain: location.Hostname(), - IDGenerator: t.IDGenerator, - Logger: t.Logger, - NumRedirects: t.NumRedirects, - TestKeys: t.TestKeys, - URL: location, - ZeroTime: t.ZeroTime, - WaitGroup: t.WaitGroup, - Referer: resp.Request.URL.String(), - Session: nil, // no need to issue another control request - TestHelpers: nil, // ditto - UDPAddress: t.UDPAddress, - } - resolvers.Start(ctx) - default: - // no redirect to follow + + locationx, err := httpRedirectLocation(resp) + if err != nil || locationx.IsNone() { + return + } + location := locationx.Unwrap() + + t.Logger.Infof("redirect to: %s", location.String()) + resolvers := &DNSResolvers{ + CookieJar: t.CookieJar, + DNSCache: t.DNSCache, + Domain: location.Hostname(), + IDGenerator: t.IDGenerator, + Logger: t.Logger, + NumRedirects: t.NumRedirects, + TestKeys: t.TestKeys, + URL: location, + ZeroTime: t.ZeroTime, + WaitGroup: t.WaitGroup, + Referer: resp.Request.URL.String(), + Session: nil, // no need to issue another control request + TestHelpers: nil, // ditto + UDPAddress: t.UDPAddress, } + resolvers.Start(ctx) } diff --git a/internal/experiment/webconnectivitylte/httpfailure.go b/internal/experiment/webconnectivitylte/httpfailure.go deleted file mode 100644 index 4d0ef73cf4..0000000000 --- a/internal/experiment/webconnectivitylte/httpfailure.go +++ /dev/null @@ -1,28 +0,0 @@ -package webconnectivitylte - -import ( - "net/http" - - "github.com/ooni/probe-cli/v3/internal/measurexlite" - "github.com/ooni/probe-cli/v3/internal/model" -) - -// TODO(bassosimone): document this func -func newArchivalHTTPRequestResultWithError(trace *measurexlite.Trace, network, address, alpn string, - req *http.Request, err error) *model.ArchivalHTTPRequestResult { - duration := trace.TimeSince(trace.ZeroTime()) - return measurexlite.NewArchivalHTTPRequestResult( - trace.Index(), - duration, - network, - address, - alpn, - network, // TODO(bassosimone): get rid of this duplicate field? - req, - nil, - 0, - nil, - err, - duration, - ) -} diff --git a/internal/experiment/webconnectivitylte/httpredirect.go b/internal/experiment/webconnectivitylte/httpredirect.go new file mode 100644 index 0000000000..0af52a21c3 --- /dev/null +++ b/internal/experiment/webconnectivitylte/httpredirect.go @@ -0,0 +1,65 @@ +package webconnectivitylte + +import ( + "net/http" + "net/url" + + "github.com/ooni/probe-cli/v3/internal/optional" +) + +/* +// TODO(bassosimone): document this func +func newArchivalHTTPRequestResultWithError(trace *measurexlite.Trace, network, address, alpn string, + req *http.Request, err error) *model.ArchivalHTTPRequestResult { + duration := trace.TimeSince(trace.ZeroTime()) + return measurexlite.NewArchivalHTTPRequestResult( + trace.Index(), + duration, + network, + address, + alpn, + network, // TODO(bassosimone): get rid of this duplicate field? + req, + nil, + 0, + nil, + err, + duration, + ) +} +*/ + +// httpRedirectIsRedirect returns true if the status code contains a redirect. +func httpRedirectIsRedirect(status int64) bool { + switch status { + case 301, 302, 307, 308: + return true + default: + return false + } +} + +// httpRedirectLocation returns a possibly-empty redirect URL or an error. More specifically: +// +// 1. the redirect URL is empty and the error nil if there's no redirect in resp; +// +// 2. the redirect URL is non-empty and the error is nil if there's a redirect in resp; +// +// 3. the error is non-nil if there's an error. +// +// Note that this function MAY possibly attempt to reconstruct the full redirect URL +// in cases in which we're dealing with a partial redirect such as '/en_US/index.html'. +func httpRedirectLocation(resp *http.Response) (optional.Value[*url.URL], error) { + if !httpRedirectIsRedirect(int64(resp.StatusCode)) { + return optional.None[*url.URL](), nil + } + + location, err := resp.Location() + if err != nil { + return optional.None[*url.URL](), err + } + + // TODO(https://github.com/ooni/probe/issues/2628): we need to handle + // the case where the redirect URL is incomplete + return optional.Some(location), nil +} diff --git a/internal/experiment/webconnectivitylte/secureflow.go b/internal/experiment/webconnectivitylte/secureflow.go index fcedfde511..a000af66d0 100644 --- a/internal/experiment/webconnectivitylte/secureflow.go +++ b/internal/experiment/webconnectivitylte/secureflow.go @@ -9,7 +9,6 @@ package webconnectivitylte import ( "context" "crypto/tls" - "errors" "io" "net" "net/http" @@ -177,19 +176,21 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { tcpDialer := trace.NewDialerWithoutResolver(t.Logger) tcpConn, err := tcpDialer.DialContext(tcpCtx, "tcp", t.Address) t.TestKeys.AppendTCPConnectResults(trace.TCPConnects()...) - t.TestKeys.AppendNetworkEvents(trace.NetworkEvents()...) + t.TestKeys.AppendNetworkEvents(trace.NetworkEvents()...) // BUGFIX: EXPLAIN if err != nil { - // TODO(bassosimone): document why we're adding a request to the heap here - if t.PrioSelector != nil { - t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( - trace, - "tcp", - t.Address, - "", - httpReq, - err, - )) - } + /* + // TODO(bassosimone): document why we're adding a request to the heap here + if t.PrioSelector != nil { + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + err, + )) + } + */ ol.Stop(err) return err } @@ -220,17 +221,19 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { tlsConn, err := tlsHandshaker.Handshake(tlsCtx, tcpConn, tlsConfig) t.TestKeys.AppendTLSHandshakes(trace.TLSHandshakes()...) if err != nil { - // TODO(bassosimone): document why we're adding a request to the heap here - if t.PrioSelector != nil { - t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( - trace, - "tcp", - t.Address, - "", - httpReq, - err, - )) - } + /* + // TODO(bassosimone): document why we're adding a request to the heap here + if t.PrioSelector != nil { + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + err, + )) + } + */ ol.Stop(err) return err } @@ -241,17 +244,19 @@ func (t *SecureFlow) Run(parentCtx context.Context, index int64) error { // Determine whether we're allowed to fetch the webpage if t.PrioSelector == nil || !t.PrioSelector.permissionToFetch(t.Address) { - // TODO(bassosimone): document why we're adding a request to the heap here - if t.PrioSelector != nil { - t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( - trace, - "tcp", - t.Address, - "", - httpReq, - errors.New("http_request_canceled"), // TODO(bassosimone): define this error - )) - } + /* + // TODO(bassosimone): document why we're adding a request to the heap here + if t.PrioSelector != nil { + t.TestKeys.PrependRequests(newArchivalHTTPRequestResultWithError( + trace, + "tcp", + t.Address, + "", + httpReq, + errors.New("http_request_canceled"), // TODO(bassosimone): define this error + )) + } + */ ol.Stop("stop after TLS handshake") return errNotPermittedToFetch } @@ -434,33 +439,29 @@ func (t *SecureFlow) maybeFollowRedirects(ctx context.Context, resp *http.Respon if !t.FollowRedirects || !t.NumRedirects.CanFollowOneMoreRedirect() { return // not configured or too many redirects } - switch resp.StatusCode { - case 301, 302, 307, 308: - location, err := resp.Location() - if err != nil { - return // broken response from server - } - // TODO(https://github.com/ooni/probe/issues/2628): we need to handle - // the case where the redirect URL is incomplete - t.Logger.Infof("redirect to: %s", location.String()) - resolvers := &DNSResolvers{ - CookieJar: t.CookieJar, - DNSCache: t.DNSCache, - Domain: location.Hostname(), - IDGenerator: t.IDGenerator, - Logger: t.Logger, - NumRedirects: t.NumRedirects, - TestKeys: t.TestKeys, - URL: location, - ZeroTime: t.ZeroTime, - WaitGroup: t.WaitGroup, - Referer: resp.Request.URL.String(), - Session: nil, // no need to issue another control request - TestHelpers: nil, // ditto - UDPAddress: t.UDPAddress, - } - resolvers.Start(ctx) - default: - // no redirect to follow + + locationx, err := httpRedirectLocation(resp) + if err != nil || locationx.IsNone() { + return + } + location := locationx.Unwrap() + + t.Logger.Infof("redirect to: %s", location.String()) + resolvers := &DNSResolvers{ + CookieJar: t.CookieJar, + DNSCache: t.DNSCache, + Domain: location.Hostname(), + IDGenerator: t.IDGenerator, + Logger: t.Logger, + NumRedirects: t.NumRedirects, + TestKeys: t.TestKeys, + URL: location, + ZeroTime: t.ZeroTime, + WaitGroup: t.WaitGroup, + Referer: resp.Request.URL.String(), + Session: nil, // no need to issue another control request + TestHelpers: nil, // ditto + UDPAddress: t.UDPAddress, } + resolvers.Start(ctx) } From 5ad88d53adf70cff6d1eeae0320e8c206d6bda5d Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 24 Nov 2023 14:07:58 +0100 Subject: [PATCH 16/97] feat: rewrite the pipeline to match ooni/data more closely --- internal/cmd/minipipeline/main.go | 32 ++ .../webconnectivity/httpanalysis.go | 2 +- .../webconnectivitylte/analysishttpdiff.go | 2 +- internal/measurexlite/web.go | 15 +- internal/measurexlite/web_test.go | 2 +- internal/minipipeline/doc.go | 3 + internal/minipipeline/web.go | 514 ++++++++++++++++++ internal/oohelperd/http.go | 2 +- internal/pipeline/canonical.go | 3 + internal/pipeline/web.go | 2 +- 10 files changed, 566 insertions(+), 11 deletions(-) create mode 100644 internal/cmd/minipipeline/main.go create mode 100644 internal/minipipeline/doc.go create mode 100644 internal/minipipeline/web.go diff --git a/internal/cmd/minipipeline/main.go b/internal/cmd/minipipeline/main.go new file mode 100644 index 0000000000..e89a985e6b --- /dev/null +++ b/internal/cmd/minipipeline/main.go @@ -0,0 +1,32 @@ +package main + +import ( + "os" + + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/pipeline" +) + +func main() { + rawMeasurement := must.ReadFile(os.Args[1]) + var meas pipeline.CanonicalMeasurement + must.UnmarshalJSON(rawMeasurement, &meas) + + container := minipipeline.NewWebObservationsContainer() + container.CreateDNSLookupFailures(meas.TestKeys.Unwrap().Queries...) + container.CreateKnownIPAddresses(meas.TestKeys.Unwrap().Queries...) + container.CreateKnownTCPEndpoints(meas.TestKeys.Unwrap().TCPConnect...) + container.NoteTLSHandshakeResults(meas.TestKeys.Unwrap().TLSHandshakes...) + container.NoteHTTPRoundTripResults(meas.TestKeys.Unwrap().Requests...) + container.NoteControlResults(meas.TestKeys.Unwrap().XControlRequest.Unwrap(), meas.TestKeys.Unwrap().Control.Unwrap()) + + must.WriteFile("db.json", must.MarshalJSON(container), 0600) + + /* + ax := &pipeline.Analysis{} + ax.ComputeAllValues(db) + + must.WriteFile("ax.json", must.MarshalJSON(ax), 0600) + */ +} diff --git a/internal/experiment/webconnectivity/httpanalysis.go b/internal/experiment/webconnectivity/httpanalysis.go index 65ea775b30..23d27d7ea2 100644 --- a/internal/experiment/webconnectivity/httpanalysis.go +++ b/internal/experiment/webconnectivity/httpanalysis.go @@ -202,7 +202,7 @@ func HTTPTitleMatch(tk urlgetter.TestKeys, ctrl ControlResponse) (out *bool) { } control := ctrl.HTTPRequest.Title measurementBody := string(response.Body) - measurement := measurexlite.WebGetTitle(measurementBody) + measurement := measurexlite.WebGetTitleString(measurementBody) if measurement == "" { return } diff --git a/internal/experiment/webconnectivitylte/analysishttpdiff.go b/internal/experiment/webconnectivitylte/analysishttpdiff.go index b25a739506..32475648e4 100644 --- a/internal/experiment/webconnectivitylte/analysishttpdiff.go +++ b/internal/experiment/webconnectivitylte/analysishttpdiff.go @@ -231,7 +231,7 @@ func (tk *TestKeys) httpDiffTitleMatch( } control := ctrl.Title measurementBody := string(response.Body) - measurement := measurexlite.WebGetTitle(measurementBody) + measurement := measurexlite.WebGetTitleString(measurementBody) if control == "" || measurement == "" { return } diff --git a/internal/measurexlite/web.go b/internal/measurexlite/web.go index adc03da6ea..625cc3d74a 100644 --- a/internal/measurexlite/web.go +++ b/internal/measurexlite/web.go @@ -6,12 +6,15 @@ package measurexlite import "regexp" -// WebGetTitle returns the title or an empty string. -func WebGetTitle(measurementBody string) string { - // MK used {1,128} but we're making it larger here to get longer titles - // e.g. 's one - re := regexp.MustCompile(`(?i)([^<]{1,512})`) - v := re.FindStringSubmatch(measurementBody) +// webTitleRegexp is the regexp to extract the title +// +// MK used {1,128} but we're making it larger here to get longer titles +// e.g. 's one +var webTitleRegexp = regexp.MustCompile(`(?i)([^<]{1,512})`) + +// WebGetTitleString returns the title or an empty string. +func WebGetTitleString(measurementBody string) string { + v := webTitleRegexp.FindStringSubmatch(measurementBody) if len(v) < 2 { return "" } diff --git a/internal/measurexlite/web_test.go b/internal/measurexlite/web_test.go index 115ae34108..7f2e8f0146 100644 --- a/internal/measurexlite/web_test.go +++ b/internal/measurexlite/web_test.go @@ -54,7 +54,7 @@ func TestWebGetTitle(t *testing.T) { }} for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - gotOut := WebGetTitle(tt.args.body) + gotOut := WebGetTitleString(tt.args.body) if diff := cmp.Diff(tt.wantOut, gotOut); diff != "" { t.Fatal(diff) } diff --git a/internal/minipipeline/doc.go b/internal/minipipeline/doc.go new file mode 100644 index 0000000000..4ebc4167f6 --- /dev/null +++ b/internal/minipipeline/doc.go @@ -0,0 +1,3 @@ +// Package minipipeline implements a minimal data processing pipeline used +// to analyze local measurements collected by OONI Probe. +package minipipeline diff --git a/internal/minipipeline/web.go b/internal/minipipeline/web.go new file mode 100644 index 0000000000..23e906746c --- /dev/null +++ b/internal/minipipeline/web.go @@ -0,0 +1,514 @@ +package minipipeline + +import ( + "net" + "net/url" + "strconv" + "strings" + + "github.com/ooni/probe-cli/v3/internal/geoipx" + "github.com/ooni/probe-cli/v3/internal/measurexlite" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// WebObservation is an observation of the flow that starts with a DNS lookup that +// discovers zero or more IP addresses and proceeds with endpoint operations such as +// TCP connect, TLS handshake, QUIC handshake, and HTTP round trips. +// +// A key property of the [WebObservation] is that there is a single failure mode +// for the whole [WebObservation]. If the DNS fails, there are no IP addresses to +// construct endpoints. If TCP connect fails, there is no connection to use for +// a TLS handshake. If QUIC fails, there is no connection. If there is no connection +// we cannot attempt sending an HTTP request, so there's no HTTP round trip. +// +// We borrow this design from https://github.com/ooni/data. +type WebObservation struct { + // ContainsDNSLookupInfo is true if this record contains DNS lookup information. + ContainsDNSLookupInfo bool + + // DNSTransactionIDs contains the IDs of the DNS transactions that caused this + // specific [WebObservation] to be generated by the mini pipeline. + DNSTransactionIDs []int64 + + // DNSDomain is the domain from which we resolved the IP address. This field + // is empty whne this record wasn't generated by a DNS lookup. + DNSDomain optional.Value[string] + + // DNSLookupFailure is the failure that occurred during the DNS lookup. + DNSLookupFailure optional.Value[string] + + // DNSQueryType is the type of the DNS query. + DNSQueryType optional.Value[string] + + // IPAddress is the optional IP address that this observation is about. We derive this value + // either from one or more DNS lookups, or because it's part of the input URL. When it's + // empty, it means the associated DNS lookup operation failed. + IPAddress optional.Value[string] + + // IPAddressASN is the optional ASN associated to this IP address as discovered by + // the probe while performing the measurement. When this field is empty, it means + // that the probe failed to discover the IP address ASN. + IPAddressASN optional.Value[int64] + + // IPAddressOrg is the optional organization name associated to this IP adddress + // as discovered by the probe while performing the measurement. When this field is + // empty, it means that the probe failed to discover the IP address org. + IPAddressOrg optional.Value[string] + + // IPAddressBogon is true if IPAddres is a bogon. + IPAddressBogon bool + + // EndpointTransactionID is the transaction ID used by this endpoint. + EndpointTransactionID int64 + + // EndpointProto is either "tcp" or "udp". + EndpointProto string + + // EndpointPort is the port used by this endpoint. + EndpointPort string + + // EndpointAddress is "${IPAddress}:${EndpointPort}" where "${IPAddress}" is + // quoted using "[" and "]" in case of IPv6. + EndpointAddress string + + // ContainsTCPConnectInfo is true if this struct contains TCP connect information. + ContainsTCPConnectInfo bool + + // TCPConnectFailure is the optional TCP connect failure. + TCPConnectFailure optional.Value[string] + + // ContainsTLSHandshakeInfo is true if this struct contains TLS handshake information. + ContainsTLSHandshakeInfo bool + + // TLSHandshakeFailure is the optional TLS handshake failure. + TLSHandshakeFailure optional.Value[string] + + // TLSServerName is the optional TLS server name used. + TLSServerName optional.Value[string] + + // ContainsHTTPRoundTripInfo is true if this struct contains HTTP round trip information. + ContainsHTTPRoundTripInfo bool + + // HTTPRequestURL is the HTTP request URL. + HTTPRequestURL optional.Value[string] + + // HTTPFailure is the error that occurred. + HTTPFailure optional.Value[string] + + // HTTPResponseStatusCode is the response status code. + HTTPResponseStatusCode optional.Value[int64] + + // HTTPResponseBodyLength is the length of the response body. + HTTPResponseBodyLength optional.Value[int64] + + // HTTPResponseBodyIsTruncated indicates whether the response body is truncated. + HTTPResponseBodyIsTruncated optional.Value[bool] + + // HTTPResponseHeadersKeys contains the response headers keys. + HTTPResponseHeadersKeys map[string]bool + + // HTTPResponseLocation contains the location we're redirected to. + HTTPResponseLocation optional.Value[string] + + // HTTPResponseTitle contains the response title. + HTTPResponseTitle optional.Value[string] + + // ContainsControlDNSLookupInfo is true if we have DNS lookup info from the control. + ContainsControlDNSLookupInfo bool + + // ControlDNSLookupFailure is the corresponding control DNS lookup failure. + ControlDNSLookupFailure optional.Value[string] + + // ContainsControlTCPConnectInfo is true if we have TCP connect info from the control. + ContainsControlTCPConnectInfo bool + + // ControlTCPConnectFailure is the control's TCP connect failure. + ControlTCPConnectFailure optional.Value[string] + + // MatchWithControlIPAddress is true if also the control resolved this IP address. + MatchWithControlIPAddress optional.Value[bool] + + // MatchWithControlIPAddressASN is true if also the control resolved from the same ASN. + MatchWithControlIPAddressASN optional.Value[bool] + + // ContainsControlTLSHandshakeInfo is true if we have TLS handshake info from the control. + ContainsControlTLSHandshakeInfo bool + + // ControlTLSHandshakeFailure is the control's TLS handshake failure. + ControlTLSHandshakeFailure optional.Value[string] + + // ContainsControlHTTPInfo is true if we have HTTP info from the control. + ContainsControlHTTPInfo bool + + // ControlHTTPFailure is the failure seen by the control. + ControlHTTPFailure optional.Value[string] + + // ControlHTTPResponseStatusCode is the status code seen by the control. + ControlHTTPResponseStatusCode optional.Value[int64] + + // ControlHTTPResponseBodyLength contains the control HTTP response body length. + ControlHTTPResponseBodyLength optional.Value[int64] + + // ControlHTTPResponseHeadersKeys contains the response headers keys. + ControlHTTPResponseHeadersKeys map[string]bool + + // ControlHTTPResponseTitle contains the title seen by the control. + ControlHTTPResponseTitle optional.Value[string] +} + +// WebObservationsContainer contains [*WebObservations]. +// +// The zero value of this struct is not ready to use, please use [NewWebObservationsContainer]. +type WebObservationsContainer struct { + // DNSLookupFailures maps domain names to DNS lookup failures. + DNSLookupFailures map[int64]*WebObservation + + // KnownTCPEndpoints maps a transaction ID to the corresponding observation. + KnownTCPEndpoints map[int64]*WebObservation + + // knownIPAddresses maps an IP address to the corresponding observation. + knownIPAddresses map[string]*WebObservation +} + +// NewWebObservationsContainer constructs a [*WebObservationsContainer]. +func NewWebObservationsContainer() *WebObservationsContainer { + return &WebObservationsContainer{ + DNSLookupFailures: map[int64]*WebObservation{}, + KnownTCPEndpoints: map[int64]*WebObservation{}, + knownIPAddresses: map[string]*WebObservation{}, + } +} + +// CreateDNSLookupFailures creates records for failed DNS lookups. +func (c *WebObservationsContainer) CreateDNSLookupFailures(evs ...*model.ArchivalDNSLookupResult) { + for _, ev := range evs { + // skip all the succesful queries + if ev.Failure == nil { + continue + } + + // create record + obs := &WebObservation{ + ContainsDNSLookupInfo: true, + DNSTransactionIDs: []int64{ev.TransactionID}, + DNSDomain: optional.Some(ev.Hostname), + DNSLookupFailure: optional.Some(*ev.Failure), + DNSQueryType: optional.Some(ev.QueryType), + } + + // add record + c.DNSLookupFailures[ev.TransactionID] = obs + } +} + +// CreateKnownIPAddresses creates known IP addresses from succesful DNS lookups. +func (c *WebObservationsContainer) CreateKnownIPAddresses(evs ...*model.ArchivalDNSLookupResult) { + for _, ev := range evs { + // skip all the failed queries + if ev.Failure != nil { + continue + } + + // walk through the answers + for _, answer := range ev.Answers { + // extract the IP address we resolved + var addr string + switch answer.AnswerType { + case "A": + addr = answer.IPv4 + case "AAAA": + addr = answer.IPv6 + default: + continue + } + + // create or fetch a record + obs, found := c.knownIPAddresses[addr] + if !found { + obs = &WebObservation{} + c.knownIPAddresses[addr] = obs + } + + // update the record + obs.ContainsDNSLookupInfo = true + obs.DNSTransactionIDs = append(obs.DNSTransactionIDs, ev.TransactionID) + obs.DNSDomain = optional.Some(ev.Hostname) + obs.DNSLookupFailure = optional.None[string]() + obs.DNSQueryType = optional.Some(ev.QueryType) + obs.IPAddress = optional.Some(addr) + if asn := answer.ASN; asn != 0 { + obs.IPAddressASN = optional.Some(int64(asn)) + } + if org := answer.ASOrgName; org != "" { + obs.IPAddressOrg = optional.Some(org) + } + obs.IPAddressBogon = netxlite.IsBogon(addr) + } + } +} + +// CreateKnownTCPEndpoints creates known TCP endpoints from TCP connect attempts. +func (c *WebObservationsContainer) CreateKnownTCPEndpoints(evs ...*model.ArchivalTCPConnectResult) { + for _, ev := range evs { + // create or fetch a record + obs, found := c.knownIPAddresses[ev.IP] + if !found { + obs = &WebObservation{ + IPAddress: optional.Some(ev.IP), + IPAddressBogon: netxlite.IsBogon(ev.IP), + } + if asn, asOrg, err := geoipx.LookupASN(ev.IP); err == nil { + obs.IPAddressASN = optional.Some(int64(asn)) + obs.IPAddressOrg = optional.Some(asOrg) + } + } + + // clone the record because the same IP address MAY belong + // to multiple endpoints across the same measurement + // + // while there also fill endpoint specific info + portString := strconv.Itoa(ev.Port) + obs = &WebObservation{ + ContainsDNSLookupInfo: obs.ContainsDNSLookupInfo, + DNSTransactionIDs: append([]int64{}, obs.DNSTransactionIDs...), + DNSDomain: obs.DNSDomain, + DNSLookupFailure: obs.DNSLookupFailure, + IPAddress: obs.IPAddress, + IPAddressASN: obs.IPAddressASN, + IPAddressOrg: obs.IPAddressOrg, + IPAddressBogon: obs.IPAddressBogon, + EndpointTransactionID: ev.TransactionID, + EndpointProto: "tcp", + EndpointPort: portString, + EndpointAddress: net.JoinHostPort(ev.IP, portString), + ContainsTCPConnectInfo: true, + TCPConnectFailure: optional.None[string](), + } + + // finish filling the endpoint + if value := ev.Status.Failure; value != nil { + obs.TCPConnectFailure = optional.Some(*value) + } + + // register the observation + c.KnownTCPEndpoints[ev.TransactionID] = obs + } +} + +// NoteTLSHandshakeResults updates endpoints taking into account TLS handshake results. +func (c *WebObservationsContainer) NoteTLSHandshakeResults(evs ...*model.ArchivalTLSOrQUICHandshakeResult) { + for _, ev := range evs { + // find the corresponding obs + obs, found := c.KnownTCPEndpoints[ev.TransactionID] + if !found { + continue + } + + // update the record + obs.ContainsTLSHandshakeInfo = true + if value := ev.Failure; value != nil { + obs.TLSHandshakeFailure = optional.Some(*value) + } + if value := ev.ServerName; value != "" { + obs.TLSServerName = optional.Some(value) + } + } +} + +// NoteHTTPRoundTripResults updates endpoints taking into account HTTP round trip results. +func (c *WebObservationsContainer) NoteHTTPRoundTripResults(evs ...*model.ArchivalHTTPRequestResult) { + for _, ev := range evs { + // find the corresponding obs + obs, found := c.KnownTCPEndpoints[ev.TransactionID] + if !found { + continue + } + + // update the record + obs.ContainsHTTPRoundTripInfo = true + obs.HTTPRequestURL = optional.Some(ev.Request.URL) + if value := ev.Failure; value != nil { + obs.HTTPFailure = optional.Some(*value) + } + if value := ev.Response.Code; value != 0 { + obs.HTTPResponseStatusCode = optional.Some(value) + } + if value := int64(len(ev.Response.Body)); value > 0 { + obs.HTTPResponseBodyLength = optional.Some(value) + } + obs.HTTPResponseBodyIsTruncated = optional.Some(ev.Request.BodyIsTruncated) + obs.HTTPResponseHeadersKeys = make(map[string]bool) + for key := range ev.Response.Headers { + obs.HTTPResponseHeadersKeys[key] = true + } + if value := measurexlite.WebGetTitleString(string(ev.Response.Body)); value != "" { + obs.HTTPResponseTitle = optional.Some(value) + } + for key, value := range ev.Response.Headers { + if strings.ToLower(key) == "location" { + obs.HTTPResponseLocation = optional.Some(string(value)) + } + } + } +} + +// NoteControlResults takes note of the control's results and updates observations accordingly. +func (c *WebObservationsContainer) NoteControlResults(req *model.THRequest, resp *model.THResponse) error { + + URL, err := url.Parse(req.HTTPRequest) + if err != nil { + return err + } + inputDomain := URL.Hostname() + + c.controlXrefDNSFailures(inputDomain, resp) + c.controlMatchDNSLookupResults(inputDomain, resp) + c.controlXrefEndpointFailures(resp) + c.controlXrefFinalHTTPResponse(resp) + + return nil +} + +func (c *WebObservationsContainer) controlMatchDNSLookupResults(inputDomain string, resp *model.THResponse) { + // rebuild the list of ASNs using the probe's database because we want to + // use the same exact database we used for processing the measurement + thASNMap := make(map[string]int64) + for _, addr := range resp.DNS.Addrs { + if asn, _, err := geoipx.LookupASN(addr); err == nil && asn != 0 { + thASNMap[addr] = int64(asn) + } + } + + // walk through the list of known observations + for _, obs := range c.KnownTCPEndpoints { + // skip entries without a domain to resolve (likely a bug) + domain := obs.DNSDomain.UnwrapOr("") + if domain == "" { + continue + } + + // skip entries using a different domain than the one used by the TH + if domain != inputDomain { + continue + } + + // skip entries without an IP address (likely a bug) + addr := obs.IPAddress.UnwrapOr("") + if addr == "" { + continue + } + + // attempt to access the TH's ASN map for the probe's address + thASN, found := thASNMap[addr] + + // register whether they both resolved the same IP address + obs.MatchWithControlIPAddress = optional.Some(found) + + // cannot continue unless we know the probe's ASN + ourASN := obs.IPAddressASN.UnwrapOr(0) + if ourASN == 0 { + continue + } + + // register whether there is matching in terms of the ASNs + obs.MatchWithControlIPAddressASN = optional.Some(thASN == ourASN) + } +} + +func (c *WebObservationsContainer) controlXrefDNSFailures(inputDomain string, resp *model.THResponse) { + for _, obs := range c.DNSLookupFailures { + // skip cases where we don't know the domain we were using (bug) + domain := obs.DNSDomain.UnwrapOr("") + if domain == "" { + continue + } + + // skip cases where the DNS lookup did not fail (bug) + probeFailure := obs.DNSLookupFailure.UnwrapOr("") + if probeFailure == "" { + continue + } + + // skip cases where the domain is different + if domain != inputDomain { + continue + } + + // register the corresponding DNS lookup failure + obs.ContainsControlDNSLookupInfo = true + if value := resp.DNS.Failure; value != nil { + obs.ControlDNSLookupFailure = optional.Some(*value) + } + } +} + +func (c *WebObservationsContainer) controlXrefEndpointFailures(resp *model.THResponse) { + for _, obs := range c.KnownTCPEndpoints { + // search for the corresponding control TCP connect entry + if tcp, found := resp.TCPConnect[obs.EndpointAddress]; found { + obs.ContainsControlTCPConnectInfo = true + if value := tcp.Failure; value != nil { + obs.ControlTCPConnectFailure = optional.Some(*value) + } + } + + // search for the corresponding TLS handshake entry for the same server name + if serverName := obs.TLSServerName.UnwrapOr(""); serverName != "" { + if tls, found := resp.TLSHandshake[obs.EndpointAddress]; found && tls.ServerName == serverName { + obs.ContainsControlTLSHandshakeInfo = true + if value := tls.Failure; value != nil { + obs.ControlTLSHandshakeFailure = optional.Some(*value) + } + } + } + } +} + +func (c *WebObservationsContainer) controlXrefFinalHTTPResponse(resp *model.THResponse) { + obs := c.findFinalHTTPResponse().UnwrapOr(nil) + if obs == nil { + return + } + obs.ContainsControlHTTPInfo = true + if value := resp.HTTPRequest.Failure; value != nil { + obs.ControlHTTPFailure = optional.Some(*value) + } + if value := resp.HTTPRequest.StatusCode; value > 0 { + obs.ControlHTTPResponseStatusCode = optional.Some(value) + } + if value := resp.HTTPRequest.BodyLength; value > 0 { + obs.ControlHTTPResponseBodyLength = optional.Some(value) + } + obs.ControlHTTPResponseHeadersKeys = make(map[string]bool) + for key := range resp.HTTPRequest.Headers { + obs.ControlHTTPResponseHeadersKeys[key] = true + } + if v := resp.HTTPRequest.Title; v != "" { + obs.ControlHTTPResponseTitle = optional.Some(v) + } +} + +func (c *WebObservationsContainer) findFinalHTTPResponse() optional.Value[*WebObservation] { + // find all the possible final request candidates + var candidates []*WebObservation + for _, wobs := range c.KnownTCPEndpoints { + switch code := wobs.HTTPResponseStatusCode.UnwrapOr(0); code { + case 0, 301, 302, 307, 308: + // this is a redirect or a nonexisting response in the case of zero + + default: + // found candidate + candidates = append(candidates, wobs) + } + } + + // Implementation note: the final request is a request that is not a redirect and + // we expect to see just one of them. This code is written assuming we will have + // more than a final request in the future and to fail in such a case. + if len(candidates) != 1 { + return optional.None[*WebObservation]() + } + return optional.Some(candidates[0]) +} diff --git a/internal/oohelperd/http.go b/internal/oohelperd/http.go index e6867187ee..0b9d221a70 100644 --- a/internal/oohelperd/http.go +++ b/internal/oohelperd/http.go @@ -120,7 +120,7 @@ func httpDo(ctx context.Context, config *httpConfig) { Failure: httpMapFailure(err), StatusCode: int64(resp.StatusCode), Headers: headers, - Title: measurexlite.WebGetTitle(string(data)), + Title: measurexlite.WebGetTitleString(string(data)), } } diff --git a/internal/pipeline/canonical.go b/internal/pipeline/canonical.go index 39fe839a58..1cc5ec7d6f 100644 --- a/internal/pipeline/canonical.go +++ b/internal/pipeline/canonical.go @@ -39,4 +39,7 @@ type CanonicalTestKeys struct { // QUICHandshakes contains the QUIC handshakes results. QUICHandshakes []*model.ArchivalTLSOrQUICHandshakeResult `json:"quic_handshakes"` + + // XControlRequest contains the OPTIONAL TH request. + XControlRequest optional.Value[*model.THRequest] `json:"x_control_request"` } diff --git a/internal/pipeline/web.go b/internal/pipeline/web.go index 584b47a6ad..1e811bb3e6 100644 --- a/internal/pipeline/web.go +++ b/internal/pipeline/web.go @@ -212,7 +212,7 @@ func (db *DB) addHTTPRoundTrips(evs ...*model.ArchivalHTTPRequestResult) error { for key := range ev.Response.Headers { wobs.HTTPResponseHeadersKeys[key] = OriginProbe } - if title := measurexlite.WebGetTitle(string(ev.Response.Body)); title != "" { + if title := measurexlite.WebGetTitleString(string(ev.Response.Body)); title != "" { wobs.HTTPResponseTitle = optional.Some(title) } } From 132ba4dd4a7a89825c25d4eb563fca820506bfce Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 24 Nov 2023 18:50:38 +0100 Subject: [PATCH 17/97] also implement the analysis --- internal/cmd/minipipeline/main.go | 20 +- .../webconnectivitylte/analysiscore.go | 15 +- .../webconnectivitylte/analysiscorev2.go | 404 +++++++++++++++ internal/minipipeline/analysis.go | 485 ++++++++++++++++++ .../minipipeline/{web.go => observation.go} | 264 +++++----- internal/minipipeline/utils.go | 8 + 6 files changed, 1039 insertions(+), 157 deletions(-) create mode 100644 internal/experiment/webconnectivitylte/analysiscorev2.go create mode 100644 internal/minipipeline/analysis.go rename internal/minipipeline/{web.go => observation.go} (67%) create mode 100644 internal/minipipeline/utils.go diff --git a/internal/cmd/minipipeline/main.go b/internal/cmd/minipipeline/main.go index e89a985e6b..dd21eaeadf 100644 --- a/internal/cmd/minipipeline/main.go +++ b/internal/cmd/minipipeline/main.go @@ -21,12 +21,20 @@ func main() { container.NoteHTTPRoundTripResults(meas.TestKeys.Unwrap().Requests...) container.NoteControlResults(meas.TestKeys.Unwrap().XControlRequest.Unwrap(), meas.TestKeys.Unwrap().Control.Unwrap()) - must.WriteFile("db.json", must.MarshalJSON(container), 0600) + must.WriteFile("observation.json", must.MarshalJSON(container), 0600) - /* - ax := &pipeline.Analysis{} - ax.ComputeAllValues(db) + analysis := &minipipeline.WebAnalysis{} + analysis.ComputeDNSExperimentFailure(container) + analysis.ComputeDNSTransactionsWithBogons(container) + analysis.ComputeDNSTransactionsWithUnexpectedFailures(container) + analysis.ComputeDNSPossiblyInvalidAddrs(container) + analysis.ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) + analysis.ComputeHTTPDiffBodyProportionFactor(container) + analysis.ComputeHTTPDiffStatusCodeMatch(container) + analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) + analysis.ComputeHTTPDiffTitleDifferentLongWords(container) - must.WriteFile("ax.json", must.MarshalJSON(ax), 0600) - */ + must.WriteFile("analysis.json", must.MarshalJSON(analysis), 0600) } diff --git a/internal/experiment/webconnectivitylte/analysiscore.go b/internal/experiment/webconnectivitylte/analysiscore.go index 3c745ccd02..2109c9120d 100644 --- a/internal/experiment/webconnectivitylte/analysiscore.go +++ b/internal/experiment/webconnectivitylte/analysiscore.go @@ -36,6 +36,9 @@ const ( analysisFlagSuccess ) +// AnalysisUseV2 indicates whether to use V2 of the analysis algorithm. +var AnalysisUseV2 = true + // analysisToplevel is the toplevel function that analyses the results // of the experiment once all network tasks have completed. // @@ -99,10 +102,14 @@ func (tk *TestKeys) analysisToplevel(logger model.Logger) { // not going to use any form of locking here. // these functions compute the value of XBlockingFlags - tk.analysisDNSToplevel(logger, model.GeoIPASNLookupperFunc(geoipx.LookupASN)) - tk.analysisTCPIPToplevel(logger) - tk.analysisTLSToplevel(logger) - tk.analysisHTTPToplevel(logger) + if AnalysisUseV2 { + tk.analysisToplevelV2(logger) + } else { + tk.analysisDNSToplevel(logger, model.GeoIPASNLookupperFunc(geoipx.LookupASN)) + tk.analysisTCPIPToplevel(logger) + tk.analysisTLSToplevel(logger) + tk.analysisHTTPToplevel(logger) + } // now, let's determine .Accessible and .Blocking switch { diff --git a/internal/experiment/webconnectivitylte/analysiscorev2.go b/internal/experiment/webconnectivitylte/analysiscorev2.go new file mode 100644 index 0000000000..86624d3f5b --- /dev/null +++ b/internal/experiment/webconnectivitylte/analysiscorev2.go @@ -0,0 +1,404 @@ +package webconnectivitylte + +import ( + "fmt" + + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +// analysisToplevelV2 is an alternative version of the analysis code that +// uses the [minipipeline] package for processing. +func (tk *TestKeys) analysisToplevelV2(logger model.Logger) { + // Since we run after all tasks have completed (or so we assume) we're + // not going to use any form of locking here. + + container := minipipeline.NewWebObservationsContainer() + container.CreateDNSLookupFailures(tk.Queries...) + container.CreateKnownIPAddresses(tk.Queries...) + container.CreateKnownTCPEndpoints(tk.TCPConnect...) + container.NoteTLSHandshakeResults(tk.TLSHandshakes...) + container.NoteHTTPRoundTripResults(tk.Requests...) + + // be defensive in case the control request or control are not defined + if tk.ControlRequest != nil && tk.Control != nil { + // Implementation note: the only error that can happen here is when the input + // doesn't parse as a URL, which should have triggered previous errors + runtimex.Try0(container.NoteControlResults(tk.ControlRequest, tk.Control)) + } + + // dump the pipeline results for debugging purposes + fmt.Printf("%s\n", must.MarshalJSON(container)) + + // run top-level protocol-specific analysis algorithms + tk.analysisDNSToplevelV2(container, logger) + tk.analysisTCPIPToplevelV2(container, logger) + tk.analysisTLSToplevelV2(container, logger) + tk.analysisHTTPToplevelV2(container, logger) +} + +// analysisDNSToplevelV2 is the toplevel analysis function for DNS results. +// +// Note: this function DOES NOT consider failed DNS-over-HTTPS (DoH) submeasurements +// and ONLY considers the IP addrs they have resolved. Failing to contact a DoH service +// provides info about such a DoH service rather than on the measured URL. See the +// https://github.com/ooni/probe/issues/2274 issue for more info. +// +// The goals of this function are the following: +// +// 1. Set the legacy .DNSExperimentFailure field to the failure value of the +// first DNS query that failed among the ones using getaddrinfo. This field is +// legacy because now we perform several DNS lookups. +// +// 2. Compute the XDNSFlags value. +// +// From the XDNSFlags value, we determine, in turn DNSConsistency and +// XBlockingFlags according to the following decision table: +// +// +-----------+----------------+---------------------+ +// | XDNSFlags | DNSConsistency | XBlockingFlags | +// +-----------+----------------+---------------------+ +// | 0 | "consistent" | no change | +// +-----------+----------------+---------------------+ +// | nonzero | "inconsistent" | set FlagDNSBlocking | +// +-----------+----------------+---------------------+ +// +// We explain how XDNSFlags is determined in the documentation of +// the functions that this function calls to do its job. +func (tk *TestKeys) analysisDNSToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + + // run the analysis algorithms + tk.analysisDNSExperimentFailureV2(container) + tk.analysisDNSBogonV2(container, logger) + //tk.analysisDNSDuplicateResponsesV2() // TODO(bassosimone): implement + tk.analysisDNSUnexpectedFailureV2(container, logger) + tk.analysisDNSUnexpectedAddrsV2(container, logger) + + // compute DNS consistency + if tk.DNSFlags != 0 { + logger.Warn("DNSConsistency: inconsistent") + tk.DNSConsistency = "inconsistent" + tk.BlockingFlags |= analysisFlagDNSBlocking + } else { + logger.Info("DNSConsistency: consistent") + tk.DNSConsistency = "consistent" + } + +} + +func (tk *TestKeys) analysisDNSExperimentFailureV2(container *minipipeline.WebObservationsContainer) { + for _, obs := range container.DNSLookupFailures { + // skip if we don't know the engine + if obs.DNSEngine.IsNone() { + continue + } + + // make sure we only include the system resolver + switch obs.DNSEngine.Unwrap() { + case "getaddrinfo", "golang_net_resolver": + + // skip cases where the failure is not set, which is a bug + if obs.DNSLookupFailure.IsNone() { + continue + } + failure := obs.DNSLookupFailure.Unwrap() + + // skip cases where the query type is not set, which is a bug + if obs.DNSQueryType.IsNone() { + continue + } + queryType := obs.DNSQueryType.Unwrap() + + // skip cases where there's no DNS record for AAAA + if queryType == "AAAA" && failure == netxlite.FailureDNSNoAnswer { + continue + } + + // set the failure proper + tk.DNSExperimentFailure = &failure + + default: + // nothing + } + } +} + +func (tk *TestKeys) analysisDNSBogonV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + // Implementation note: any bogon IP address resolved by a DoH service + // is STILL suspicious since it should not happen. TODO(bassosimone): an + // even better algorithm could possibly check whether also the TH has + // observed bogon IP addrs and avoid flagging in such a case. + // + // See https://github.com/ooni/probe/issues/2274 for more information. + + for _, obs := range container.KnownTCPEndpoints { + // skip cases where there's no bogon + if obs.IPAddressBogon.IsNone() { + continue + } + if !obs.IPAddressBogon.Unwrap() { + continue + } + + // skip cases where the IP address is not defined (likely a bug) + if obs.IPAddress.IsNone() { + continue + } + addr := obs.IPAddress.Unwrap() + + // skip cases where the domain is not known (likely a bug) + if obs.DNSDomain.IsNone() { + continue + } + domain := obs.DNSDomain.Unwrap() + + // log and make sure we set the correct flag + logger.Warnf("DNS: got BOGON answer %s for domain %s (see %v)", addr, domain, obs.DNSTransactionIDs) + tk.DNSFlags |= AnalysisDNSBogon + + // continue processing so we print all the bogons we have + } +} + +func (tk *TestKeys) analysisDNSUnexpectedFailureV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + for _, obs := range container.DNSLookupFailures { + // skip cases with no failures + if obs.DNSLookupFailure.IsNone() { + continue + } + failure := obs.DNSLookupFailure.Unwrap() + if failure == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlDNSLookupFailure.IsNone() { + continue + } + if obs.ControlDNSLookupFailure.Unwrap() != "" { + continue + } + + // A DoH failure is not information about the URL we're measuring + // but about the DoH service being blocked. + // + // See https://github.com/ooni/probe/issues/2274 + if obs.DNSEngine.IsNone() { + continue + } + engine := obs.DNSEngine.Unwrap() + if engine == "doh" { + continue + } + + // skip cases where the query type is not set, which is a bug + if obs.DNSQueryType.IsNone() { + continue + } + queryType := obs.DNSQueryType.Unwrap() + + // skip cases where there's no DNS record for AAAA + if queryType == "AAAA" && failure == netxlite.FailureDNSNoAnswer { + continue + } + + // log and make sure we set the correct flag + logger.Warnf("DNS: unexpected failure %s in %v", failure, obs.DNSTransactionIDs) + tk.DNSFlags |= AnalysisDNSUnexpectedFailure + + // continue processing so we print all the unexpected failures + } +} + +func (tk *TestKeys) analysisDNSUnexpectedAddrsV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + // Implementation note: in the case in which DoH returned answers, here + // it still feels okay to consider them. We should avoid flagging DoH + // failures as measurement failures but if DoH returns us some unexpected + // even-non-bogon addr, it seems worth flagging for now. + // + // See https://github.com/ooni/probe/issues/2274 + + for _, obs := range container.KnownTCPEndpoints { + // skip the cases with no address (which would be a bug) + if obs.IPAddress.IsNone() { + continue + } + addr := obs.IPAddress.Unwrap() + + // if the address was also resolved by the control, we're good + if !obs.MatchWithControlIPAddress.IsNone() { + if obs.MatchWithControlIPAddress.Unwrap() { + continue + } + logger.Infof("DNS: address %s: not resolved by TH", addr) + } + + // if we have a succesful TLS handshake for this addr, we're good + // + // note: this check is before the ASN check to avoid emitting a + // warning indicating an ASN mismatch when we do not have an ASN + if !obs.TLSHandshakeFailure.IsNone() { + if obs.TLSHandshakeFailure.Unwrap() == "" { + continue + } + logger.Infof("DNS: address %s: cannot confirm using TLS handshake", addr) + } + + // we must have a valid ASN at this point (or bug!) + if obs.IPAddressASN.IsNone() { + continue + } + asn := obs.IPAddressASN.Unwrap() + + // if the ASN was also observed by the control, we're good + if obs.MatchWithControlIPAddressASN.IsNone() { + continue + } + if obs.MatchWithControlIPAddressASN.Unwrap() { + continue + } + + // log and make sure we set the correct flag + logger.Warnf( + "DNS: address %s has unexpected AS%d and we cannot use TLS to confirm it", + addr, asn, + ) + tk.DNSFlags |= AnalysisDNSUnexpectedAddrs + + // continue processing so we print all the unexpected failures + } +} + +// analysisTCPIPToplevelV2 is the toplevel analysis function for TCP/IP results. +func (tk *TestKeys) analysisTCPIPToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + for _, obs := range container.KnownTCPEndpoints { + // skip cases with no failures + if obs.TCPConnectFailure.IsNone() { + continue + } + failure := obs.TCPConnectFailure.Unwrap() + if failure == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlTCPConnectFailure.IsNone() { + continue + } + if obs.ControlTCPConnectFailure.Unwrap() != "" { + continue + } + + // TODO(bassosimone): how do we set the .Blocked flag? + // maybe we can use the transactionID to go back to the right + // data structure and set the value or we can deprecate it + // and just ignore this corner case? + + // log and make sure we set the correct flag + logger.Warnf( + "TCP/IP: unexpected failure %s for %s (see %d)", + failure, + obs.EndpointAddress, + obs.EndpointTransactionID, + ) + tk.BlockingFlags |= analysisFlagTCPIPBlocking + + // continue processing so we print all the unexpected failures + } +} + +// analysisTLSToplevelV2 is the toplevel analysis function for TLS results. +func (tk *TestKeys) analysisTLSToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + for _, obs := range container.KnownTCPEndpoints { + // skip cases with no failures + if obs.TLSHandshakeFailure.IsNone() { + continue + } + failure := obs.TLSHandshakeFailure.Unwrap() + if failure == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlTLSHandshakeFailure.IsNone() { + continue + } + if obs.ControlTLSHandshakeFailure.Unwrap() != "" { + continue + } + + // log and make sure we set the correct flag + logger.Warnf( + "TLS: unexpected failure %s for %s (see %d)", + failure, + obs.EndpointAddress, + obs.EndpointTransactionID, + ) + tk.BlockingFlags |= analysisFlagTLSBlocking + + // continue processing so we print all the unexpected failures + } +} + +// analysisHTTPToplevelV2 is the toplevel analysis function for HTTP results. +func (tk *TestKeys) analysisHTTPToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + tk.analysisHTTPUnexpectedFailureV2(container, logger) + tk.analysisHTTPDiffV2(container, logger) +} + +func (tk *TestKeys) analysisHTTPUnexpectedFailureV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + for _, obs := range container.KnownTCPEndpoints { + // skip cases with no failures + if obs.HTTPFailure.IsNone() { + continue + } + failure := obs.HTTPFailure.Unwrap() + if failure == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlHTTPFailure.IsNone() { + continue + } + if obs.ControlHTTPFailure.UnwrapOr("") != "" { + continue + } + + // log and make sure we set the correct flag + logger.Warnf( + "TLS: unexpected failure %s for %s (see %d)", + failure, + obs.EndpointAddress, + obs.EndpointTransactionID, + ) + tk.BlockingFlags |= analysisFlagTLSBlocking + + // continue processing so we print all the unexpected failures + } +} + +func (tk *TestKeys) analysisHTTPDiffV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { + for _, obs := range container.KnownTCPEndpoints { + // skip cases with failures + if obs.HTTPFailure.IsNone() { + continue + } + failure := obs.HTTPFailure.Unwrap() + if failure != "" { + continue + } + + // skip cases where the control failed + if obs.ControlHTTPFailure.IsNone() { + continue + } + if obs.ControlHTTPFailure.UnwrapOr("") != "" { + continue + } + + } +} diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go new file mode 100644 index 0000000000..1132445b4c --- /dev/null +++ b/internal/minipipeline/analysis.go @@ -0,0 +1,485 @@ +package minipipeline + +import ( + "strings" + + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// WebAnalysis summarizes the content of [*WebObservationsContainer]. +// +// The zero value of this struct is ready to use. +type WebAnalysis struct { + // DNSExperimentFailure is the first failure experienced by a getaddrinfo-like resolver. + DNSExperimentFailure optional.Value[string] + + // DNSTransactionsWithBogons contains the list of DNS transactions containing bogons. + DNSTransactionsWithBogons optional.Value[map[int64]bool] + + // DNSTransactionsWithUnexpectedFailures contains the DNS transaction IDs that + // contain failures while the control measurement succeeded. Note that we don't + // include DNS-over-HTTPS failures inside this value. + DNSTransactionsWithUnexpectedFailures optional.Value[map[int64]bool] + + // DNSPossiblyInvalidAddrs contains the addresses that are not valid for the + // domain. An addres is valid for the domain if: + // + // 1. we can TLS handshake with the expected SNI using this address; + // + // 2. the address was resolved by the TH; + // + // 3. the address ASN was also observed by TH. + DNSPossiblyInvalidAddrs optional.Value[map[string]bool] + + // HTTPDiffBodyProportionFactor is the body proportion factor. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffBodyProportionFactor optional.Value[float64] + + // HTTPDiffStatusCodeMatch returns whether the status code match modulo some + // false positive cases that causes this value to remain null. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffStatusCodeMatch optional.Value[bool] + + // HTTPDiffTitleDifferentLongWords contains the words longer than 4 characters + // that appear in the probe's "final" response title but don't appear in the TH title. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffTitleDifferentLongWords optional.Value[map[string]bool] + + // HTTPDiffUncommonHeadersIntersection contains the uncommon headers intersection. + // + // The generation algorithm assumes there's a single "final" response. + HTTPDiffUncommonHeadersIntersection optional.Value[map[string]bool] + + // TCPTransactionsWithUnexpectedTCPConnectFailures contains the TCP transaction IDs that + // contain TCP connect failures while the control measurement succeeded. + TCPTransactionsWithUnexpectedTCPConnectFailures optional.Value[map[int64]bool] + + // TCPTransactionsWithUnexpectedTLSHandshakeFailures contains the TCP transaction IDs that + // contain TLS handshake failures while the control measurement succeeded. + TCPTransactionsWithUnexpectedTLSHandshakeFailures optional.Value[map[int64]bool] + + // TCPSTransactionsWithUnexpectedHTTPFailures contains the TCP transaction IDs that + // contain HTTP failures while the control measurement succeeded. + TCPTransactionsWithUnexpectedHTTPFailures optional.Value[map[int64]bool] +} + +func analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs *WebObservation) bool { + return obs.DNSQueryType.UnwrapOr("") == "AAAA" && obs.DNSLookupFailure.UnwrapOr("") == netxlite.FailureDNSNoAnswer +} + +// ComputeDNSExperimentFailure computes the DNSExperimentFailure field. +func (wa *WebAnalysis) ComputeDNSExperimentFailure(c *WebObservationsContainer) { + + for _, obs := range c.DNSLookupFailures { + // make sure we only include the system resolver + switch obs.DNSEngine.UnwrapOr("") { + case "getaddrinfo", "golang_net_resolver": + + // skip cases where there's no DNS record for AAAA, which is a false positive + if analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs) { + continue + } + + // only record the first failure + wa.DNSExperimentFailure = obs.DNSLookupFailure + return + + default: + // nothing + } + } +} + +func analysisForEachDNSTransactionID(obs *WebObservation, f func(id int64)) { + for _, id := range obs.DNSTransactionIDs.UnwrapOr(nil) { + f(id) + } +} + +// ComputeDNSTransactionsWithBogons computes the DNSTransactionsWithBogons field. +func (wa *WebAnalysis) ComputeDNSTransactionsWithBogons(c *WebObservationsContainer) { + // Implementation note: any bogon IP address resolved by a DoH service + // is STILL suspicious since it should not happen. TODO(bassosimone): an + // even better algorithm could possibly check whether also the TH has + // observed bogon IP addrs and avoid flagging in such a case. + // + // See https://github.com/ooni/probe/issues/2274 for more information. + + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we're only interested in cases when there's a bogon + if !obs.IPAddressBogon.UnwrapOr(false) { + continue + } + + // update state + analysisForEachDNSTransactionID(obs, func(id int64) { + state[id] = true + }) + } + + wa.DNSTransactionsWithBogons = optional.Some(state) +} + +func analysisDNSEngineIsDNSOverHTTPS(obs *WebObservation) bool { + return obs.DNSEngine.UnwrapOr("") == "doh" +} + +// ComputeDNSTransactionsWithUnexpectedFailures computes the DNSTransactionsWithUnexpectedFailures field. +func (wa *WebAnalysis) ComputeDNSTransactionsWithUnexpectedFailures(c *WebObservationsContainer) { + // Implementation note: a DoH failure is not information about the URL we're + // measuring but about the DoH service being blocked. + // + // See https://github.com/ooni/probe/issues/2274 + + state := make(map[int64]bool) + + for _, obs := range c.DNSLookupFailures { + // skip cases where the control failed as well + if obs.ControlDNSLookupFailure.UnwrapOr("") != "" { + continue + } + + // skip cases where the engine is doh (see above comment) + if analysisDNSEngineIsDNSOverHTTPS(obs) { + continue + } + + // skip cases where there's no DNS record for AAAA, which is a false positive + if analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs) { + continue + } + + // update state + analysisForEachDNSTransactionID(obs, func(id int64) { + state[id] = true + }) + } + + wa.DNSTransactionsWithBogons = optional.Some(state) +} + +// ComputeDNSPossiblyInvalidAddrs computes the DNSPossiblyInvalidAddrs field. +func (wa *WebAnalysis) ComputeDNSPossiblyInvalidAddrs(c *WebObservationsContainer) { + // Implementation note: in the case in which DoH returned answers, here + // it still feels okay to consider them. We should avoid flagging DoH + // failures as measurement failures but if DoH returns us some unexpected + // even-non-bogon addr, it seems worth flagging for now. + // + // See https://github.com/ooni/probe/issues/2274 + + state := make(map[string]bool) + + for _, obs := range c.KnownTCPEndpoints { + addr := obs.IPAddress.Unwrap() + + // if the address was also resolved by the control, we're good + if obs.MatchWithControlIPAddress.UnwrapOr(false) { + continue + } + + // if we have a succesful TLS handshake for this addr, we're good + if obs.TLSHandshakeFailure.UnwrapOr("unknown_failure") == "" { + // just in case another transaction succeded, clear the address from the state + delete(state, addr) + continue + } + + // if there's an ASN match with the control, we're good + if obs.MatchWithControlIPAddressASN.UnwrapOr(false) { + continue + } + + // update state + state[addr] = true + } + + wa.DNSPossiblyInvalidAddrs = optional.Some(state) +} + +// ComputeTCPTransactionsWithUnexpectedTCPConnectFailures computes the TCPTransactionsWithUnexpectedTCPConnectFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // skip cases with no failures + if obs.TCPConnectFailure.UnwrapOr("") == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlTCPConnectFailure.UnwrapOr("unknown_failure") != "" { + continue + } + + // update state + state[obs.EndpointTransactionID.Unwrap()] = true + } + + wa.TCPTransactionsWithUnexpectedTCPConnectFailures = optional.Some(state) +} + +// ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures computes the TCPTransactionsWithUnexpectedTLSHandshakeFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // skip cases with no failures + if obs.TLSHandshakeFailure.UnwrapOr("") == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlTLSHandshakeFailure.UnwrapOr("unknown_failure") != "" { + continue + } + + // update state + state[obs.EndpointTransactionID.Unwrap()] = true + } + + wa.TCPTransactionsWithUnexpectedTLSHandshakeFailures = optional.Some(state) +} + +// ComputeTCPTransactionsWithUnexpectedHTTPFailures computes the TCPTransactionsWithUnexpectedHTTPFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexpectedHTTPFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // skip cases with no failures + if obs.HTTPFailure.UnwrapOr("") == "" { + continue + } + + // skip cases where also the control failed + if obs.ControlHTTPFailure.UnwrapOr("unknown_failure") != "" { + continue + } + + // update state + state[obs.EndpointTransactionID.Unwrap()] = true + } + + wa.TCPTransactionsWithUnexpectedHTTPFailures = optional.Some(state) +} + +// ComputeHTTPDiffBodyProportionFactor computes the HTTPDiffBodyProportionFactor field. +func (wa *WebAnalysis) ComputeHTTPDiffBodyProportionFactor(c *WebObservationsContainer) { + for _, obs := range c.KnownTCPEndpoints { + // we need a valid body length and the body must not be truncated + measurement := obs.HTTPResponseBodyLength.UnwrapOr(0) + if measurement <= 0 || obs.HTTPResponseBodyIsTruncated.UnwrapOr(true) { + continue + } + + // we also need a valid control body length + control := obs.ControlHTTPResponseBodyLength.UnwrapOr(0) + if control <= 0 { + continue + } + + // compute the body proportion factor + var proportion float64 + if measurement >= control { + proportion = float64(control) / float64(measurement) + } else { + proportion = float64(measurement) / float64(control) + } + + // update state + wa.HTTPDiffBodyProportionFactor = optional.Some(proportion) + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" response. + break + } +} + +// ComputeHTTPDiffStatusCodeMatch computes the HTTPDiffStatusCodeMatch field. +func (wa *WebAnalysis) ComputeHTTPDiffStatusCodeMatch(c *WebObservationsContainer) { + for _, obs := range c.KnownTCPEndpoints { + // we need a positive status code for both + measurement := obs.HTTPResponseStatusCode.UnwrapOr(0) + if measurement <= 0 { + continue + } + control := obs.ControlHTTPResponseStatusCode.UnwrapOr(0) + if control <= 0 { + continue + } + + // compute whether there's a match including caveats + good := control == measurement + if !good && control/100 != 2 { + // Avoid comparison if it seems the TH failed _and_ the two + // status codes are not equal. Originally, this algorithm was + // https://github.com/measurement-kit/measurement-kit/blob/b55fbecb205be62c736249b689df0c45ae342804/src/libmeasurement_kit/ooni/web_connectivity.cpp#L60 + // and excluded the case where the TH failed with 5xx. + // + // Then, we discovered when implementing websteps a bunch + // of control failure modes that suggested to be more + // cautious. See https://github.com/bassosimone/websteps-illustrated/blob/632f27443ab9d94fb05efcf5e0b0c1ce190221e2/internal/engine/experiment/websteps/analysisweb.go#L137. + // + // However, it seems a bit retarded to avoid comparison + // when both the TH and the probe failed equally. See + // https://github.com/ooni/probe/issues/2287, which refers + // to a measurement where both the probe and the TH fail + // with 404, but we fail to say "status_code_match = true". + // + // See https://explorer.ooni.org/measurement/20220911T203447Z_webconnectivity_IT_30722_n1_YDZQZOHAziEJk6o9?input=http%3A%2F%2Fwww.webbox.com%2Findex.php + // for a measurement where this was fixed. + return + } + + // update state + wa.HTTPDiffStatusCodeMatch = optional.Some(good) + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" request. + break + } +} + +var analysisCommonHeaders = map[string]bool{ + "date": true, + "content-type": true, + "server": true, + "cache-control": true, + "vary": true, + "set-cookie": true, + "location": true, + "expires": true, + "x-powered-by": true, + "content-encoding": true, + "last-modified": true, + "accept-ranges": true, + "pragma": true, + "x-frame-options": true, + "etag": true, + "x-content-type-options": true, + "age": true, + "via": true, + "p3p": true, + "x-xss-protection": true, + "content-language": true, + "cf-ray": true, + "strict-transport-security": true, + "link": true, + "x-varnish": true, +} + +// ComputeHTTPDiffUncommonHeadersIntersection computes the HTTPDiffUncommonHeadersIntersection field. +func (wa *WebAnalysis) ComputeHTTPDiffUncommonHeadersIntersection(c *WebObservationsContainer) { + state := make(map[string]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we should only have control headers for the "final" response + measurement := obs.HTTPResponseHeadersKeys.UnwrapOr(nil) + if len(measurement) <= 0 { + continue + } + control := obs.ControlHTTPResponseHeadersKeys.UnwrapOr(nil) + if len(control) <= 0 { + continue + } + + const ( + byProbe = 1 << iota + byTH + ) + + matching := make(map[string]int64) + for key := range measurement { + key = strings.ToLower(key) + if _, ok := analysisCommonHeaders[key]; !ok { + matching[key] |= byProbe + } + } + + for key := range control { + key = strings.ToLower(key) + if _, ok := analysisCommonHeaders[key]; !ok { + matching[key] |= byTH + } + } + + // compute the intersection of uncommon headers + for key, value := range matching { + if (value & (byProbe | byTH)) == (byProbe | byTH) { + state[key] = true + } + } + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" request. + break + } + + wa.HTTPDiffUncommonHeadersIntersection = optional.Some(state) +} + +// ComputeHTTPDiffTitleDifferentLongWords computes the HTTPDiffTitleDifferentLongWords field. +func (wa *WebAnalysis) ComputeHTTPDiffTitleDifferentLongWords(c *WebObservationsContainer) { + state := make(map[string]bool) + + for _, obs := range c.KnownTCPEndpoints { + // we should only have control headers for the "final" response + measurement := obs.HTTPResponseTitle.UnwrapOr("") + if measurement == "" { + continue + } + control := obs.ControlHTTPResponseTitle.UnwrapOr("") + if control == "" { + continue + } + + const ( + byProbe = 1 << iota + byTH + ) + + // Implementation note + // + // We don't consider to match words that are shorter than 5 + // characters (5 is the average word length for english) + // + // The original implementation considered the word order but + // considering different languages it seems we could have less + // false positives by ignoring the word order. + words := make(map[string]int64) + const minWordLength = 5 + for _, word := range strings.Split(measurement, " ") { + if len(word) >= minWordLength { + words[strings.ToLower(word)] |= byProbe + } + } + for _, word := range strings.Split(control, " ") { + if len(word) >= minWordLength { + words[strings.ToLower(word)] |= byTH + } + } + + // check whether there's a long word that does not match + for word, score := range words { + if (score & (byProbe | byTH)) != (byProbe | byTH) { + state[word] = true + break + } + } + + // Implementation note: we only process the first observation that matches. + // + // This is fine(TM) as long as we have a single "final" request. + break + } + + wa.HTTPDiffTitleDifferentLongWords = optional.Some(state) +} diff --git a/internal/minipipeline/web.go b/internal/minipipeline/observation.go similarity index 67% rename from internal/minipipeline/web.go rename to internal/minipipeline/observation.go index 23e906746c..8b1d8c0cf7 100644 --- a/internal/minipipeline/web.go +++ b/internal/minipipeline/observation.go @@ -25,12 +25,9 @@ import ( // // We borrow this design from https://github.com/ooni/data. type WebObservation struct { - // ContainsDNSLookupInfo is true if this record contains DNS lookup information. - ContainsDNSLookupInfo bool - // DNSTransactionIDs contains the IDs of the DNS transactions that caused this // specific [WebObservation] to be generated by the mini pipeline. - DNSTransactionIDs []int64 + DNSTransactionIDs optional.Value[[]int64] // DNSDomain is the domain from which we resolved the IP address. This field // is empty whne this record wasn't generated by a DNS lookup. @@ -42,6 +39,9 @@ type WebObservation struct { // DNSQueryType is the type of the DNS query. DNSQueryType optional.Value[string] + // DNSEngine is the DNS engine that we're using. + DNSEngine optional.Value[string] + // IPAddress is the optional IP address that this observation is about. We derive this value // either from one or more DNS lookups, or because it's part of the input URL. When it's // empty, it means the associated DNS lookup operation failed. @@ -58,39 +58,30 @@ type WebObservation struct { IPAddressOrg optional.Value[string] // IPAddressBogon is true if IPAddres is a bogon. - IPAddressBogon bool + IPAddressBogon optional.Value[bool] // EndpointTransactionID is the transaction ID used by this endpoint. - EndpointTransactionID int64 + EndpointTransactionID optional.Value[int64] // EndpointProto is either "tcp" or "udp". - EndpointProto string + EndpointProto optional.Value[string] // EndpointPort is the port used by this endpoint. - EndpointPort string + EndpointPort optional.Value[string] // EndpointAddress is "${IPAddress}:${EndpointPort}" where "${IPAddress}" is // quoted using "[" and "]" in case of IPv6. - EndpointAddress string - - // ContainsTCPConnectInfo is true if this struct contains TCP connect information. - ContainsTCPConnectInfo bool + EndpointAddress optional.Value[string] // TCPConnectFailure is the optional TCP connect failure. TCPConnectFailure optional.Value[string] - // ContainsTLSHandshakeInfo is true if this struct contains TLS handshake information. - ContainsTLSHandshakeInfo bool - // TLSHandshakeFailure is the optional TLS handshake failure. TLSHandshakeFailure optional.Value[string] // TLSServerName is the optional TLS server name used. TLSServerName optional.Value[string] - // ContainsHTTPRoundTripInfo is true if this struct contains HTTP round trip information. - ContainsHTTPRoundTripInfo bool - // HTTPRequestURL is the HTTP request URL. HTTPRequestURL optional.Value[string] @@ -107,7 +98,7 @@ type WebObservation struct { HTTPResponseBodyIsTruncated optional.Value[bool] // HTTPResponseHeadersKeys contains the response headers keys. - HTTPResponseHeadersKeys map[string]bool + HTTPResponseHeadersKeys optional.Value[map[string]bool] // HTTPResponseLocation contains the location we're redirected to. HTTPResponseLocation optional.Value[string] @@ -115,15 +106,9 @@ type WebObservation struct { // HTTPResponseTitle contains the response title. HTTPResponseTitle optional.Value[string] - // ContainsControlDNSLookupInfo is true if we have DNS lookup info from the control. - ContainsControlDNSLookupInfo bool - // ControlDNSLookupFailure is the corresponding control DNS lookup failure. ControlDNSLookupFailure optional.Value[string] - // ContainsControlTCPConnectInfo is true if we have TCP connect info from the control. - ContainsControlTCPConnectInfo bool - // ControlTCPConnectFailure is the control's TCP connect failure. ControlTCPConnectFailure optional.Value[string] @@ -133,15 +118,9 @@ type WebObservation struct { // MatchWithControlIPAddressASN is true if also the control resolved from the same ASN. MatchWithControlIPAddressASN optional.Value[bool] - // ContainsControlTLSHandshakeInfo is true if we have TLS handshake info from the control. - ContainsControlTLSHandshakeInfo bool - // ControlTLSHandshakeFailure is the control's TLS handshake failure. ControlTLSHandshakeFailure optional.Value[string] - // ContainsControlHTTPInfo is true if we have HTTP info from the control. - ContainsControlHTTPInfo bool - // ControlHTTPFailure is the failure seen by the control. ControlHTTPFailure optional.Value[string] @@ -152,7 +131,7 @@ type WebObservation struct { ControlHTTPResponseBodyLength optional.Value[int64] // ControlHTTPResponseHeadersKeys contains the response headers keys. - ControlHTTPResponseHeadersKeys map[string]bool + ControlHTTPResponseHeadersKeys optional.Value[map[string]bool] // ControlHTTPResponseTitle contains the title seen by the control. ControlHTTPResponseTitle optional.Value[string] @@ -191,11 +170,11 @@ func (c *WebObservationsContainer) CreateDNSLookupFailures(evs ...*model.Archiva // create record obs := &WebObservation{ - ContainsDNSLookupInfo: true, - DNSTransactionIDs: []int64{ev.TransactionID}, - DNSDomain: optional.Some(ev.Hostname), - DNSLookupFailure: optional.Some(*ev.Failure), - DNSQueryType: optional.Some(ev.QueryType), + DNSTransactionIDs: optional.Some([]int64{ev.TransactionID}), + DNSDomain: optional.Some(ev.Hostname), + DNSLookupFailure: optional.Some(utilsStringPointerToString(ev.Failure)), + DNSQueryType: optional.Some(ev.QueryType), + DNSEngine: optional.Some(ev.Engine), } // add record @@ -232,19 +211,17 @@ func (c *WebObservationsContainer) CreateKnownIPAddresses(evs ...*model.Archival } // update the record - obs.ContainsDNSLookupInfo = true - obs.DNSTransactionIDs = append(obs.DNSTransactionIDs, ev.TransactionID) + obs.DNSTransactionIDs = optional.Some(append(obs.DNSTransactionIDs.UnwrapOr([]int64{}), ev.TransactionID)) obs.DNSDomain = optional.Some(ev.Hostname) - obs.DNSLookupFailure = optional.None[string]() + obs.DNSLookupFailure = optional.Some("") obs.DNSQueryType = optional.Some(ev.QueryType) + obs.DNSEngine = optional.Some(ev.Engine) obs.IPAddress = optional.Some(addr) - if asn := answer.ASN; asn != 0 { + if asn, asOrg, err := geoipx.LookupASN(addr); err == nil { obs.IPAddressASN = optional.Some(int64(asn)) + obs.IPAddressOrg = optional.Some(asOrg) } - if org := answer.ASOrgName; org != "" { - obs.IPAddressOrg = optional.Some(org) - } - obs.IPAddressBogon = netxlite.IsBogon(addr) + obs.IPAddressBogon = optional.Some(netxlite.IsBogon(addr)) } } } @@ -257,7 +234,7 @@ func (c *WebObservationsContainer) CreateKnownTCPEndpoints(evs ...*model.Archiva if !found { obs = &WebObservation{ IPAddress: optional.Some(ev.IP), - IPAddressBogon: netxlite.IsBogon(ev.IP), + IPAddressBogon: optional.Some(netxlite.IsBogon(ev.IP)), } if asn, asOrg, err := geoipx.LookupASN(ev.IP); err == nil { obs.IPAddressASN = optional.Some(int64(asn)) @@ -271,25 +248,18 @@ func (c *WebObservationsContainer) CreateKnownTCPEndpoints(evs ...*model.Archiva // while there also fill endpoint specific info portString := strconv.Itoa(ev.Port) obs = &WebObservation{ - ContainsDNSLookupInfo: obs.ContainsDNSLookupInfo, - DNSTransactionIDs: append([]int64{}, obs.DNSTransactionIDs...), - DNSDomain: obs.DNSDomain, - DNSLookupFailure: obs.DNSLookupFailure, - IPAddress: obs.IPAddress, - IPAddressASN: obs.IPAddressASN, - IPAddressOrg: obs.IPAddressOrg, - IPAddressBogon: obs.IPAddressBogon, - EndpointTransactionID: ev.TransactionID, - EndpointProto: "tcp", - EndpointPort: portString, - EndpointAddress: net.JoinHostPort(ev.IP, portString), - ContainsTCPConnectInfo: true, - TCPConnectFailure: optional.None[string](), - } - - // finish filling the endpoint - if value := ev.Status.Failure; value != nil { - obs.TCPConnectFailure = optional.Some(*value) + DNSTransactionIDs: optional.Some(append([]int64{}, obs.DNSTransactionIDs.UnwrapOr([]int64{})...)), + DNSDomain: obs.DNSDomain, + DNSLookupFailure: obs.DNSLookupFailure, + IPAddress: obs.IPAddress, + IPAddressASN: obs.IPAddressASN, + IPAddressOrg: obs.IPAddressOrg, + IPAddressBogon: obs.IPAddressBogon, + EndpointTransactionID: optional.Some(ev.TransactionID), + EndpointProto: optional.Some("tcp"), + EndpointPort: optional.Some(portString), + EndpointAddress: optional.Some(net.JoinHostPort(ev.IP, portString)), + TCPConnectFailure: optional.Some(utilsStringPointerToString(ev.Status.Failure)), } // register the observation @@ -307,13 +277,8 @@ func (c *WebObservationsContainer) NoteTLSHandshakeResults(evs ...*model.Archiva } // update the record - obs.ContainsTLSHandshakeInfo = true - if value := ev.Failure; value != nil { - obs.TLSHandshakeFailure = optional.Some(*value) - } - if value := ev.ServerName; value != "" { - obs.TLSServerName = optional.Some(value) - } + obs.TLSHandshakeFailure = optional.Some(utilsStringPointerToString(ev.Failure)) + obs.TLSServerName = optional.Some(ev.ServerName) } } @@ -327,22 +292,18 @@ func (c *WebObservationsContainer) NoteHTTPRoundTripResults(evs ...*model.Archiv } // update the record - obs.ContainsHTTPRoundTripInfo = true obs.HTTPRequestURL = optional.Some(ev.Request.URL) - if value := ev.Failure; value != nil { - obs.HTTPFailure = optional.Some(*value) - } - if value := ev.Response.Code; value != 0 { - obs.HTTPResponseStatusCode = optional.Some(value) - } - if value := int64(len(ev.Response.Body)); value > 0 { - obs.HTTPResponseBodyLength = optional.Some(value) - } + obs.HTTPFailure = optional.Some(utilsStringPointerToString(ev.Failure)) + obs.HTTPResponseStatusCode = optional.Some(ev.Response.Code) + obs.HTTPResponseBodyLength = optional.Some(int64(len(ev.Response.Body))) obs.HTTPResponseBodyIsTruncated = optional.Some(ev.Request.BodyIsTruncated) - obs.HTTPResponseHeadersKeys = make(map[string]bool) + + httpResponseHeadersKeys := make(map[string]bool) for key := range ev.Response.Headers { - obs.HTTPResponseHeadersKeys[key] = true + httpResponseHeadersKeys[key] = true } + obs.HTTPResponseHeadersKeys = optional.Some(httpResponseHeadersKeys) + if value := measurexlite.WebGetTitleString(string(ev.Response.Body)); value != "" { obs.HTTPResponseTitle = optional.Some(value) } @@ -365,126 +326,135 @@ func (c *WebObservationsContainer) NoteControlResults(req *model.THRequest, resp c.controlXrefDNSFailures(inputDomain, resp) c.controlMatchDNSLookupResults(inputDomain, resp) - c.controlXrefEndpointFailures(resp) + c.controlXrefTCPIPFailures(resp) + c.controlXrefTLSFailures(resp) c.controlXrefFinalHTTPResponse(resp) return nil } func (c *WebObservationsContainer) controlMatchDNSLookupResults(inputDomain string, resp *model.THResponse) { - // rebuild the list of ASNs using the probe's database because we want to - // use the same exact database we used for processing the measurement - thASNMap := make(map[string]int64) + // map out all the IP addresses resolved by the TH + thAddrMap := make(map[string]bool) + for _, addr := range resp.DNS.Addrs { + thAddrMap[addr] = true + } + + // map out all the ASN discovered by the TH using the same ASN + // database used to build the probe's ASN mapping + thASNMap := make(map[int64]bool) for _, addr := range resp.DNS.Addrs { if asn, _, err := geoipx.LookupASN(addr); err == nil && asn != 0 { - thASNMap[addr] = int64(asn) + thASNMap[int64(asn)] = true } } // walk through the list of known observations for _, obs := range c.KnownTCPEndpoints { - // skip entries without a domain to resolve (likely a bug) - domain := obs.DNSDomain.UnwrapOr("") - if domain == "" { - continue - } - // skip entries using a different domain than the one used by the TH - if domain != inputDomain { - continue - } - - // skip entries without an IP address (likely a bug) - addr := obs.IPAddress.UnwrapOr("") - if addr == "" { + domain := obs.DNSDomain.UnwrapOr("") + if domain == "" || domain != inputDomain { continue } - // attempt to access the TH's ASN map for the probe's address - thASN, found := thASNMap[addr] + // obtain the IP address + addr := obs.IPAddress.Unwrap() - // register whether they both resolved the same IP address - obs.MatchWithControlIPAddress = optional.Some(found) + // compute whether also the TH observed this addr + obs.MatchWithControlIPAddress = optional.Some(thAddrMap[addr]) // cannot continue unless we know the probe's ASN ourASN := obs.IPAddressASN.UnwrapOr(0) - if ourASN == 0 { + if ourASN <= 0 { continue } // register whether there is matching in terms of the ASNs - obs.MatchWithControlIPAddressASN = optional.Some(thASN == ourASN) + obs.MatchWithControlIPAddressASN = optional.Some(thASNMap[ourASN]) } } func (c *WebObservationsContainer) controlXrefDNSFailures(inputDomain string, resp *model.THResponse) { for _, obs := range c.DNSLookupFailures { - // skip cases where we don't know the domain we were using (bug) - domain := obs.DNSDomain.UnwrapOr("") - if domain == "" { + // skip cases where the input domain is different + if obs.DNSDomain.Unwrap() != inputDomain { continue } - // skip cases where the DNS lookup did not fail (bug) - probeFailure := obs.DNSLookupFailure.UnwrapOr("") - if probeFailure == "" { - continue - } + // register the corresponding DNS lookup failure + obs.ControlDNSLookupFailure = optional.Some(utilsStringPointerToString(resp.DNS.Failure)) + } +} - // skip cases where the domain is different - if domain != inputDomain { +func (c *WebObservationsContainer) controlXrefTCPIPFailures(resp *model.THResponse) { + for _, obs := range c.KnownTCPEndpoints { + endpointAddress := obs.EndpointAddress.Unwrap() + + // skip when we don't have a record + tcp, found := resp.TCPConnect[endpointAddress] + if !found { continue } - // register the corresponding DNS lookup failure - obs.ContainsControlDNSLookupInfo = true - if value := resp.DNS.Failure; value != nil { - obs.ControlDNSLookupFailure = optional.Some(*value) - } + // if there is a failure, save it + obs.ControlTCPConnectFailure = optional.Some(utilsStringPointerToString(tcp.Failure)) } } -func (c *WebObservationsContainer) controlXrefEndpointFailures(resp *model.THResponse) { +func (c *WebObservationsContainer) controlXrefTLSFailures(resp *model.THResponse) { for _, obs := range c.KnownTCPEndpoints { - // search for the corresponding control TCP connect entry - if tcp, found := resp.TCPConnect[obs.EndpointAddress]; found { - obs.ContainsControlTCPConnectInfo = true - if value := tcp.Failure; value != nil { - obs.ControlTCPConnectFailure = optional.Some(*value) - } + endpointAddress := obs.EndpointAddress.Unwrap() + + // skip entries without a TLS server name (e.g., entries where we did not TLS handshake) + // + // this check should be ~first to exclude cases w/o TLS + if obs.TLSServerName.IsNone() { + continue } + serverName := obs.TLSServerName.Unwrap() - // search for the corresponding TLS handshake entry for the same server name - if serverName := obs.TLSServerName.UnwrapOr(""); serverName != "" { - if tls, found := resp.TLSHandshake[obs.EndpointAddress]; found && tls.ServerName == serverName { - obs.ContainsControlTLSHandshakeInfo = true - if value := tls.Failure; value != nil { - obs.ControlTLSHandshakeFailure = optional.Some(*value) - } - } + // skip when we don't have a record + tls, found := resp.TLSHandshake[endpointAddress] + if !found { + continue + } + + // skip when the server name does not match + if tls.ServerName != serverName { + continue } + + // if there is a failure, save it + obs.ControlTLSHandshakeFailure = optional.Some(utilsStringPointerToString(tls.Failure)) } } func (c *WebObservationsContainer) controlXrefFinalHTTPResponse(resp *model.THResponse) { - obs := c.findFinalHTTPResponse().UnwrapOr(nil) - if obs == nil { + obsx := c.findFinalHTTPResponse() + if obsx.IsNone() { return } - obs.ContainsControlHTTPInfo = true - if value := resp.HTTPRequest.Failure; value != nil { - obs.ControlHTTPFailure = optional.Some(*value) - } + obs := obsx.Unwrap() + + // Implementation note: the TH response does not have a clear semantics for "missing" values + // therefore we are accepting as valid only values within the correct range + + obs.ControlHTTPFailure = optional.Some(utilsStringPointerToString(resp.HTTPRequest.Failure)) if value := resp.HTTPRequest.StatusCode; value > 0 { obs.ControlHTTPResponseStatusCode = optional.Some(value) } - if value := resp.HTTPRequest.BodyLength; value > 0 { + if value := resp.HTTPRequest.BodyLength; value >= 0 { obs.ControlHTTPResponseBodyLength = optional.Some(value) } - obs.ControlHTTPResponseHeadersKeys = make(map[string]bool) + + controlHTTPResponseHeadersKeys := make(map[string]bool) for key := range resp.HTTPRequest.Headers { - obs.ControlHTTPResponseHeadersKeys[key] = true + controlHTTPResponseHeadersKeys[key] = true + } + if len(controlHTTPResponseHeadersKeys) > 0 { + obs.ControlHTTPResponseHeadersKeys = optional.Some(controlHTTPResponseHeadersKeys) } + if v := resp.HTTPRequest.Title; v != "" { obs.ControlHTTPResponseTitle = optional.Some(v) } diff --git a/internal/minipipeline/utils.go b/internal/minipipeline/utils.go new file mode 100644 index 0000000000..f439000db9 --- /dev/null +++ b/internal/minipipeline/utils.go @@ -0,0 +1,8 @@ +package minipipeline + +func utilsStringPointerToString(failure *string) (out string) { + if failure != nil { + out = *failure + } + return +} From be189473fbe54626b59ed289dd601485b49bd0f6 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 24 Nov 2023 19:19:38 +0100 Subject: [PATCH 18/97] work --- .../webconnectivitylte/analysiscorev2.go | 371 ++++-------------- 1 file changed, 66 insertions(+), 305 deletions(-) diff --git a/internal/experiment/webconnectivitylte/analysiscorev2.go b/internal/experiment/webconnectivitylte/analysiscorev2.go index 86624d3f5b..f2acb629bb 100644 --- a/internal/experiment/webconnectivitylte/analysiscorev2.go +++ b/internal/experiment/webconnectivitylte/analysiscorev2.go @@ -6,7 +6,6 @@ import ( "github.com/ooni/probe-cli/v3/internal/minipipeline" "github.com/ooni/probe-cli/v3/internal/model" "github.com/ooni/probe-cli/v3/internal/must" - "github.com/ooni/probe-cli/v3/internal/netxlite" "github.com/ooni/probe-cli/v3/internal/runtimex" ) @@ -33,11 +32,28 @@ func (tk *TestKeys) analysisToplevelV2(logger model.Logger) { // dump the pipeline results for debugging purposes fmt.Printf("%s\n", must.MarshalJSON(container)) + // produce the analysis based on the observations + analysis := &minipipeline.WebAnalysis{} + analysis.ComputeDNSExperimentFailure(container) + analysis.ComputeDNSTransactionsWithBogons(container) + analysis.ComputeDNSTransactionsWithUnexpectedFailures(container) + analysis.ComputeDNSPossiblyInvalidAddrs(container) + analysis.ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) + analysis.ComputeHTTPDiffBodyProportionFactor(container) + analysis.ComputeHTTPDiffStatusCodeMatch(container) + analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) + analysis.ComputeHTTPDiffTitleDifferentLongWords(container) + + // dump the analysis results for debugging purposes + fmt.Printf("%s\n", must.MarshalJSON(analysis)) + // run top-level protocol-specific analysis algorithms - tk.analysisDNSToplevelV2(container, logger) - tk.analysisTCPIPToplevelV2(container, logger) - tk.analysisTLSToplevelV2(container, logger) - tk.analysisHTTPToplevelV2(container, logger) + tk.analysisDNSToplevelV2(analysis, logger) + tk.analysisTCPIPToplevelV2(analysis, logger) + tk.analysisTLSToplevelV2(analysis, logger) + tk.analysisHTTPToplevelV2(analysis, logger) } // analysisDNSToplevelV2 is the toplevel analysis function for DNS results. @@ -68,14 +84,22 @@ func (tk *TestKeys) analysisToplevelV2(logger model.Logger) { // // We explain how XDNSFlags is determined in the documentation of // the functions that this function calls to do its job. -func (tk *TestKeys) analysisDNSToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { +func (tk *TestKeys) analysisDNSToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here - // run the analysis algorithms - tk.analysisDNSExperimentFailureV2(container) - tk.analysisDNSBogonV2(container, logger) - //tk.analysisDNSDuplicateResponsesV2() // TODO(bassosimone): implement - tk.analysisDNSUnexpectedFailureV2(container, logger) - tk.analysisDNSUnexpectedAddrsV2(container, logger) + // assign flags depending on the analysis + if v := analysis.DNSExperimentFailure.UnwrapOr(""); v != "" { + tk.DNSExperimentFailure = &v + } + if v := analysis.DNSTransactionsWithBogons.UnwrapOr(nil); len(v) > 0 { + tk.DNSFlags |= AnalysisDNSBogon + } + if v := analysis.DNSTransactionsWithUnexpectedFailures.UnwrapOr(nil); len(v) > 0 { + tk.DNSFlags |= AnalysisDNSUnexpectedFailure + } + if v := analysis.DNSPossiblyInvalidAddrs.UnwrapOr(nil); len(v) > 0 { + tk.DNSFlags |= AnalysisDNSUnexpectedAddrs + } // compute DNS consistency if tk.DNSFlags != 0 { @@ -86,319 +110,56 @@ func (tk *TestKeys) analysisDNSToplevelV2(container *minipipeline.WebObservation logger.Info("DNSConsistency: consistent") tk.DNSConsistency = "consistent" } - -} - -func (tk *TestKeys) analysisDNSExperimentFailureV2(container *minipipeline.WebObservationsContainer) { - for _, obs := range container.DNSLookupFailures { - // skip if we don't know the engine - if obs.DNSEngine.IsNone() { - continue - } - - // make sure we only include the system resolver - switch obs.DNSEngine.Unwrap() { - case "getaddrinfo", "golang_net_resolver": - - // skip cases where the failure is not set, which is a bug - if obs.DNSLookupFailure.IsNone() { - continue - } - failure := obs.DNSLookupFailure.Unwrap() - - // skip cases where the query type is not set, which is a bug - if obs.DNSQueryType.IsNone() { - continue - } - queryType := obs.DNSQueryType.Unwrap() - - // skip cases where there's no DNS record for AAAA - if queryType == "AAAA" && failure == netxlite.FailureDNSNoAnswer { - continue - } - - // set the failure proper - tk.DNSExperimentFailure = &failure - - default: - // nothing - } - } -} - -func (tk *TestKeys) analysisDNSBogonV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - // Implementation note: any bogon IP address resolved by a DoH service - // is STILL suspicious since it should not happen. TODO(bassosimone): an - // even better algorithm could possibly check whether also the TH has - // observed bogon IP addrs and avoid flagging in such a case. - // - // See https://github.com/ooni/probe/issues/2274 for more information. - - for _, obs := range container.KnownTCPEndpoints { - // skip cases where there's no bogon - if obs.IPAddressBogon.IsNone() { - continue - } - if !obs.IPAddressBogon.Unwrap() { - continue - } - - // skip cases where the IP address is not defined (likely a bug) - if obs.IPAddress.IsNone() { - continue - } - addr := obs.IPAddress.Unwrap() - - // skip cases where the domain is not known (likely a bug) - if obs.DNSDomain.IsNone() { - continue - } - domain := obs.DNSDomain.Unwrap() - - // log and make sure we set the correct flag - logger.Warnf("DNS: got BOGON answer %s for domain %s (see %v)", addr, domain, obs.DNSTransactionIDs) - tk.DNSFlags |= AnalysisDNSBogon - - // continue processing so we print all the bogons we have - } -} - -func (tk *TestKeys) analysisDNSUnexpectedFailureV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - for _, obs := range container.DNSLookupFailures { - // skip cases with no failures - if obs.DNSLookupFailure.IsNone() { - continue - } - failure := obs.DNSLookupFailure.Unwrap() - if failure == "" { - continue - } - - // skip cases where also the control failed - if obs.ControlDNSLookupFailure.IsNone() { - continue - } - if obs.ControlDNSLookupFailure.Unwrap() != "" { - continue - } - - // A DoH failure is not information about the URL we're measuring - // but about the DoH service being blocked. - // - // See https://github.com/ooni/probe/issues/2274 - if obs.DNSEngine.IsNone() { - continue - } - engine := obs.DNSEngine.Unwrap() - if engine == "doh" { - continue - } - - // skip cases where the query type is not set, which is a bug - if obs.DNSQueryType.IsNone() { - continue - } - queryType := obs.DNSQueryType.Unwrap() - - // skip cases where there's no DNS record for AAAA - if queryType == "AAAA" && failure == netxlite.FailureDNSNoAnswer { - continue - } - - // log and make sure we set the correct flag - logger.Warnf("DNS: unexpected failure %s in %v", failure, obs.DNSTransactionIDs) - tk.DNSFlags |= AnalysisDNSUnexpectedFailure - - // continue processing so we print all the unexpected failures - } -} - -func (tk *TestKeys) analysisDNSUnexpectedAddrsV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - // Implementation note: in the case in which DoH returned answers, here - // it still feels okay to consider them. We should avoid flagging DoH - // failures as measurement failures but if DoH returns us some unexpected - // even-non-bogon addr, it seems worth flagging for now. - // - // See https://github.com/ooni/probe/issues/2274 - - for _, obs := range container.KnownTCPEndpoints { - // skip the cases with no address (which would be a bug) - if obs.IPAddress.IsNone() { - continue - } - addr := obs.IPAddress.Unwrap() - - // if the address was also resolved by the control, we're good - if !obs.MatchWithControlIPAddress.IsNone() { - if obs.MatchWithControlIPAddress.Unwrap() { - continue - } - logger.Infof("DNS: address %s: not resolved by TH", addr) - } - - // if we have a succesful TLS handshake for this addr, we're good - // - // note: this check is before the ASN check to avoid emitting a - // warning indicating an ASN mismatch when we do not have an ASN - if !obs.TLSHandshakeFailure.IsNone() { - if obs.TLSHandshakeFailure.Unwrap() == "" { - continue - } - logger.Infof("DNS: address %s: cannot confirm using TLS handshake", addr) - } - - // we must have a valid ASN at this point (or bug!) - if obs.IPAddressASN.IsNone() { - continue - } - asn := obs.IPAddressASN.Unwrap() - - // if the ASN was also observed by the control, we're good - if obs.MatchWithControlIPAddressASN.IsNone() { - continue - } - if obs.MatchWithControlIPAddressASN.Unwrap() { - continue - } - - // log and make sure we set the correct flag - logger.Warnf( - "DNS: address %s has unexpected AS%d and we cannot use TLS to confirm it", - addr, asn, - ) - tk.DNSFlags |= AnalysisDNSUnexpectedAddrs - - // continue processing so we print all the unexpected failures - } } // analysisTCPIPToplevelV2 is the toplevel analysis function for TCP/IP results. -func (tk *TestKeys) analysisTCPIPToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - for _, obs := range container.KnownTCPEndpoints { - // skip cases with no failures - if obs.TCPConnectFailure.IsNone() { - continue - } - failure := obs.TCPConnectFailure.Unwrap() - if failure == "" { - continue - } - - // skip cases where also the control failed - if obs.ControlTCPConnectFailure.IsNone() { - continue - } - if obs.ControlTCPConnectFailure.Unwrap() != "" { - continue - } +func (tk *TestKeys) analysisTCPIPToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here + // TODO(bassosimone): we're ignoring .Status here - // TODO(bassosimone): how do we set the .Blocked flag? - // maybe we can use the transactionID to go back to the right - // data structure and set the value or we can deprecate it - // and just ignore this corner case? - - // log and make sure we set the correct flag - logger.Warnf( - "TCP/IP: unexpected failure %s for %s (see %d)", - failure, - obs.EndpointAddress, - obs.EndpointTransactionID, - ) + if v := analysis.TCPTransactionsWithUnexpectedTCPConnectFailures.UnwrapOr(nil); len(v) > 0 { tk.BlockingFlags |= analysisFlagTCPIPBlocking - - // continue processing so we print all the unexpected failures } } // analysisTLSToplevelV2 is the toplevel analysis function for TLS results. -func (tk *TestKeys) analysisTLSToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - for _, obs := range container.KnownTCPEndpoints { - // skip cases with no failures - if obs.TLSHandshakeFailure.IsNone() { - continue - } - failure := obs.TLSHandshakeFailure.Unwrap() - if failure == "" { - continue - } - - // skip cases where also the control failed - if obs.ControlTLSHandshakeFailure.IsNone() { - continue - } - if obs.ControlTLSHandshakeFailure.Unwrap() != "" { - continue - } +func (tk *TestKeys) analysisTLSToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here - // log and make sure we set the correct flag - logger.Warnf( - "TLS: unexpected failure %s for %s (see %d)", - failure, - obs.EndpointAddress, - obs.EndpointTransactionID, - ) + if v := analysis.TCPTransactionsWithUnexpectedTLSHandshakeFailures.UnwrapOr(nil); len(v) > 0 { tk.BlockingFlags |= analysisFlagTLSBlocking - - // continue processing so we print all the unexpected failures } } // analysisHTTPToplevelV2 is the toplevel analysis function for HTTP results. -func (tk *TestKeys) analysisHTTPToplevelV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - tk.analysisHTTPUnexpectedFailureV2(container, logger) - tk.analysisHTTPDiffV2(container, logger) -} - -func (tk *TestKeys) analysisHTTPUnexpectedFailureV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - for _, obs := range container.KnownTCPEndpoints { - // skip cases with no failures - if obs.HTTPFailure.IsNone() { - continue - } - failure := obs.HTTPFailure.Unwrap() - if failure == "" { - continue - } +func (tk *TestKeys) analysisHTTPToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here + // TODO(bassosimone): we're missing the success with HTTPS flag... - // skip cases where also the control failed - if obs.ControlHTTPFailure.IsNone() { - continue - } - if obs.ControlHTTPFailure.UnwrapOr("") != "" { - continue - } + if v := analysis.TCPTransactionsWithUnexpectedHTTPFailures.UnwrapOr(nil); len(v) > 0 { + tk.BlockingFlags |= analysisFlagHTTPBlocking + } - // log and make sure we set the correct flag - logger.Warnf( - "TLS: unexpected failure %s for %s (see %d)", - failure, - obs.EndpointAddress, - obs.EndpointTransactionID, - ) - tk.BlockingFlags |= analysisFlagTLSBlocking + // same code structure as before + if !analysis.HTTPDiffStatusCodeMatch.IsNone() { + if analysis.HTTPDiffStatusCodeMatch.Unwrap() { - // continue processing so we print all the unexpected failures - } -} + if analysis.HTTPDiffBodyProportionFactor.UnwrapOr(0) > 0.7 { + tk.BlockingFlags |= analysisFlagSuccess + return + } -func (tk *TestKeys) analysisHTTPDiffV2(container *minipipeline.WebObservationsContainer, logger model.Logger) { - for _, obs := range container.KnownTCPEndpoints { - // skip cases with failures - if obs.HTTPFailure.IsNone() { - continue - } - failure := obs.HTTPFailure.Unwrap() - if failure != "" { - continue - } + if v := analysis.HTTPDiffUncommonHeadersIntersection.UnwrapOr(nil); len(v) > 0 { + tk.BlockingFlags |= analysisFlagSuccess + return + } - // skip cases where the control failed - if obs.ControlHTTPFailure.IsNone() { - continue - } - if obs.ControlHTTPFailure.UnwrapOr("") != "" { - continue + if !analysis.HTTPDiffTitleDifferentLongWords.IsNone() && + len(analysis.HTTPDiffTitleDifferentLongWords.Unwrap()) <= 0 { + tk.BlockingFlags |= analysisFlagSuccess + return + } } - } + tk.BlockingFlags |= analysisFlagHTTPDiff } From 18da855076cda3d944248141dbc82b70f48a91b5 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Sat, 25 Nov 2023 14:42:54 +0100 Subject: [PATCH 19/97] we're mostly done in terms of passing the existing QA tests --- .../webconnectivitylte/analysiscorev2.go | 38 ++++- .../webconnectivityqa/dnsblocking.go | 7 +- internal/minipipeline/analysis.go | 145 ++++++++++++++++-- internal/minipipeline/observation.go | 78 ++++------ 4 files changed, 206 insertions(+), 62 deletions(-) diff --git a/internal/experiment/webconnectivitylte/analysiscorev2.go b/internal/experiment/webconnectivitylte/analysiscorev2.go index f2acb629bb..5fac262fab 100644 --- a/internal/experiment/webconnectivitylte/analysiscorev2.go +++ b/internal/experiment/webconnectivitylte/analysiscorev2.go @@ -45,6 +45,9 @@ func (tk *TestKeys) analysisToplevelV2(logger model.Logger) { analysis.ComputeHTTPDiffStatusCodeMatch(container) analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) analysis.ComputeHTTPDiffTitleDifferentLongWords(container) + analysis.ComputeHTTPFinalResponses(container) + analysis.ComputeTCPTransactionsWithUnexplainedUnexpectedFailures(container) + analysis.ComputeHTTPFinalResponsesWithTLS(container) // dump the analysis results for debugging purposes fmt.Printf("%s\n", must.MarshalJSON(analysis)) @@ -140,6 +143,39 @@ func (tk *TestKeys) analysisHTTPToplevelV2(analysis *minipipeline.WebAnalysis, l tk.BlockingFlags |= analysisFlagHTTPBlocking } + // Detect cases where an error occurred during a redirect. For this to happen, we + // need to observe (1) no "final" responses and (2) unexpected, unexplained failures + numFinals := len(analysis.HTTPFinalResponses.UnwrapOr(nil)) + numUnexpectedUnexplained := len(analysis.TCPTransactionsWithUnexplainedUnexpectedFailures.UnwrapOr(nil)) + if numFinals <= 0 && numUnexpectedUnexplained > 0 { + tk.BlockingFlags |= analysisFlagHTTPBlocking + } + + // Special case for HTTPS + if len(analysis.HTTPFinalResponsesWithTLS.UnwrapOr(nil)) > 0 { + tk.BlockingFlags |= analysisFlagSuccess + } + + // attempt to fill the comparisons about the body + // + // XXX this code should probably always run + if !analysis.HTTPDiffStatusCodeMatch.IsNone() { + value := analysis.HTTPDiffStatusCodeMatch.Unwrap() + tk.StatusCodeMatch = &value + } + if !analysis.HTTPDiffBodyProportionFactor.IsNone() { + value := analysis.HTTPDiffBodyProportionFactor.UnwrapOr(0) > 0.7 + tk.BodyLengthMatch = &value + } + if !analysis.HTTPDiffUncommonHeadersIntersection.IsNone() { + value := len(analysis.HTTPDiffUncommonHeadersIntersection.Unwrap()) > 0 + tk.HeadersMatch = &value + } + if !analysis.HTTPDiffTitleDifferentLongWords.IsNone() { + value := len(analysis.HTTPDiffTitleDifferentLongWords.Unwrap()) <= 0 + tk.TitleMatch = &value + } + // same code structure as before if !analysis.HTTPDiffStatusCodeMatch.IsNone() { if analysis.HTTPDiffStatusCodeMatch.Unwrap() { @@ -160,6 +196,6 @@ func (tk *TestKeys) analysisHTTPToplevelV2(analysis *minipipeline.WebAnalysis, l return } } + tk.BlockingFlags |= analysisFlagHTTPDiff } - tk.BlockingFlags |= analysisFlagHTTPDiff } diff --git a/internal/experiment/webconnectivityqa/dnsblocking.go b/internal/experiment/webconnectivityqa/dnsblocking.go index dc27caa9b6..fd971d6a90 100644 --- a/internal/experiment/webconnectivityqa/dnsblocking.go +++ b/internal/experiment/webconnectivityqa/dnsblocking.go @@ -47,12 +47,15 @@ func dnsBlockingNXDOMAIN() *TestCase { Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { - // remove the record so that the DNS query returns NXDOMAIN, which is then - // converted into android_dns_cache_no_data by the emulation layer + // remove the record so that the DNS query returns NXDOMAIN env.ISPResolverConfig().RemoveRecord("www.example.com") }, ExpectErr: false, ExpectTestKeys: &testKeys{ + BodyLengthMatch: true, + StatusCodeMatch: true, + HeadersMatch: true, + TitleMatch: true, DNSExperimentFailure: "dns_nxdomain_error", DNSConsistency: "inconsistent", XStatus: 2080, // StatusExperimentDNS | StatusAnomalyDNS diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index 1132445b4c..be0404e09f 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -54,6 +54,15 @@ type WebAnalysis struct { // The generation algorithm assumes there's a single "final" response. HTTPDiffUncommonHeadersIntersection optional.Value[map[string]bool] + // HTTPFinalResponses contains the transaction IDs of "final" responses (i.e., responses + // that are like 2xx, 4xx, or 5xx). Typically, we expect to have a single response that + // if final when we're analyzing Web Connectivity LTE. + HTTPFinalResponses optional.Value[map[int64]bool] + + // HTTPFinalResponsesWithTLS is like HTTPFinalResponses but only includes the + // cases where we're using TLS to fetch the final response. + HTTPFinalResponsesWithTLS optional.Value[map[int64]bool] + // TCPTransactionsWithUnexpectedTCPConnectFailures contains the TCP transaction IDs that // contain TCP connect failures while the control measurement succeeded. TCPTransactionsWithUnexpectedTCPConnectFailures optional.Value[map[int64]bool] @@ -65,6 +74,11 @@ type WebAnalysis struct { // TCPSTransactionsWithUnexpectedHTTPFailures contains the TCP transaction IDs that // contain HTTP failures while the control measurement succeeded. TCPTransactionsWithUnexpectedHTTPFailures optional.Value[map[int64]bool] + + // TCPTransactionsWithUnexplainedUnexpectedFailures contains the TCP transaction IDs for + // which we cannot explain failures with the control information, but for which we expect + // to see a success because the control succeeded. + TCPTransactionsWithUnexplainedUnexpectedFailures optional.Value[map[int64]bool] } func analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs *WebObservation) bool { @@ -161,7 +175,7 @@ func (wa *WebAnalysis) ComputeDNSTransactionsWithUnexpectedFailures(c *WebObserv }) } - wa.DNSTransactionsWithBogons = optional.Some(state) + wa.DNSTransactionsWithUnexpectedFailures = optional.Some(state) } // ComputeDNSPossiblyInvalidAddrs computes the DNSPossiblyInvalidAddrs field. @@ -178,11 +192,6 @@ func (wa *WebAnalysis) ComputeDNSPossiblyInvalidAddrs(c *WebObservationsContaine for _, obs := range c.KnownTCPEndpoints { addr := obs.IPAddress.Unwrap() - // if the address was also resolved by the control, we're good - if obs.MatchWithControlIPAddress.UnwrapOr(false) { - continue - } - // if we have a succesful TLS handshake for this addr, we're good if obs.TLSHandshakeFailure.UnwrapOr("unknown_failure") == "" { // just in case another transaction succeded, clear the address from the state @@ -190,8 +199,13 @@ func (wa *WebAnalysis) ComputeDNSPossiblyInvalidAddrs(c *WebObservationsContaine continue } + // if the address was also resolved by the control, we're good + if obs.MatchWithControlIPAddress.UnwrapOr(true) { + continue + } + // if there's an ASN match with the control, we're good - if obs.MatchWithControlIPAddressASN.UnwrapOr(false) { + if obs.MatchWithControlIPAddressASN.UnwrapOr(true) { continue } @@ -271,6 +285,11 @@ func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexpectedHTTPFailures(c *WebOb // ComputeHTTPDiffBodyProportionFactor computes the HTTPDiffBodyProportionFactor field. func (wa *WebAnalysis) ComputeHTTPDiffBodyProportionFactor(c *WebObservationsContainer) { for _, obs := range c.KnownTCPEndpoints { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + // we need a valid body length and the body must not be truncated measurement := obs.HTTPResponseBodyLength.UnwrapOr(0) if measurement <= 0 || obs.HTTPResponseBodyIsTruncated.UnwrapOr(true) { @@ -304,6 +323,11 @@ func (wa *WebAnalysis) ComputeHTTPDiffBodyProportionFactor(c *WebObservationsCon // ComputeHTTPDiffStatusCodeMatch computes the HTTPDiffStatusCodeMatch field. func (wa *WebAnalysis) ComputeHTTPDiffStatusCodeMatch(c *WebObservationsContainer) { for _, obs := range c.KnownTCPEndpoints { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + // we need a positive status code for both measurement := obs.HTTPResponseStatusCode.UnwrapOr(0) if measurement <= 0 { @@ -380,7 +404,11 @@ func (wa *WebAnalysis) ComputeHTTPDiffUncommonHeadersIntersection(c *WebObservat state := make(map[string]bool) for _, obs := range c.KnownTCPEndpoints { - // we should only have control headers for the "final" response + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + measurement := obs.HTTPResponseHeadersKeys.UnwrapOr(nil) if len(measurement) <= 0 { continue @@ -420,10 +448,9 @@ func (wa *WebAnalysis) ComputeHTTPDiffUncommonHeadersIntersection(c *WebObservat // Implementation note: we only process the first observation that matches. // // This is fine(TM) as long as we have a single "final" request. + wa.HTTPDiffUncommonHeadersIntersection = optional.Some(state) break } - - wa.HTTPDiffUncommonHeadersIntersection = optional.Some(state) } // ComputeHTTPDiffTitleDifferentLongWords computes the HTTPDiffTitleDifferentLongWords field. @@ -431,7 +458,11 @@ func (wa *WebAnalysis) ComputeHTTPDiffTitleDifferentLongWords(c *WebObservations state := make(map[string]bool) for _, obs := range c.KnownTCPEndpoints { - // we should only have control headers for the "final" response + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + continue + } + measurement := obs.HTTPResponseTitle.UnwrapOr("") if measurement == "" { continue @@ -478,8 +509,98 @@ func (wa *WebAnalysis) ComputeHTTPDiffTitleDifferentLongWords(c *WebObservations // Implementation note: we only process the first observation that matches. // // This is fine(TM) as long as we have a single "final" request. + wa.HTTPDiffTitleDifferentLongWords = optional.Some(state) break } +} + +// ComputeHTTPFinalResponses computes the HTTPFinalResponses field. +func (wa *WebAnalysis) ComputeHTTPFinalResponses(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + txid := obs.EndpointTransactionID.UnwrapOr(0) + if txid <= 0 { + continue + } + if obs.HTTPResponseIsFinal.UnwrapOr(false) { + state[txid] = true + continue + } + } + + wa.HTTPFinalResponses = optional.Some(state) +} + +// ComputeTCPTransactionsWithUnexplainedUnexpectedFailures computes the TCPTransactionsWithUnexplainedUnexpectedFailures field. +func (wa *WebAnalysis) ComputeTCPTransactionsWithUnexplainedUnexpectedFailures(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + // exclude the cases where we have an expectation for TCP connect + // because in those cases we can provide an explanation + if !obs.ControlTCPConnectFailure.IsNone() { + continue + } + + // exclude the cases where we have an expectation for TLS handshake + // because in those cases we can provide an explanation + if !obs.ControlTLSHandshakeFailure.IsNone() { + continue + } + + // exclude the cases where the control failed because we are + // only interested into unexpected failures + if obs.ControlHTTPFailure.UnwrapOr("unknown_error") != "" { + continue + } + + // obtain the transaction ID + txid := obs.EndpointTransactionID.UnwrapOr(0) + if txid <= 0 { + continue + } + + // TODO(bassosimone): we need to remember about broken IPv6 here + + // include the cases where there was a TCP connect failure + if obs.TCPConnectFailure.UnwrapOr("") != "" { + state[txid] = true + continue + } + + // include the cases where there was a TLS handshake failure + if obs.TLSHandshakeFailure.UnwrapOr("") != "" { + state[txid] = true + continue + } + + // include the cases where there was an HTTP failure + if obs.HTTPFailure.UnwrapOr("") != "" { + state[txid] = true + continue + } + } + + wa.TCPTransactionsWithUnexplainedUnexpectedFailures = optional.Some(state) +} + +// ComputeHTTPFinalResponsesWithTLS computes the HTTPFinalResponsesWithTLS field. +func (wa *WebAnalysis) ComputeHTTPFinalResponsesWithTLS(c *WebObservationsContainer) { + state := make(map[int64]bool) + + for _, obs := range c.KnownTCPEndpoints { + txid := obs.EndpointTransactionID.UnwrapOr(0) + if txid <= 0 { + continue + } + isFinal := obs.HTTPResponseIsFinal.UnwrapOr(false) + tlsSuccess := obs.TLSHandshakeFailure.UnwrapOr("unknown_failure") == "" + if isFinal && tlsSuccess { + state[txid] = true + continue + } + } - wa.HTTPDiffTitleDifferentLongWords = optional.Some(state) + wa.HTTPFinalResponsesWithTLS = optional.Some(state) } diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go index 8b1d8c0cf7..ac8af9cda7 100644 --- a/internal/minipipeline/observation.go +++ b/internal/minipipeline/observation.go @@ -106,6 +106,9 @@ type WebObservation struct { // HTTPResponseTitle contains the response title. HTTPResponseTitle optional.Value[string] + // HTTPResponseIsFinal is true if the status code is 2xx, 4xx, or 5xx. + HTTPResponseIsFinal optional.Value[bool] + // ControlDNSLookupFailure is the corresponding control DNS lookup failure. ControlDNSLookupFailure optional.Value[string] @@ -312,6 +315,15 @@ func (c *WebObservationsContainer) NoteHTTPRoundTripResults(evs ...*model.Archiv obs.HTTPResponseLocation = optional.Some(string(value)) } } + + obs.HTTPResponseIsFinal = optional.Some((func() bool { + switch ev.Response.Code / 100 { + case 2, 4, 5: + return true + default: + return false + } + }())) } } @@ -328,7 +340,7 @@ func (c *WebObservationsContainer) NoteControlResults(req *model.THRequest, resp c.controlMatchDNSLookupResults(inputDomain, resp) c.controlXrefTCPIPFailures(resp) c.controlXrefTLSFailures(resp) - c.controlXrefFinalHTTPResponse(resp) + c.controlSetHTTPFinalResponseExpectation(resp) return nil } @@ -429,56 +441,28 @@ func (c *WebObservationsContainer) controlXrefTLSFailures(resp *model.THResponse } } -func (c *WebObservationsContainer) controlXrefFinalHTTPResponse(resp *model.THResponse) { - obsx := c.findFinalHTTPResponse() - if obsx.IsNone() { - return - } - obs := obsx.Unwrap() - +func (c *WebObservationsContainer) controlSetHTTPFinalResponseExpectation(resp *model.THResponse) { // Implementation note: the TH response does not have a clear semantics for "missing" values // therefore we are accepting as valid only values within the correct range + for _, obs := range c.KnownTCPEndpoints { + obs.ControlHTTPFailure = optional.Some(utilsStringPointerToString(resp.HTTPRequest.Failure)) + if value := resp.HTTPRequest.StatusCode; value > 0 { + obs.ControlHTTPResponseStatusCode = optional.Some(value) + } + if value := resp.HTTPRequest.BodyLength; value >= 0 { + obs.ControlHTTPResponseBodyLength = optional.Some(value) + } - obs.ControlHTTPFailure = optional.Some(utilsStringPointerToString(resp.HTTPRequest.Failure)) - if value := resp.HTTPRequest.StatusCode; value > 0 { - obs.ControlHTTPResponseStatusCode = optional.Some(value) - } - if value := resp.HTTPRequest.BodyLength; value >= 0 { - obs.ControlHTTPResponseBodyLength = optional.Some(value) - } - - controlHTTPResponseHeadersKeys := make(map[string]bool) - for key := range resp.HTTPRequest.Headers { - controlHTTPResponseHeadersKeys[key] = true - } - if len(controlHTTPResponseHeadersKeys) > 0 { - obs.ControlHTTPResponseHeadersKeys = optional.Some(controlHTTPResponseHeadersKeys) - } - - if v := resp.HTTPRequest.Title; v != "" { - obs.ControlHTTPResponseTitle = optional.Some(v) - } -} - -func (c *WebObservationsContainer) findFinalHTTPResponse() optional.Value[*WebObservation] { - // find all the possible final request candidates - var candidates []*WebObservation - for _, wobs := range c.KnownTCPEndpoints { - switch code := wobs.HTTPResponseStatusCode.UnwrapOr(0); code { - case 0, 301, 302, 307, 308: - // this is a redirect or a nonexisting response in the case of zero - - default: - // found candidate - candidates = append(candidates, wobs) + controlHTTPResponseHeadersKeys := make(map[string]bool) + for key := range resp.HTTPRequest.Headers { + controlHTTPResponseHeadersKeys[key] = true + } + if len(controlHTTPResponseHeadersKeys) > 0 { + obs.ControlHTTPResponseHeadersKeys = optional.Some(controlHTTPResponseHeadersKeys) } - } - // Implementation note: the final request is a request that is not a redirect and - // we expect to see just one of them. This code is written assuming we will have - // more than a final request in the future and to fail in such a case. - if len(candidates) != 1 { - return optional.None[*WebObservation]() + if v := resp.HTTPRequest.Title; v != "" { + obs.ControlHTTPResponseTitle = optional.Some(v) + } } - return optional.Some(candidates[0]) } From e7764c8b9fa7ffde349d92974d17864a475303bb Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Sat, 25 Nov 2023 14:55:09 +0100 Subject: [PATCH 20/97] tests now green what remains to be done now is to make sure we make green all the tests that are currently skipped we also need to account for differences between the two --- internal/experiment/webconnectivityqa/badssl.go | 4 ++++ internal/experiment/webconnectivityqa/dnsblocking.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/internal/experiment/webconnectivityqa/badssl.go b/internal/experiment/webconnectivityqa/badssl.go index 573cec49ca..3347df5959 100644 --- a/internal/experiment/webconnectivityqa/badssl.go +++ b/internal/experiment/webconnectivityqa/badssl.go @@ -89,6 +89,10 @@ func badSSLWithUnknownAuthorityWithInconsistentDNS() *TestCase { }, ExpectErr: false, ExpectTestKeys: &testKeys{ + BodyLengthMatch: true, + StatusCodeMatch: true, + HeadersMatch: true, + TitleMatch: true, DNSConsistency: "inconsistent", HTTPExperimentFailure: "ssl_unknown_authority", XStatus: 9248, // StatusExperimentHTTP | StatusAnomalyTLSHandshake | StatusAnomalyDNS diff --git a/internal/experiment/webconnectivityqa/dnsblocking.go b/internal/experiment/webconnectivityqa/dnsblocking.go index fd971d6a90..ef2d70b256 100644 --- a/internal/experiment/webconnectivityqa/dnsblocking.go +++ b/internal/experiment/webconnectivityqa/dnsblocking.go @@ -21,6 +21,10 @@ func dnsBlockingAndroidDNSCacheNoData() *TestCase { }, ExpectErr: false, ExpectTestKeys: &testKeys{ + BodyLengthMatch: true, + StatusCodeMatch: true, + HeadersMatch: true, + TitleMatch: true, DNSExperimentFailure: "android_dns_cache_no_data", DNSConsistency: "inconsistent", XStatus: 2080, // StatusExperimentDNS | StatusAnomalyDNS From dac41708fcc1bb24c9166be5191eea883cd93b35 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Sun, 26 Nov 2023 11:49:00 +0100 Subject: [PATCH 21/97] make more test cases work with LTE --- .../experiment/webconnectivityqa/badssl.go | 18 +++++++++--------- .../experiment/webconnectivityqa/control.go | 7 ++++--- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/internal/experiment/webconnectivityqa/badssl.go b/internal/experiment/webconnectivityqa/badssl.go index 3347df5959..6043d586b3 100644 --- a/internal/experiment/webconnectivityqa/badssl.go +++ b/internal/experiment/webconnectivityqa/badssl.go @@ -10,7 +10,7 @@ import ( func badSSLWithExpiredCertificate() *TestCase { return &TestCase{ Name: "badSSLWithExpiredCertificate", - Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now + Flags: 0, Input: "https://expired.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -21,8 +21,8 @@ func badSSLWithExpiredCertificate() *TestCase { HTTPExperimentFailure: "ssl_invalid_certificate", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured - Accessible: nil, - Blocking: nil, + Accessible: false, + Blocking: false, }, } } @@ -32,7 +32,7 @@ func badSSLWithExpiredCertificate() *TestCase { func badSSLWithWrongServerName() *TestCase { return &TestCase{ Name: "badSSLWithWrongServerName", - Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now + Flags: 0, Input: "https://wrong.host.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -43,8 +43,8 @@ func badSSLWithWrongServerName() *TestCase { HTTPExperimentFailure: "ssl_invalid_hostname", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured - Accessible: nil, - Blocking: nil, + Accessible: false, + Blocking: false, }, } } @@ -53,7 +53,7 @@ func badSSLWithWrongServerName() *TestCase { func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { return &TestCase{ Name: "badSSLWithUnknownAuthorityWithConsistentDNS", - Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now + Flags: 0, Input: "https://untrusted-root.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -64,8 +64,8 @@ func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { HTTPExperimentFailure: "ssl_unknown_authority", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured - Accessible: nil, - Blocking: nil, + Accessible: false, + Blocking: false, }, } } diff --git a/internal/experiment/webconnectivityqa/control.go b/internal/experiment/webconnectivityqa/control.go index a831bc156a..9c59ac3682 100644 --- a/internal/experiment/webconnectivityqa/control.go +++ b/internal/experiment/webconnectivityqa/control.go @@ -56,7 +56,7 @@ func controlFailureWithSuccessfulHTTPWebsite() *TestCase { func controlFailureWithSuccessfulHTTPSWebsite() *TestCase { return &TestCase{ Name: "controlFailureWithSuccessfulHTTPSWebsite", - Flags: TestCaseFlagNoLTE, // because it (correctly!) sets the DNS as consistent thanks to TLS + Flags: 0, Input: "https://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -89,8 +89,9 @@ func controlFailureWithSuccessfulHTTPSWebsite() *TestCase { ExpectErr: false, ExpectTestKeys: &testKeys{ ControlFailure: "unknown_failure: httpapi: all endpoints failed: [ connection_reset; connection_reset; connection_reset; connection_reset;]", - XStatus: 1, // StatusSuccessSecure - XNullNullFlags: 8, // analysisFlagNullNullSuccessfulHTTPS + DNSConsistency: "consistent", + XStatus: 1, // StatusSuccessSecure + XBlockingFlags: 32, // analysisFlagSuccess Accessible: true, Blocking: false, }, From 258d7fb4ae9ebbdd7c08fa8ea08d93bd0cfa1ec9 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 12:27:32 +0100 Subject: [PATCH 22/97] we now pass all tests then next step is to sort out this mess :-) --- .../experiment/webconnectivityqa/control.go | 3 +- .../webconnectivityqa/dnshijacking.go | 16 +++++------ .../experiment/webconnectivityqa/httpdiff.go | 6 ++-- .../experiment/webconnectivityqa/redirect.go | 14 ++++------ .../experiment/webconnectivityqa/success.go | 6 ++-- .../webconnectivityqa/tcpblocking.go | 6 +++- .../experiment/webconnectivityqa/testcase.go | 4 +-- internal/minipipeline/analysis.go | 28 +++++++++++++++---- internal/minipipeline/observation.go | 12 ++++++-- 9 files changed, 61 insertions(+), 34 deletions(-) diff --git a/internal/experiment/webconnectivityqa/control.go b/internal/experiment/webconnectivityqa/control.go index 9c59ac3682..3767032066 100644 --- a/internal/experiment/webconnectivityqa/control.go +++ b/internal/experiment/webconnectivityqa/control.go @@ -11,7 +11,7 @@ import ( func controlFailureWithSuccessfulHTTPWebsite() *TestCase { return &TestCase{ Name: "controlFailureWithSuccessfulHTTPWebsite", - Flags: TestCaseFlagNoLTE, // BUG: has "consistent" DNS but still blocking=null and accessible=null + Flags: 0, Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -44,6 +44,7 @@ func controlFailureWithSuccessfulHTTPWebsite() *TestCase { ExpectErr: false, ExpectTestKeys: &testKeys{ ControlFailure: "unknown_failure: httpapi: all endpoints failed: [ connection_reset; connection_reset; connection_reset; connection_reset;]", + DNSConsistency: "consistent", XStatus: 8, // StatusAnomalyControlUnreachable Accessible: nil, Blocking: nil, diff --git a/internal/experiment/webconnectivityqa/dnshijacking.go b/internal/experiment/webconnectivityqa/dnshijacking.go index 75a0cbf66d..df2264ab33 100644 --- a/internal/experiment/webconnectivityqa/dnshijacking.go +++ b/internal/experiment/webconnectivityqa/dnshijacking.go @@ -12,7 +12,7 @@ func dnsHijackingToProxyWithHTTPURL() *TestCase { // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ Name: "dnsHijackingToProxyWithHTTPURL", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks the DNS is consistent + Flags: 0, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -33,11 +33,11 @@ func dnsHijackingToProxyWithHTTPURL() *TestCase { StatusCodeMatch: true, HeadersMatch: true, TitleMatch: true, - XStatus: 2, // StatusSuccessCleartext - XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess - Accessible: true, - Blocking: false, + XStatus: 2, // StatusSuccessCleartext + XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs + XBlockingFlags: 33, // AnalysisFlagDNSBlocking | analysisFlagSuccess + Accessible: false, // FIXME: this is probably incorrect! + Blocking: "dns", }, } } @@ -49,7 +49,7 @@ func dnsHijackingToProxyWithHTTPSURL() *TestCase { // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ Name: "dnsHijackingToProxyWithHTTPSURL", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks the DNS is consistent + Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -64,7 +64,7 @@ func dnsHijackingToProxyWithHTTPSURL() *TestCase { }, ExpectErr: false, ExpectTestKeys: &testKeys{ - DNSConsistency: "inconsistent", + DNSConsistency: "consistent", BodyLengthMatch: true, BodyProportion: 1, StatusCodeMatch: true, diff --git a/internal/experiment/webconnectivityqa/httpdiff.go b/internal/experiment/webconnectivityqa/httpdiff.go index 2a619337f1..aa6650e94c 100644 --- a/internal/experiment/webconnectivityqa/httpdiff.go +++ b/internal/experiment/webconnectivityqa/httpdiff.go @@ -11,7 +11,7 @@ import ( func httpDiffWithConsistentDNS() *TestCase { return &TestCase{ Name: "httpDiffWithConsistentDNS", - Flags: TestCaseFlagNoLTE, // BUG: LTE does not set whether the headers match + Flags: 0, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -49,7 +49,7 @@ func httpDiffWithConsistentDNS() *TestCase { func httpDiffWithInconsistentDNS() *TestCase { return &TestCase{ Name: "httpDiffWithInconsistentDNS", - Flags: TestCaseFlagNoLTE, // BUG: LTE does not detect any HTTP diff here + Flags: 0, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -92,7 +92,7 @@ func httpDiffWithInconsistentDNS() *TestCase { TitleMatch: false, XStatus: 96, // StatusAnomalyHTTPDiff | StatusAnomalyDNS XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 35, // analysisFlagSuccess | analysisFlagDNSBlocking | analysisFlagTCPIPBlocking + XBlockingFlags: 17, // analysisFlagDNSBlocking | analysisFlagHTTPDiff Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index 248a3c29ea..4be8315e7b 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -162,12 +162,8 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { // works but then there's NXDOMAIN for the URL's domain func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { return &TestCase{ - Name: "redirectWithConsistentDNSAndThenNXDOMAIN", - // TODO(bassosimone): this test case cannot be fixed by providing a suitable HTTP - // response because we do not create any HTTP response during the DNS step. We would - // need to create one in order for this test case to become green. In turn, I think - // to overcome this case, we need to restructure LTE's implementation a bit. - Flags: TestCaseFlagNoLTE, + Name: "redirectWithConsistentDNSAndThenNXDOMAIN", + Flags: 0, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -182,11 +178,11 @@ func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { ExpectErr: false, ExpectTestKeys: &testKeys{ DNSExperimentFailure: nil, - DNSConsistency: "consistent", + DNSConsistency: "inconsistent", HTTPExperimentFailure: "dns_nxdomain_error", XStatus: 8224, // StatusExperimentHTTP | StatusAnomalyDNS - XDNSFlags: 0, - XBlockingFlags: 8, // analysisFlagHTTPBlocking + XDNSFlags: 2, // AnalysisDNSUnexpectedFailure + XBlockingFlags: 1, // analysisFlagDNSBlocking Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/success.go b/internal/experiment/webconnectivityqa/success.go index e2e628cbf7..25906d0df2 100644 --- a/internal/experiment/webconnectivityqa/success.go +++ b/internal/experiment/webconnectivityqa/success.go @@ -1,7 +1,7 @@ package webconnectivityqa // successWithHTTP ensures we can successfully measure an HTTP URL. -func sucessWithHTTP() *TestCase { +func successWithHTTP() *TestCase { return &TestCase{ Name: "successWithHTTP", Flags: 0, @@ -24,10 +24,10 @@ func sucessWithHTTP() *TestCase { } // successWithHTTPS ensures we can successfully measure an HTTPS URL. -func sucessWithHTTPS() *TestCase { +func successWithHTTPS() *TestCase { return &TestCase{ Name: "successWithHTTPS", - Flags: TestCaseFlagNoLTE, // it does not set any HTTP comparison value with HTTPS + Flags: 0, Input: "https://www.example.com/", Configure: nil, ExpectErr: false, diff --git a/internal/experiment/webconnectivityqa/tcpblocking.go b/internal/experiment/webconnectivityqa/tcpblocking.go index 9bc89515ec..dca273d331 100644 --- a/internal/experiment/webconnectivityqa/tcpblocking.go +++ b/internal/experiment/webconnectivityqa/tcpblocking.go @@ -44,7 +44,7 @@ func tcpBlockingConnectTimeout() *TestCase { func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { return &TestCase{ Name: "tcpBlockingConnectionRefusedWithInconsistentDNS", - Flags: TestCaseFlagNoLTE, // with LTE we can bypass the blocking + Flags: 0, Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -67,6 +67,10 @@ func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { }, ExpectErr: false, ExpectTestKeys: &testKeys{ + BodyLengthMatch: true, + StatusCodeMatch: true, + HeadersMatch: true, + TitleMatch: true, DNSExperimentFailure: nil, DNSConsistency: "inconsistent", HTTPExperimentFailure: "connection_refused", diff --git a/internal/experiment/webconnectivityqa/testcase.go b/internal/experiment/webconnectivityqa/testcase.go index 37ef5919db..d9f7545f0d 100644 --- a/internal/experiment/webconnectivityqa/testcase.go +++ b/internal/experiment/webconnectivityqa/testcase.go @@ -64,8 +64,8 @@ func AllTestCases() []*TestCase { redirectWithConsistentDNSAndThenTimeoutForHTTP(), redirectWithConsistentDNSAndThenTimeoutForHTTPS(), - sucessWithHTTP(), - sucessWithHTTPS(), + successWithHTTP(), + successWithHTTPS(), tcpBlockingConnectTimeout(), tcpBlockingConnectionRefusedWithInconsistentDNS(), diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index be0404e09f..152ce905f1 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -89,6 +89,20 @@ func analysisDNSLookupFailureIsDNSNoAnswerForAAAA(obs *WebObservation) bool { func (wa *WebAnalysis) ComputeDNSExperimentFailure(c *WebObservationsContainer) { for _, obs := range c.DNSLookupFailures { + // we should only consider the first DNS lookup to be consistent with + // what was previously returned by Web Connectivity v0.4 + probeDomain := obs.DNSDomain.UnwrapOr("") + if probeDomain == "" { + continue + } + thDomain := obs.ControlDNSDomain.UnwrapOr("") + if thDomain == "" { + continue + } + if probeDomain != thDomain { + continue + } + // make sure we only include the system resolver switch obs.DNSEngine.UnwrapOr("") { case "getaddrinfo", "golang_net_resolver": @@ -409,14 +423,18 @@ func (wa *WebAnalysis) ComputeHTTPDiffUncommonHeadersIntersection(c *WebObservat continue } - measurement := obs.HTTPResponseHeadersKeys.UnwrapOr(nil) - if len(measurement) <= 0 { + // We should only perform the comparison if we have valid control data. Because + // the headers could legitimately be empty, let's use the status code here. + if obs.ControlHTTPResponseStatusCode.UnwrapOr(0) <= 0 { continue } + + // Implementation note: here we need to continue running when either + // headers are empty in order to produce an empty intersection. If we'd stop + // after noticing that either dictionary is empty, we'd product a nil + // analysis result, which causes QA differences with v0.4. + measurement := obs.HTTPResponseHeadersKeys.UnwrapOr(nil) control := obs.ControlHTTPResponseHeadersKeys.UnwrapOr(nil) - if len(control) <= 0 { - continue - } const ( byProbe = 1 << iota diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go index ac8af9cda7..43b3fc9c2c 100644 --- a/internal/minipipeline/observation.go +++ b/internal/minipipeline/observation.go @@ -109,6 +109,11 @@ type WebObservation struct { // HTTPResponseIsFinal is true if the status code is 2xx, 4xx, or 5xx. HTTPResponseIsFinal optional.Value[bool] + // ControlDNSDomain is the domain used by the control for its DNS lookup. This + // field is set only when the domain used by the control matches the domain + // used by the probe. So, we won't see this record for redirects using a different domain. + ControlDNSDomain optional.Value[string] + // ControlDNSLookupFailure is the corresponding control DNS lookup failure. ControlDNSLookupFailure optional.Value[string] @@ -336,7 +341,7 @@ func (c *WebObservationsContainer) NoteControlResults(req *model.THRequest, resp } inputDomain := URL.Hostname() - c.controlXrefDNSFailures(inputDomain, resp) + c.controlXrefDNSQueries(inputDomain, resp) c.controlMatchDNSLookupResults(inputDomain, resp) c.controlXrefTCPIPFailures(resp) c.controlXrefTLSFailures(resp) @@ -386,13 +391,16 @@ func (c *WebObservationsContainer) controlMatchDNSLookupResults(inputDomain stri } } -func (c *WebObservationsContainer) controlXrefDNSFailures(inputDomain string, resp *model.THResponse) { +func (c *WebObservationsContainer) controlXrefDNSQueries(inputDomain string, resp *model.THResponse) { for _, obs := range c.DNSLookupFailures { // skip cases where the input domain is different if obs.DNSDomain.Unwrap() != inputDomain { continue } + // register the corresponding DNS domain used by the control + obs.ControlDNSDomain = optional.Some(inputDomain) + // register the corresponding DNS lookup failure obs.ControlDNSLookupFailure = optional.Some(utilsStringPointerToString(resp.DNS.Failure)) } From c6a49ff9b119f9aa70a147d15591214ef4114ee5 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 12:46:26 +0100 Subject: [PATCH 23/97] [ci skip] remove TODO --- internal/experiment/webconnectivityqa/tcpblocking.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/internal/experiment/webconnectivityqa/tcpblocking.go b/internal/experiment/webconnectivityqa/tcpblocking.go index dca273d331..3dfdbc5960 100644 --- a/internal/experiment/webconnectivityqa/tcpblocking.go +++ b/internal/experiment/webconnectivityqa/tcpblocking.go @@ -11,11 +11,7 @@ import ( // where the connection is timed out. func tcpBlockingConnectTimeout() *TestCase { return &TestCase{ - Name: "tcpBlockingConnectTimeout", - // TODO(bassosimone): this test case transitions from 2 (TCP/IP blocking) to - // 10 (both TCP/IP blocking and HTTP blocking). The reason why this happens is - // that we're now adding an HTTP request to the mix. This is unfortunate. We - // should not flag HTTP failures here inside of the bitmask. + Name: "tcpBlockingConnectTimeout", Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { From 8d25a65d8eb13f4b457e3b29b8dd38f040ec4f74 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 15:12:40 +0100 Subject: [PATCH 24/97] fix tricky case with order of DNS processing (I am thankful there's a ~comprehensive test suite.) --- .../webconnectivityqa/dnshijacking.go | 12 ++++++------ internal/minipipeline/analysis.go | 18 ++++++++++++++++-- internal/minipipeline/observation.go | 18 ++++++++++++++---- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/internal/experiment/webconnectivityqa/dnshijacking.go b/internal/experiment/webconnectivityqa/dnshijacking.go index df2264ab33..612d9ab98e 100644 --- a/internal/experiment/webconnectivityqa/dnshijacking.go +++ b/internal/experiment/webconnectivityqa/dnshijacking.go @@ -27,17 +27,17 @@ func dnsHijackingToProxyWithHTTPURL() *TestCase { }, ExpectErr: false, ExpectTestKeys: &testKeys{ - DNSConsistency: "inconsistent", + DNSConsistency: "consistent", BodyLengthMatch: true, BodyProportion: 1, StatusCodeMatch: true, HeadersMatch: true, TitleMatch: true, - XStatus: 2, // StatusSuccessCleartext - XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 33, // AnalysisFlagDNSBlocking | analysisFlagSuccess - Accessible: false, // FIXME: this is probably incorrect! - Blocking: "dns", + XStatus: 2, // StatusSuccessCleartext + XDNSFlags: 0, + XBlockingFlags: 32, // analysisFlagSuccess + Accessible: true, + Blocking: false, }, } } diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index 152ce905f1..dd5a77d315 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -203,13 +203,12 @@ func (wa *WebAnalysis) ComputeDNSPossiblyInvalidAddrs(c *WebObservationsContaine state := make(map[string]bool) + // pass 1: insert candidates into the state map for _, obs := range c.KnownTCPEndpoints { addr := obs.IPAddress.Unwrap() // if we have a succesful TLS handshake for this addr, we're good if obs.TLSHandshakeFailure.UnwrapOr("unknown_failure") == "" { - // just in case another transaction succeded, clear the address from the state - delete(state, addr) continue } @@ -227,6 +226,21 @@ func (wa *WebAnalysis) ComputeDNSPossiblyInvalidAddrs(c *WebObservationsContaine state[addr] = true } + // pass 2: remove IP addresses we could validate using TLS handshakes + // + // we need to perform this second step because the order with which we walk + // through c.KnownTCPEndpoints is not fixed _and_ in any case, there is no + // guarantee that we'll observe 80/tcp entries _before_ 443/tcp ones. So, by + // applying this algorithm as a second step, we ensure that we're always + // able to remove TLS-validate addresses from the "bad" set. + for _, obs := range c.KnownTCPEndpoints { + addr := obs.IPAddress.Unwrap() + if obs.TLSHandshakeFailure.UnwrapOr("") != "" { + continue + } + delete(state, addr) + } + wa.DNSPossiblyInvalidAddrs = optional.Some(state) } diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go index 43b3fc9c2c..298f0b0ab5 100644 --- a/internal/minipipeline/observation.go +++ b/internal/minipipeline/observation.go @@ -368,15 +368,25 @@ func (c *WebObservationsContainer) controlMatchDNSLookupResults(inputDomain stri // walk through the list of known observations for _, obs := range c.KnownTCPEndpoints { - // skip entries using a different domain than the one used by the TH + // obtain the domain from which we obtained the endpoint's address domain := obs.DNSDomain.UnwrapOr("") - if domain == "" || domain != inputDomain { - continue - } // obtain the IP address addr := obs.IPAddress.Unwrap() + // handle the case from which the IP address has been provided by the control, which + // is a case where the domain is empty and the IP address is in thAddrMap + if domain == "" && thAddrMap[addr] { + obs.MatchWithControlIPAddress = optional.Some(true) + obs.MatchWithControlIPAddressASN = optional.Some(true) + continue + } + + // skip entries using a different domain than the one used by the TH + if domain == "" || domain != inputDomain { + continue + } + // compute whether also the TH observed this addr obs.MatchWithControlIPAddress = optional.Some(thAddrMap[addr]) From 44541ea15df700a70f53377699d82669f3155252 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 15:21:56 +0100 Subject: [PATCH 25/97] adjust test case where actually dns is consistent with lte this happens because LTE sucessfully handshakes with the wrong address --- internal/experiment/webconnectivityqa/httpdiff.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/experiment/webconnectivityqa/httpdiff.go b/internal/experiment/webconnectivityqa/httpdiff.go index aa6650e94c..32514ab2f6 100644 --- a/internal/experiment/webconnectivityqa/httpdiff.go +++ b/internal/experiment/webconnectivityqa/httpdiff.go @@ -54,7 +54,7 @@ func httpDiffWithInconsistentDNS() *TestCase { Configure: func(env *netemx.QAEnv) { // add DPI rule to force all the cleartext DNS queries to - // point the client to used the ISPProxyAddress + // point the client to use the ISPProxyAddress env.DPIEngine().AddRule(&netem.DPISpoofDNSResponse{ Addresses: []string{netemx.ISPProxyAddress}, Logger: env.Logger(), @@ -83,7 +83,7 @@ func httpDiffWithInconsistentDNS() *TestCase { ExpectErr: false, ExpectTestKeys: &testKeys{ DNSExperimentFailure: nil, - DNSConsistency: "inconsistent", + DNSConsistency: "consistent", HTTPExperimentFailure: nil, BodyLengthMatch: false, BodyProportion: 0.12263535551206783, @@ -91,10 +91,10 @@ func httpDiffWithInconsistentDNS() *TestCase { HeadersMatch: false, TitleMatch: false, XStatus: 96, // StatusAnomalyHTTPDiff | StatusAnomalyDNS - XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 17, // analysisFlagDNSBlocking | analysisFlagHTTPDiff + XDNSFlags: 0, + XBlockingFlags: 16, // analysisFlagHTTPDiff Accessible: false, - Blocking: "dns", + Blocking: "http-diff", }, } } From 183f5242b6b8dbef90f218810b5d8babdbc25ffc Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 15:37:48 +0100 Subject: [PATCH 26/97] make all lte tests pass consistently --- internal/experiment/webconnectivityqa/tcpblocking.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/experiment/webconnectivityqa/tcpblocking.go b/internal/experiment/webconnectivityqa/tcpblocking.go index 3dfdbc5960..c48a878d22 100644 --- a/internal/experiment/webconnectivityqa/tcpblocking.go +++ b/internal/experiment/webconnectivityqa/tcpblocking.go @@ -68,13 +68,13 @@ func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { HeadersMatch: true, TitleMatch: true, DNSExperimentFailure: nil, - DNSConsistency: "inconsistent", + DNSConsistency: "consistent", HTTPExperimentFailure: "connection_refused", XStatus: 4256, // StatusExperimentConnect | StatusAnomalyConnect | StatusAnomalyDNS - XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 35, // analysisFlagSuccess | analysisFlagDNSBlocking | analysisFlagTCPIPBlocking + XDNSFlags: 0, + XBlockingFlags: 34, // analysisFlagSuccess | analysisFlagTCPIPBlocking Accessible: false, - Blocking: "dns", + Blocking: "tcp_ip", }, } } From a4bedcc4143872c22eca687ab02997580ac99cfb Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 16:41:44 +0100 Subject: [PATCH 27/97] x --- .../experiment/webconnectivity/httpanalysis.go | 2 +- .../webconnectivitylte/analysishttpdiff.go | 2 +- internal/experiment/webconnectivityqa/badssl.go | 12 +++++++----- internal/experiment/webconnectivityqa/control.go | 12 ++++++++---- .../experiment/webconnectivityqa/dnsblocking.go | 12 ++++++++---- .../experiment/webconnectivityqa/dnshijacking.go | 14 ++++++++------ internal/experiment/webconnectivityqa/httpdiff.go | 10 ++++++++-- internal/experiment/webconnectivityqa/redirect.go | 6 ++++-- .../experiment/webconnectivityqa/tcpblocking.go | 6 ++++-- internal/measurexlite/web.go | 4 ++-- internal/measurexlite/web_test.go | 2 +- internal/minipipeline/observation.go | 2 +- internal/oohelperd/http.go | 2 +- internal/pipeline/web.go | 2 +- 14 files changed, 55 insertions(+), 33 deletions(-) diff --git a/internal/experiment/webconnectivity/httpanalysis.go b/internal/experiment/webconnectivity/httpanalysis.go index 23d27d7ea2..65ea775b30 100644 --- a/internal/experiment/webconnectivity/httpanalysis.go +++ b/internal/experiment/webconnectivity/httpanalysis.go @@ -202,7 +202,7 @@ func HTTPTitleMatch(tk urlgetter.TestKeys, ctrl ControlResponse) (out *bool) { } control := ctrl.HTTPRequest.Title measurementBody := string(response.Body) - measurement := measurexlite.WebGetTitleString(measurementBody) + measurement := measurexlite.WebGetTitle(measurementBody) if measurement == "" { return } diff --git a/internal/experiment/webconnectivitylte/analysishttpdiff.go b/internal/experiment/webconnectivitylte/analysishttpdiff.go index 32475648e4..b25a739506 100644 --- a/internal/experiment/webconnectivitylte/analysishttpdiff.go +++ b/internal/experiment/webconnectivitylte/analysishttpdiff.go @@ -231,7 +231,7 @@ func (tk *TestKeys) httpDiffTitleMatch( } control := ctrl.Title measurementBody := string(response.Body) - measurement := measurexlite.WebGetTitleString(measurementBody) + measurement := measurexlite.WebGetTitle(measurementBody) if control == "" || measurement == "" { return } diff --git a/internal/experiment/webconnectivityqa/badssl.go b/internal/experiment/webconnectivityqa/badssl.go index 6043d586b3..014ed14626 100644 --- a/internal/experiment/webconnectivityqa/badssl.go +++ b/internal/experiment/webconnectivityqa/badssl.go @@ -10,7 +10,7 @@ import ( func badSSLWithExpiredCertificate() *TestCase { return &TestCase{ Name: "badSSLWithExpiredCertificate", - Flags: 0, + Flags: TestCaseFlagNoV04, // v0.4 does not set accessible and blocking in this case Input: "https://expired.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -32,7 +32,7 @@ func badSSLWithExpiredCertificate() *TestCase { func badSSLWithWrongServerName() *TestCase { return &TestCase{ Name: "badSSLWithWrongServerName", - Flags: 0, + Flags: TestCaseFlagNoV04, // v0.4 does not set accessible and blocking in this case Input: "https://wrong.host.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -53,7 +53,7 @@ func badSSLWithWrongServerName() *TestCase { func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { return &TestCase{ Name: "badSSLWithUnknownAuthorityWithConsistentDNS", - Flags: 0, + Flags: TestCaseFlagNoV04, // v0.4 does not set accessible and blocking in this case Input: "https://untrusted-root.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -73,8 +73,10 @@ func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { // This test case models when we're redirected to a blockpage website using a custom CA. func badSSLWithUnknownAuthorityWithInconsistentDNS() *TestCase { return &TestCase{ - Name: "badSSLWithUnknownAuthorityWithInconsistentDNS", - Flags: 0, + Name: "badSSLWithUnknownAuthorityWithInconsistentDNS", + // v0.4 cannot set BodyLengthMatch, StatusCodeMatch, HeadersMatch, and TitleMatch while v0.5 + // can do that because it also uses IP addrs from DoH and the TH + Flags: TestCaseFlagNoV04, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/control.go b/internal/experiment/webconnectivityqa/control.go index 3767032066..de8d3de9fb 100644 --- a/internal/experiment/webconnectivityqa/control.go +++ b/internal/experiment/webconnectivityqa/control.go @@ -10,8 +10,10 @@ import ( // where we cannot reach the control server but the website measurement is OK. func controlFailureWithSuccessfulHTTPWebsite() *TestCase { return &TestCase{ - Name: "controlFailureWithSuccessfulHTTPWebsite", - Flags: 0, + Name: "controlFailureWithSuccessfulHTTPWebsite", + // We must disable v0.4 because v0.5 is able to determine that DNS is consistent + // since it also performs TLS handshakes, while v0.4 cannot + Flags: TestCaseFlagNoV04, Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -56,8 +58,10 @@ func controlFailureWithSuccessfulHTTPWebsite() *TestCase { // where we cannot reach the control server but the website measurement is OK. func controlFailureWithSuccessfulHTTPSWebsite() *TestCase { return &TestCase{ - Name: "controlFailureWithSuccessfulHTTPSWebsite", - Flags: 0, + Name: "controlFailureWithSuccessfulHTTPSWebsite", + // With v0.5 we can determine that the DNS is consistent using TLS, while v0.5 cannot + // do this inference, so we need to disable v0.4 now. + Flags: TestCaseFlagNoV04, Input: "https://www.example.org/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/dnsblocking.go b/internal/experiment/webconnectivityqa/dnsblocking.go index ef2d70b256..c265774731 100644 --- a/internal/experiment/webconnectivityqa/dnsblocking.go +++ b/internal/experiment/webconnectivityqa/dnsblocking.go @@ -8,8 +8,10 @@ import ( // resolver returns the android_dns_cache_no_data error. func dnsBlockingAndroidDNSCacheNoData() *TestCase { return &TestCase{ - Name: "dnsBlockingAndroidDNSCacheNoData", - Flags: 0, + Name: "dnsBlockingAndroidDNSCacheNoData", + // With v0.5 we can still fetch a webpage because we use multiple resolvers + // but it's not possible to do the same with v0.4, so we disable it. + Flags: TestCaseFlagNoV04, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { // make sure the env knows we want to emulate our getaddrinfo wrapper behavior @@ -47,8 +49,10 @@ func dnsBlockingNXDOMAIN() *TestCase { See . */ return &TestCase{ - Name: "dnsBlockingNXDOMAIN", - Flags: 0, + Name: "dnsBlockingNXDOMAIN", + // With v0.5 we can still fetch a webpage because we use multiple resolvers + // but it's not possible to do the same with v0.4, so we disable it. + Flags: TestCaseFlagNoV04, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { // remove the record so that the DNS query returns NXDOMAIN diff --git a/internal/experiment/webconnectivityqa/dnshijacking.go b/internal/experiment/webconnectivityqa/dnshijacking.go index 612d9ab98e..8ef8c3e7ef 100644 --- a/internal/experiment/webconnectivityqa/dnshijacking.go +++ b/internal/experiment/webconnectivityqa/dnshijacking.go @@ -8,11 +8,11 @@ import ( // dnsHijackingToProxyWithHTTPURL is the case where an ISP rule forces clients to always // use an explicity passthrough proxy for a given domain. func dnsHijackingToProxyWithHTTPURL() *TestCase { - // TODO(bassosimone): it's debateable whether this case is actually WAI but the - // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ - Name: "dnsHijackingToProxyWithHTTPURL", - Flags: 0, + Name: "dnsHijackingToProxyWithHTTPURL", + // Disable v0.4 because it cannot detect that the DNS is consistent + // by using the results of the TLS handshake. + Flags: TestCaseFlagNoV04, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -48,8 +48,10 @@ func dnsHijackingToProxyWithHTTPSURL() *TestCase { // TODO(bassosimone): it's debateable whether this case is actually WAI but the // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ - Name: "dnsHijackingToProxyWithHTTPSURL", - Flags: 0, + Name: "dnsHijackingToProxyWithHTTPSURL", + // Disable v0.4 because it cannot detect that the DNS is consistent + // by using the results of the TLS handshake. + Flags: TestCaseFlagNoV04, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/httpdiff.go b/internal/experiment/webconnectivityqa/httpdiff.go index 32514ab2f6..0dfb7f5410 100644 --- a/internal/experiment/webconnectivityqa/httpdiff.go +++ b/internal/experiment/webconnectivityqa/httpdiff.go @@ -48,8 +48,14 @@ func httpDiffWithConsistentDNS() *TestCase { // but the addresses returned by the DNS resolver are inconsistent. func httpDiffWithInconsistentDNS() *TestCase { return &TestCase{ - Name: "httpDiffWithInconsistentDNS", - Flags: 0, + Name: "httpDiffWithInconsistentDNS", + // With v0.5 we conclude that the DNS is consistent because we can still + // perform TLS connections with the given addresses. Disable v0.4 because + // it does not reach to the same conclusion. + // + // TODO(bassosimone): maybe we should create another test case where + // we end up with having a truly inconsistent DNS. + Flags: TestCaseFlagNoV04, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index 4be8315e7b..44f97d3cbd 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -162,8 +162,10 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { // works but then there's NXDOMAIN for the URL's domain func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { return &TestCase{ - Name: "redirectWithConsistentDNSAndThenNXDOMAIN", - Flags: 0, + Name: "redirectWithConsistentDNSAndThenNXDOMAIN", + // LTE correctly sees that there is DNS error during the redirect, while v0.4 + // does not have visibility into this event, so let's disable v0.4. + Flags: TestCaseFlagNoV04, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/tcpblocking.go b/internal/experiment/webconnectivityqa/tcpblocking.go index c48a878d22..03fbc9f639 100644 --- a/internal/experiment/webconnectivityqa/tcpblocking.go +++ b/internal/experiment/webconnectivityqa/tcpblocking.go @@ -39,8 +39,10 @@ func tcpBlockingConnectTimeout() *TestCase { // where the DNS is inconsistent and there's TCP blocking. func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { return &TestCase{ - Name: "tcpBlockingConnectionRefusedWithInconsistentDNS", - Flags: 0, + Name: "tcpBlockingConnectionRefusedWithInconsistentDNS", + // With LTE we can see a body because we use multiple resolvers and we conclude that the + // DNS is consistent using TLS handshakes. Let's disable v0.4, which cannot do that. + Flags: TestCaseFlagNoV04, Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/measurexlite/web.go b/internal/measurexlite/web.go index 625cc3d74a..02b9daf6ed 100644 --- a/internal/measurexlite/web.go +++ b/internal/measurexlite/web.go @@ -12,8 +12,8 @@ import "regexp" // e.g. 's one var webTitleRegexp = regexp.MustCompile(`(?i)([^<]{1,512})`) -// WebGetTitleString returns the title or an empty string. -func WebGetTitleString(measurementBody string) string { +// WebGetTitle returns the title or an empty string. +func WebGetTitle(measurementBody string) string { v := webTitleRegexp.FindStringSubmatch(measurementBody) if len(v) < 2 { return "" diff --git a/internal/measurexlite/web_test.go b/internal/measurexlite/web_test.go index 7f2e8f0146..115ae34108 100644 --- a/internal/measurexlite/web_test.go +++ b/internal/measurexlite/web_test.go @@ -54,7 +54,7 @@ func TestWebGetTitle(t *testing.T) { }} for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - gotOut := WebGetTitleString(tt.args.body) + gotOut := WebGetTitle(tt.args.body) if diff := cmp.Diff(tt.wantOut, gotOut); diff != "" { t.Fatal(diff) } diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go index 298f0b0ab5..104c4fd161 100644 --- a/internal/minipipeline/observation.go +++ b/internal/minipipeline/observation.go @@ -312,7 +312,7 @@ func (c *WebObservationsContainer) NoteHTTPRoundTripResults(evs ...*model.Archiv } obs.HTTPResponseHeadersKeys = optional.Some(httpResponseHeadersKeys) - if value := measurexlite.WebGetTitleString(string(ev.Response.Body)); value != "" { + if value := measurexlite.WebGetTitle(string(ev.Response.Body)); value != "" { obs.HTTPResponseTitle = optional.Some(value) } for key, value := range ev.Response.Headers { diff --git a/internal/oohelperd/http.go b/internal/oohelperd/http.go index 0b9d221a70..e6867187ee 100644 --- a/internal/oohelperd/http.go +++ b/internal/oohelperd/http.go @@ -120,7 +120,7 @@ func httpDo(ctx context.Context, config *httpConfig) { Failure: httpMapFailure(err), StatusCode: int64(resp.StatusCode), Headers: headers, - Title: measurexlite.WebGetTitleString(string(data)), + Title: measurexlite.WebGetTitle(string(data)), } } diff --git a/internal/pipeline/web.go b/internal/pipeline/web.go index 1e811bb3e6..584b47a6ad 100644 --- a/internal/pipeline/web.go +++ b/internal/pipeline/web.go @@ -212,7 +212,7 @@ func (db *DB) addHTTPRoundTrips(evs ...*model.ArchivalHTTPRequestResult) error { for key := range ev.Response.Headers { wobs.HTTPResponseHeadersKeys[key] = OriginProbe } - if title := measurexlite.WebGetTitleString(string(ev.Response.Body)); title != "" { + if title := measurexlite.WebGetTitle(string(ev.Response.Body)); title != "" { wobs.HTTPResponseTitle = optional.Some(title) } } From 3ded2830b81e90add4bb648eaa4078d8352efd59 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 17:14:30 +0100 Subject: [PATCH 28/97] start generating test cases for the minipipeline --- internal/cmd/xo/main.go | 215 ++++ .../experiment/webconnectivityqa/session.go | 2 +- internal/minipipeline/analysis.go | 20 + internal/minipipeline/measurement.go | 45 + internal/minipipeline/observation.go | 30 + .../analysis.json | 16 + .../measurement.json | 371 +++++++ .../observations.json | 87 ++ .../analysis.json | 16 + .../measurement.json | 598 +++++++++++ .../observations.json | 128 +++ .../analysis.json | 25 + .../measurement.json | 726 ++++++++++++++ .../observations.json | 140 +++ .../badSSLWithWrongServerName/analysis.json | 16 + .../measurement.json | 361 +++++++ .../observations.json | 87 ++ .../analysis.json | 20 + .../measurement.json | 478 +++++++++ .../observations.json | 92 ++ .../analysis.json | 18 + .../measurement.json | 498 ++++++++++ .../observations.json | 133 +++ .../analysis.json | 25 + .../measurement.json | 501 ++++++++++ .../observations.json | 136 +++ .../dnsBlockingNXDOMAIN/analysis.json | 25 + .../dnsBlockingNXDOMAIN/measurement.json | 511 ++++++++++ .../dnsBlockingNXDOMAIN/observations.json | 136 +++ .../analysis.json | 23 + .../measurement.json | 694 +++++++++++++ .../observations.json | 140 +++ .../analysis.json | 20 + .../measurement.json | 738 ++++++++++++++ .../observations.json | 228 +++++ .../httpDiffWithConsistentDNS/analysis.json | 20 + .../measurement.json | 520 ++++++++++ .../observations.json | 138 +++ .../httpDiffWithInconsistentDNS/analysis.json | 20 + .../measurement.json | 740 ++++++++++++++ .../observations.json | 224 +++++ .../analysis.json | 19 + .../measurement.json | 664 +++++++++++++ .../observations.json | 228 +++++ .../analysis.json | 18 + .../measurement.json | 643 ++++++++++++ .../observations.json | 182 ++++ .../analysis.json | 21 + .../measurement.json | 814 +++++++++++++++ .../observations.json | 228 +++++ .../analysis.json | 18 + .../measurement.json | 700 +++++++++++++ .../observations.json | 182 ++++ .../analysis.json | 21 + .../measurement.json | 814 +++++++++++++++ .../observations.json | 228 +++++ .../analysis.json | 18 + .../measurement.json | 700 +++++++++++++ .../observations.json | 182 ++++ .../analysis.json | 19 + .../measurement.json | 637 ++++++++++++ .../observations.json | 176 ++++ .../analysis.json | 21 + .../measurement.json | 824 ++++++++++++++++ .../observations.json | 228 +++++ .../analysis.json | 18 + .../measurement.json | 927 ++++++++++++++++++ .../observations.json | 223 +++++ .../generated/successWithHTTP/analysis.json | 21 + .../successWithHTTP/measurement.json | 543 ++++++++++ .../successWithHTTP/observations.json | 143 +++ .../generated/successWithHTTPS/analysis.json | 23 + .../successWithHTTPS/measurement.json | 499 ++++++++++ .../successWithHTTPS/observations.json | 97 ++ .../tcpBlockingConnectTimeout/analysis.json | 18 + .../measurement.json | 281 ++++++ .../observations.json | 92 ++ .../analysis.json | 23 + .../measurement.json | 626 ++++++++++++ .../observations.json | 229 +++++ .../analysis.json | 18 + .../measurement.json | 339 +++++++ .../observations.json | 92 ++ .../analysis.json | 21 + .../measurement.json | 469 +++++++++ .../observations.json | 135 +++ .../websiteDownNXDOMAIN/analysis.json | 16 + .../websiteDownNXDOMAIN/measurement.json | 216 ++++ .../websiteDownNXDOMAIN/observations.json | 85 ++ 89 files changed, 21699 insertions(+), 1 deletion(-) create mode 100644 internal/cmd/xo/main.go create mode 100644 internal/minipipeline/measurement.go create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json diff --git a/internal/cmd/xo/main.go b/internal/cmd/xo/main.go new file mode 100644 index 0000000000..d3446fb177 --- /dev/null +++ b/internal/cmd/xo/main.go @@ -0,0 +1,215 @@ +package main + +import ( + "context" + "fmt" + "os" + "path/filepath" + "time" + + "github.com/apex/log" + "github.com/ooni/probe-cli/v3/internal/experiment/webconnectivitylte" + "github.com/ooni/probe-cli/v3/internal/experiment/webconnectivityqa" + "github.com/ooni/probe-cli/v3/internal/logx" + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/mocks" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/netemx" + "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/runtimex" + "github.com/ooni/probe-cli/v3/internal/version" +) + +// newMeasurement constructs a new [model.Measurement]. +func newMeasurement(input string, measurer model.ExperimentMeasurer, t0 time.Time) *model.Measurement { + return &model.Measurement{ + Annotations: nil, + DataFormatVersion: "0.2.0", + Extensions: nil, + ID: "", + Input: model.MeasurementTarget(input), + InputHashes: nil, + MeasurementStartTime: t0.Format(model.MeasurementDateFormat), + MeasurementStartTimeSaved: t0, + Options: []string{}, + ProbeASN: "AS137", + ProbeCC: "IT", + ProbeCity: "", + ProbeIP: "127.0.0.1", + ProbeNetworkName: "Consortium GARR", + ReportID: "", + ResolverASN: "AS137", + ResolverIP: netemx.ISPResolverAddress, + ResolverNetworkName: "Consortium GARR", + SoftwareName: "ooniprobe", + SoftwareVersion: version.Version, + TestHelpers: map[string]any{ + "backend": map[string]string{ + "address": "https://0.th.ooni.org", + "type": "https", + }, + }, + TestKeys: nil, + TestName: measurer.ExperimentName(), + MeasurementRuntime: 0, + TestStartTime: t0.Format(model.MeasurementDateFormat), + TestVersion: measurer.ExperimentVersion(), + } +} + +// newSession creates a new [model.ExperimentSession]. +func newSession(client model.HTTPClient, logger model.Logger) model.ExperimentSession { + return &mocks.Session{ + MockGetTestHelpersByName: func(name string) ([]model.OOAPIService, bool) { + output := []model.OOAPIService{{ + Address: "https://0.th.ooni.org/", + Type: "https", + Front: "", + }, { + Address: "https://1.th.ooni.org/", + Type: "https", + Front: "", + }, { + Address: "https://2.th.ooni.org/", + Type: "https", + Front: "", + }, { + Address: "https://3.th.ooni.org/", + Type: "https", + Front: "", + }} + return output, true + }, + + MockDefaultHTTPClient: func() model.HTTPClient { + return client + }, + + MockFetchPsiphonConfig: nil, + + MockFetchTorTargets: nil, + + MockKeyValueStore: nil, + + MockLogger: func() model.Logger { + return logger + }, + + MockMaybeResolverIP: nil, + + MockProbeASNString: nil, + + MockProbeCC: nil, + + MockProbeIP: nil, + + MockProbeNetworkName: nil, + + MockProxyURL: nil, + + MockResolverIP: func() string { + return netemx.ISPResolverAddress + }, + + MockSoftwareName: nil, + + MockSoftwareVersion: nil, + + MockTempDir: nil, + + MockTorArgs: nil, + + MockTorBinary: nil, + + MockTunnelDir: nil, + + MockUserAgent: func() string { + return model.HTTPHeaderUserAgent + }, + + MockNewExperimentBuilder: nil, + + MockNewSubmitter: nil, + + MockCheckIn: nil, + } +} + +func mustSaveAnalysis(destdir string, rawMeasurement []byte) { + var meas minipipeline.Measurement + must.UnmarshalJSON(rawMeasurement, &meas) + container := runtimex.Try1(minipipeline.LoadWebMeasurement(&meas)) + must.WriteFile( + filepath.Join(destdir, "observations.json"), + must.MarshalAndIndentJSON(container, "", " "), + 0600, + ) + analysis := minipipeline.AnalyzeWebMeasurement(container) + must.WriteFile( + filepath.Join(destdir, "analysis.json"), + must.MarshalAndIndentJSON(analysis, "", " "), + 0600, + ) +} + +func runTestCase(tc *webconnectivityqa.TestCase) { + measurer := webconnectivitylte.NewExperimentMeasurer(&webconnectivitylte.Config{}) + + // configure the netemx scenario + env := netemx.MustNewScenario(netemx.InternetScenario) + defer env.Close() + if tc.Configure != nil { + tc.Configure(env) + } + + // create the measurement skeleton + t0 := time.Now().UTC() + measurement := newMeasurement(tc.Input, measurer, t0) + + // create a logger for the probe + prefixLogger := &logx.PrefixLogger{ + Prefix: fmt.Sprintf("%-16s", "PROBE"), + Logger: log.Log, + } + + var err error + env.Do(func() { + // create an HTTP client inside the env.Do function so we're using netem + // TODO(https://github.com/ooni/probe/issues/2534): NewHTTPClientStdlib has QUIRKS but they're not needed here + httpClient := netxlite.NewHTTPClientStdlib(prefixLogger) + arguments := &model.ExperimentArgs{ + Callbacks: model.NewPrinterCallbacks(prefixLogger), + Measurement: measurement, + Session: newSession(httpClient, prefixLogger), + } + + // run the experiment + ctx := context.Background() + err = measurer.Run(ctx, arguments) + + // compute the total measurement runtime + runtime := time.Since(t0) + measurement.MeasurementRuntime = runtime.Seconds() + }) + + // handle the case of unexpected result + runtimex.PanicOnError(err, "measurer.Run failed") + + destdir := filepath.Join( + "internal", "minipipeline", "testdata", "generated", "webconnectivity", + tc.Name, + ) + runtimex.Try0(os.MkdirAll(destdir, 0700)) + + rawMeasurement := must.MarshalAndIndentJSON(measurement, "", " ") + must.WriteFile(filepath.Join(destdir, "measurement.json"), rawMeasurement, 0600) + + mustSaveAnalysis(destdir, rawMeasurement) +} + +func main() { + for _, tc := range webconnectivityqa.AllTestCases() { + runTestCase(tc) + } +} diff --git a/internal/experiment/webconnectivityqa/session.go b/internal/experiment/webconnectivityqa/session.go index 0abb31496a..5af5eb5147 100644 --- a/internal/experiment/webconnectivityqa/session.go +++ b/internal/experiment/webconnectivityqa/session.go @@ -6,7 +6,7 @@ import ( "github.com/ooni/probe-cli/v3/internal/netemx" ) -// nwSession creates a new [model.ExperimentSession]. +// newSession creates a new [model.ExperimentSession]. func newSession(client model.HTTPClient, logger model.Logger) model.ExperimentSession { return &mocks.Session{ MockGetTestHelpersByName: func(name string) ([]model.OOAPIService, bool) { diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index dd5a77d315..21311dfc5f 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -7,6 +7,26 @@ import ( "github.com/ooni/probe-cli/v3/internal/optional" ) +// AnalyzeWebMeasurement generates a [*WebAnalysis] from a [*WebObservationsContainer]. +func AnalyzeWebMeasurement(container *WebObservationsContainer) *WebAnalysis { + analysis := &WebAnalysis{} + analysis.ComputeDNSExperimentFailure(container) + analysis.ComputeDNSTransactionsWithBogons(container) + analysis.ComputeDNSTransactionsWithUnexpectedFailures(container) + analysis.ComputeDNSPossiblyInvalidAddrs(container) + analysis.ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) + analysis.ComputeHTTPDiffBodyProportionFactor(container) + analysis.ComputeHTTPDiffStatusCodeMatch(container) + analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) + analysis.ComputeHTTPDiffTitleDifferentLongWords(container) + analysis.ComputeHTTPFinalResponses(container) + analysis.ComputeTCPTransactionsWithUnexplainedUnexpectedFailures(container) + analysis.ComputeHTTPFinalResponsesWithTLS(container) + return analysis +} + // WebAnalysis summarizes the content of [*WebObservationsContainer]. // // The zero value of this struct is ready to use. diff --git a/internal/minipipeline/measurement.go b/internal/minipipeline/measurement.go new file mode 100644 index 0000000000..31ddd9fbf5 --- /dev/null +++ b/internal/minipipeline/measurement.go @@ -0,0 +1,45 @@ +package minipipeline + +import ( + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/optional" +) + +// Measurement is the canonical measurement structure assumed +// by the probe-engine mini processing pipeline. +type Measurement struct { + // Input contains the input we measured. + Input string `json:"input"` + + // TestKeys contains the test-specific measurements. + TestKeys optional.Value[*MeasurementTestKeys] `json:"test_keys"` +} + +// MeasurementTestKeys is the canonical container for observations +// generated by most OONI experiments. This is the data format ingested +// by this package for generating, e.g., [*WebEndpointObservations] +type MeasurementTestKeys struct { + // Control contains the OPTIONAL TH response. + Control optional.Value[*model.THResponse] `json:"control"` + + // NetworkEvents contains I/O events. + NetworkEvents []*model.ArchivalNetworkEvent `json:"network_events"` + + // Queries contains the DNS queries results. + Queries []*model.ArchivalDNSLookupResult `json:"queries"` + + // Requests contains HTTP request results. + Requests []*model.ArchivalHTTPRequestResult `json:"requests"` + + // TCPConnect contains the TCP connect results. + TCPConnect []*model.ArchivalTCPConnectResult `json:"tcp_connect"` + + // TLSHandshakes contains the TLS handshakes results. + TLSHandshakes []*model.ArchivalTLSOrQUICHandshakeResult `json:"tls_handshakes"` + + // QUICHandshakes contains the QUIC handshakes results. + QUICHandshakes []*model.ArchivalTLSOrQUICHandshakeResult `json:"quic_handshakes"` + + // XControlRequest contains the OPTIONAL TH request. + XControlRequest optional.Value[*model.THRequest] `json:"x_control_request"` +} diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go index 104c4fd161..3ab83ddb5e 100644 --- a/internal/minipipeline/observation.go +++ b/internal/minipipeline/observation.go @@ -1,6 +1,7 @@ package minipipeline import ( + "errors" "net" "net/url" "strconv" @@ -13,6 +14,35 @@ import ( "github.com/ooni/probe-cli/v3/internal/optional" ) +// ErrNoTestKeys indicates that a [*Measurement] does not contain [*MeasurementTestKeys]. +var ErrNoTestKeys = errors.New("minipipeline: no test keys") + +// LoadWebMeasurement loads a [*Measurement] into a [*WebObservationsContainter]. +func LoadWebMeasurement(meas *Measurement) (*WebObservationsContainer, error) { + tk := meas.TestKeys.UnwrapOr(nil) + if tk == nil { + return nil, ErrNoTestKeys + } + + container := NewWebObservationsContainer() + container.CreateDNSLookupFailures(tk.Queries...) + container.CreateKnownIPAddresses(tk.Queries...) + container.CreateKnownTCPEndpoints(tk.TCPConnect...) + container.NoteTLSHandshakeResults(tk.TLSHandshakes...) + container.NoteHTTPRoundTripResults(tk.Requests...) + + // be defensive in case the control request or control are not defined + if !tk.XControlRequest.IsNone() && !tk.Control.IsNone() { + // Implementation note: the only error that can happen here is when the input + // doesn't parse as a URL, which should have triggered previous errors + if err := container.NoteControlResults(tk.XControlRequest.Unwrap(), tk.Control.Unwrap()); err != nil { + return nil, err + } + } + + return container, nil +} + // WebObservation is an observation of the flow that starts with a DNS lookup that // discovers zero or more IP addresses and proceeds with endpoint operations such as // TCP connect, TLS handshake, QUIC handshake, and HTTP round trips. diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json new file mode 100644 index 0000000000..9f5839859c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json new file mode 100644 index 0000000000..46e6510b9c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/measurement.json @@ -0,0 +1,371 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://expired.badssl.com/", + "measurement_start_time": "2023-11-27 16:09:20", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.012388, + "t": 0.018204, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.018223, + "t": 0.018223, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 284, + "operation": "write", + "proto": "tcp", + "t0": 0.01832, + "t": 0.018333, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.018335, + "t": 0.028379, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.02848, + "t": 0.028481, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 814, + "operation": "read", + "proto": "tcp", + "t0": 0.028482, + "t": 0.028631, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.028667, + "t": 0.028673, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.028678, + "t": 0.028678, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2262, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.028705, + "t": 0.028705, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000079, + "t": 0.000079, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 36, + "operation": "write", + "proto": "udp", + "t0": 0.000141, + "t": 0.000163, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 36, + "operation": "write", + "proto": "udp", + "t0": 0.000177, + "t": 0.00018, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 70, + "operation": "read", + "proto": "udp", + "t0": 0.000167, + "t": 0.005941, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 36, + "operation": "read", + "proto": "udp", + "t0": 0.000185, + "t": 0.006411, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006429, + "t": 0.006429, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "expired.badssl.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000073, + "t": 0.006194, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "expired.badssl.com", + "query_type": "A", + "raw_response": "H7yBAAABAAEAAAAAB2V4cGlyZWQGYmFkc3NsA2NvbQAAAQABB2V4cGlyZWQGYmFkc3NsA2NvbQAAAQABAAAOEAAEaJpZaQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000108, + "t": 0.005951, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "expired.badssl.com", + "query_type": "AAAA", + "raw_response": "6S+BAAABAAAAAAAAB2V4cGlyZWQGYmFkc3NsA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000088, + "t": 0.006414, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.012388, + "t": 0.018204, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_invalid_certificate", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDeDCCAmCgAwIBAgIUdy1x/phnrpcqdQvIUsu5q8NTQTMwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMTcwNzE2MjMwMDAwWhcNMTcwNzE3MDEwMDAwWjA1MRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRswGQYDVQQDExJleHBpcmVkLmJhZHNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCecNcNpVEktYPpuGXZhjnUeUdtuhUHb2jRFp4/tc2qI4zJVaFhBd/5Bn2WbJmZ8qp1L5mgP0dtStQ7gGZYjcd3OAn5afsZLZ70JamNxxaPf5r9Svv3VsEWHW1fuxFVp4ezOKSuc/6kex/1CqwD/f7pL2+nN7JceBMunKruRzuFrRwdOnRlYjNkVZvxaOU5kxHeOPmkLhQbksQ612cTMRAFBPCOb6lkoJv/q2b7nSqSy9x8fIXk/k3HWEQqMBBbkJ+gdtglgXzS8S4vUMDDdNlzBtqwTK6/JFvn2IG6V6UnKQn8fdoSPX9dBx0LxnEN3P4EB1Xpib9hUcvlZq6cidIbAgMBAAGjgZUwgZIwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFPUn6yJSFh4YYyAGoXElUCu6X8jjMB8GA1UdIwQYMBaAFHxWKnWgGFUvsm/63RDxBV2mW+DnMB0GA1UdEQQWMBSCEmV4cGlyZWQuYmFkc3NsLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAUayxX0qvnVNEHKWaMFxmUvy/jXv+hoERFSupI5/NDRFz8uyIOe1SWyDTiXPY1b2rpMMuF+61vYU0Q0I2dKAhOmC8zYkymKJn2eBe6X0i+F61jKe4//uo8L9xesJaz4rOfXdZo6VPXFT/U1g2KPOIDJpcbtiO8ZhLhYmCL4Kw8OX0wFxx52sSc0qMyhzTcHAkE1WRYdBhpJQ5Ip2udToaKnLsRfDGknA6i3jMnAkRhWP9xB5ARbIcEkiBAPpaWDc/mjlSy78OoPu5sbuXEv3m6i5guvY792pLC1Rm1+XYzH2Ux7K6x5vd8zsQ9lb7Nmo69ICnmejWFE5KTAAMy2GHtQ==", + "format": "base64" + } + ], + "server_name": "expired.badssl.com", + "t0": 0.018223, + "t": 0.028678, + "tags": [], + "tls_version": "", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://expired.badssl.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "expired.badssl.com", + "status": false, + "failure": "ssl_invalid_certificate" + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "unknown_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "104.154.89.105" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 3 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:3}]", + "t": 0.012338 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 4, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506694, + "test_start_time": "2023-11-27 16:09:20", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json new file mode 100644 index 0000000000..7eaf82d2af --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json @@ -0,0 +1,87 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_certificate", + "TLSServerName": "expired.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "ssl_invalid_certificate", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json new file mode 100644 index 0000000000..9f5839859c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json new file mode 100644 index 0000000000..e949ca79e3 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/measurement.json @@ -0,0 +1,598 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://untrusted-root.badssl.com/", + "measurement_start_time": "2023-11-27 16:09:18", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.03414, + "t": 0.040181, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.040197, + "t": 0.040197, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 291, + "operation": "write", + "proto": "tcp", + "t0": 0.040291, + "t": 0.040298, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.0403, + "t": 0.589184, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 1701, + "operation": "read", + "proto": "tcp", + "t0": 0.589309, + "t": 0.589311, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.590433, + "t": 0.590444, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.590456, + "t": 0.590456, + "transaction_id": 4 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2277, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.590494, + "t": 0.590494, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000384, + "t": 0.000384, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.007252, + "t": 0.013418, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.013457, + "t": 0.013457, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 279, + "operation": "write", + "proto": "tcp", + "t0": 0.013675, + "t": 0.013686, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.013689, + "t": 0.020979, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.021124, + "t": 0.021125, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 820, + "operation": "read", + "proto": "tcp", + "t0": 0.021126, + "t": 0.021817, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.022744, + "t": 0.022751, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.022754, + "t": 0.022754, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 384, + "operation": "write", + "proto": "tcp", + "t0": 0.022834, + "t": 0.022883, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 180, + "operation": "read", + "proto": "tcp", + "t0": 0.022887, + "t": 0.028535, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 384, + "operation": "write", + "proto": "tcp", + "t0": 0.028602, + "t": 0.028609, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 221, + "operation": "read", + "proto": "tcp", + "t0": 0.028584, + "t": 0.03381, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.033862, + "t": 0.033862, + "transaction_id": 3 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.033867, + "t": 0.033914, + "transaction_id": 3 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "9.9.9.9", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.quad9.net", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001333, + "t": 0.007164, + "tags": [], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "9.9.9.9", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.007252, + "t": 0.013418, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "9.9.9.9:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbjCCAlagAwIBAgIULv/8mGpIFiYyKNKep+aGpos+itgwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTE4WhcNMjMxMTI3MTcwOTE4WjAwMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRYwFAYDVQQDEw1kbnMucXVhZDkubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7V+WmYwUhqXsyZx4ILyGp/RSn4XPh2eHqBCh9cLwKj/6vfOHEX0crPqkL+iKqkW0gB7JxcdVB24ts3i5TatkJ+sRAUvbcYefXKj53Yb5PPEVjxB9IFAl0xZY+uVQOOCXtAIgnxerZFmA7ctdKmlO5QFkOWqAIYJNCh8LjuOjxhwh/Zo7yRduHJLl/mtwGat9RxSeA2sW+MN5akrfCcmbNQV/ZZDLAGd1jH9n/8JBXTatXlxQLNxi1DpEj9IPd4iwpHfoN3144sjm+FV9xc4uQ0RC2CP/XMpbaGXerVgYfsnb0h/e5IqDPX35ci9sbe21TxJvgnfC0Azd7fVoIDao9QIDAQABo4GQMIGNMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQb+3f/KRvydyIxVWOLIW9m6ErMszAfBgNVHSMEGDAWgBSNNCopm1uyFHej2mn4ObPaaqcBPDAYBgNVHREEETAPgg1kbnMucXVhZDkubmV0MA0GCSqGSIb3DQEBCwUAA4IBAQClEzAXhVp1iBW4KnLZs+OrwSr/dwxJ9wvkJ/iqrWEjWXIKdpWBK4xH8hXEbdhsjxXv0ctJSIIHmWxmJXDcdg/jD89suE/RO3fFp1X34EGOUSSeB33k97xwRK47lyDKyMlQvLKEp9G3EBUppfwR/794dBNKS8WO1IokKwyHyCVkga3FGpIGgsQ90m4PWrZ8tpMEuwgiSFCknSdTdL9rbMvGxBWX7k2703JwewB0EPa4U2nH41YBEU2aaABWnBwilwR/4t+jbdgnGRP4DukJjTSp7rAX9ziIpyapozT1TGtI50TfzaybGpgTYYWbOBqNcVbMW+VFP8lO0xXU8UuujlNl", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAJrNwOd5pP29YhXwxg8gFPakHinWMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkxOFoXDTIzMTEyODE2MDkxOFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgBWE6YS29sSjWbrpfIHkH+/DSq6qV2RIiIKrR8X8QlJJa0tq1po/TAIMghxGkKsrNNE5z8ACWj+b+SqU0F2mU7wgAdzwXPSDGiNynu66UhpAoQ2Us8TAyWI9mOvIK5G/TLKtF+kwNL+sC+Ebn1MI9A3UFD6n7kyJCz5J9g873CL7QoiaZWPNEjo6Rv74AnGziHOuDuw2xjVZqPuPQcOQuf9BJt+ktLJ6pTE0LZ3hrxjL+sDszC+wT1Nw/q5Ryc/zr5ZUFEyPrW857v522+MamPOd4EUNLOj9ogrDR1Ayl5Fre6zm8R3eqU073nl8a65Czl48YXTkjDAPxC7toJItxAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSNNCopm1uyFHej2mn4ObPaaqcBPDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAB2vy15NjwK9sRH01oPkHRxkTHAPGTZx7JOmPGBCBNfiXvWD6dXpyEpVHBb73hsS8FZUjOnTKCOVyXLdQYlk8FOJMjGYqUaqPAMQnbsKPrD9VNK+rE2YfwPLLxDJOqDqE0csMcsXt+q4Fx+1pqYYfl0sSFbOaX2keBUcPfv+fXVPk/0USlnT4AbhbzOCqshaxp3mff7hEsxNcri/KDffjIpWHyMd5Wm5Fbr8QJQU8kSvjUlA0TkDi8CXZO9wl5Lso5g7660kqd2OpFwN8qfc43H7TeNuFh6exET1oCGDCTraf8Wjc7qfEhkGwntRsOBTPm78pDI3L1jng9kWP4m3Yjg==", + "format": "base64" + } + ], + "server_name": "dns.quad9.net", + "t0": 0.013457, + "t": 0.022754, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000388, + "t": 0.000388, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 43, + "operation": "write", + "proto": "udp", + "t0": 0.000915, + "t": 0.001029, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 43, + "operation": "write", + "proto": "udp", + "t0": 0.001064, + "t": 0.001069, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 84, + "operation": "read", + "proto": "udp", + "t0": 0.001035, + "t": 0.005864, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 43, + "operation": "read", + "proto": "udp", + "t0": 0.001088, + "t": 0.006681, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006741, + "t": 0.006741, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "untrusted-root.badssl.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000476, + "t": 0.006567, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "untrusted-root.badssl.com", + "query_type": "A", + "raw_response": "wK2BAAABAAEAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AAAEAAQ51bnRydXN0ZWQtcm9vdAZiYWRzc2wDY29tAAABAAEAAA4QAARomllp", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000564, + "t": 0.00589, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "untrusted-root.badssl.com", + "query_type": "AAAA", + "raw_response": "8juBAAABAAAAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AABwAAQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00057, + "t": 0.006692, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "untrusted-root.badssl.com", + "query_type": "AAAA", + "raw_response": "6cmBAAABAAAAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AABwAAQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000544, + "t": 0.028588, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "untrusted-root.badssl.com", + "query_type": "A", + "raw_response": "s5CBAAABAAEAAAAADnVudHJ1c3RlZC1yb290BmJhZHNzbANjb20AAAEAAQ51bnRydXN0ZWQtcm9vdAZiYWRzc2wDY29tAAABAAEAAA4QAARomllp", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000541, + "t": 0.033837, + "tags": [], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.03414, + "t": 0.040181, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_unknown_authority", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDNTCCAh2gAwIBAgIUGLp03a+bpUIERelYfkm4umIfdHgwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTE5WhcNMjMxMTI4MTYwOTE5WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALm6o9CQ+1ntt/mmxq5ctUSMA3RLYvFOqqWPqcZB6PvX40amKBo/UwUlx07SZfI/XY4g5bI72zn0gr+dvngItqhgNZDoBOkS6uxsxFN7DLL0O6V7541ms6Il9vIOTiG9nDPHeC6TygGHad4+ruhB8Kjrls6xjrN9h7FHm9qt9EpsnrUJ5/rbw8mnhQC/O7kxXHO0bFpODx0N6cDTwvYabM5Uj4seSr/wlzjx4B6PKxM0Xj3wKM4PSfRs3Lp/Lv60xivvD+ZcvMT3QKf6VLkLbAvZHerrvtwX850qWXwCIzEgMi+TmKhpg6aD2ahNR0E2nSBt4IpNFLaO1uxYjhpvHwECAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEgk2VsJBP06jg/WngVGYqwYZ4pKMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAtq+8Eg15s5BkuLOmHnPfAwLO9kZmw/FqzVVJ8sPV5sY6SQiqByTr4CRjgLj51nqUeDqIOOcmqMqsrHBVMg88JZlO5FC/YO4yyUzn9TET42OuHnsytgT0OIjnc3WsAUui8u/L6b5pEw+Zrt+CBgk/Z294XkmrC4Ew2grG+C8i7LsoOM9goo6j1lgG6CEvmWrccs9urOlm0by3687BeI2GKILfrVp2sxqOVNhjfKbBMhg9F0GRZIOX/Tx8+mJcLLX9QMHS5MYPFp3PsodZUX/osPT9oe8aS7mmkCZrL4TbbimEcuR5lsd8dWxR5rMbu6wTXpFxzIyJBpVfqFMXVKod4", + "format": "base64" + } + ], + "server_name": "untrusted-root.badssl.com", + "t0": 0.040197, + "t": 0.590456, + "tags": [], + "tls_version": "", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://untrusted-root.badssl.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "untrusted-root.badssl.com", + "status": false, + "failure": "ssl_unknown_authority" + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "unknown_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "104.154.89.105" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 3 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:7}]", + "t": 0.033953 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 4, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 1.036687, + "test_start_time": "2023-11-27 16:09:18", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json new file mode 100644 index 0000000000..c1f632d332 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json @@ -0,0 +1,128 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "3": { + "DNSTransactionIDs": [ + 3 + ], + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "4": { + "DNSTransactionIDs": [ + 2, + 1, + 3 + ], + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "untrusted-root.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..4b299dbc25 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json @@ -0,0 +1,25 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": { + "104.154.89.105": true + }, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "4": true + }, + "HTTPFinalResponsesWithTLS": { + "4": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..930f826163 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/measurement.json @@ -0,0 +1,726 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:22", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.012569, + "t": 0.018747, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.018763, + "t": 0.018763, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.018849, + "t": 0.018857, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.01886, + "t": 0.491165, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 1681, + "operation": "read", + "proto": "tcp", + "t0": 0.491282, + "t": 0.491284, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.492139, + "t": 0.492146, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.492158, + "t": 0.492158, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2257, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.492208, + "t": 0.492208, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.513861, + "t": 0.519134, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.519153, + "t": 0.519153, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.519252, + "t": 0.519261, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.519263, + "t": 0.526805, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.526886, + "t": 0.526886, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.526888, + "t": 0.527522, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.528385, + "t": 0.528393, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.528396, + "t": 0.528396, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.545118, + "t": 0.545118, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.666065, + "t": 0.666065, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.780548, + "t": 0.780548, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.931532, + "t": 0.931532, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.011548, + "t": 1.011548, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 1.02844, + "t": 1.02844, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 1.028532, + "t": 1.028581, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 1.028541, + "t": 1.034292, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 1.034349, + "t": 1.034506, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 1.034524, + "t": 1.034524, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.034545, + "t": 1.034554, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4030, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.034564, + "t": 1.034564, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000079, + "t": 0.000079, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000127, + "t": 0.00013, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000177, + "t": 0.0002, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000134, + "t": 0.003138, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000205, + "t": 0.003478, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.003502, + "t": 0.003502, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "tX+BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003156, + "t": 0.005165, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "rD+BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003495, + "t": 0.005527, + "tags": [], + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "tX+BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEaJpZaQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000108, + "t": 0.003147, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "rD+BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000087, + "t": 0.003483, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000069, + "t": 0.003968, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 1.02844, + "t": 1.034524, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.012569, + "t": 0.018747, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.513861, + "t": 0.519134, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_unknown_authority", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDNTCCAh2gAwIBAgIUQD0gLqOEPkW4VAJVc5udifzb+GwwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTIyWhcNMjMxMTI4MTYwOTIyWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANCBkwJSCzwpILsPABXWdNiSqVxKrY995FKcpGp47sY7590i2nuGWNM2FFpV55KlZKeotEsJIi8dZGuwhIBaczZcl0FFOGbCOnmeAAmvf8+EWVM1oWTYWlaPlgcl90UlCv0URAip+/JX+rJR8BJJFjlyUhK/wDM1sr+HF/qMB9yq0JuzpOQoZCAeC9JvhcnxI4/aFEjK5lJLrn7qkF6xITzxXPUxZrh+VyoK7wcM6/r2DoWqpXNl0SSsZfD4vKaQPHqydRigdDrLJIW5EE+FnvHTfhsshRYztVZcX79WMS5aqJZhAxQwHgYN0gQ75y8qslZ8DAE6eCg5PUNbXH8SSMMCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFITkHD6uG0O3BqWvkOPis/cxYAP3MBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQBSDRB6fQl02SGA0G3eLq5Tt5221auhgcD9xAUnvaTtYXWSGBFcDV9gtnYcT5eMxED3xTqE9va/B3fcVVKlaW6Rs8U4XqgcFMYogx7rNxeKacTyVXgisGpSv5cd7L1jmAoCam0KobubtM3dgjJ1hcHvtft1+roNmrFVm6AE/2P63560xEQD0tDk17NVxVCWyaFYnDMUJT3AUM1D4JLmnFjpjtWIFOjSLWXz81NsfKMPbj2Vz96L1shETCKnZFqo5JKNexI8XAaSiEvqi+dAy/iu6n6/DQp1Hytl6wPbCLWmb6WxkOSlwj1tZ9l/vhQ4PC30X3pq3QodJlRr8hW37pXe", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.018763, + "t": 0.492158, + "tags": [], + "tls_version": "", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUaUWP6ZpUon4feRIg9Fq+FEqwwu4wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTIyWhcNMjMxMTI3MTcwOTIyWjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCiDsh0CI+fCydobNRI5KHAnGgxP0qbGWZ7EI9Zh6rZQGBpCwcbd6QujyoVlBeBw9MqwWP0Zvj8tiq9J43EH4MKUBpdJR3Jh/4J8JVmehRxKAjGLjN8VAwhlbfa8kmORzSM1CWo0MkhmcvAX0ViCKzZZlfTtiyHLIhkrHRff0rr2G4gzgzRdoxJfOyno1VGWjpH1HLg2/urEAb8UwyJOZUyKARXE+x4L94ctnSOjwHlv4fXi0tLLA1UYJ0X/ko4rt9boVDmEelR86IsuRASLijT/2QqWM6OQiFqvvK7p9fQcCRW+WtjxJ8IyEhhIesLNjIJC4e9YRLiuxWE7odgvNaHAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFEtIyHoLcnjyRn5zJ61M+Y38p9iBMB8GA1UdIwQYMBaAFM0EO2zqDz0YgUvrfCPJq2178qCYMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAAbGnk4YVdvI8YlGZ6VceSqmVTZ631XdzunhW62HuHmVYDS/LUXSuRX6OUpRDca0PztLi5ZKaAQtwnDgc7ymMS6fD6A2tk9OjVmoa91j/iQtMPDmq4AFF1jKmf6b3SMsxU5q93ISFYhxHA8a7lVVpHdNBvScTu/9iXBypoRYapfEqIaJ68EqYlQ2lsBIkjnHAEpvuO4vOFR7OdfP9l1168e8rehW8iBQxCJIc9wp4VYgNW44nRJ2bGeI8Edy5a6RWn9oCpctX3zY67wNGh7kSDDcspwNo10C62zNk1KOMVsvjJ10LHLlZDXRKY6Ga0vSHQQ/rpGfVruoVYvULAyoMCA=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAL1/D2S+LcZ/35dtUPUYx+KXHDKIMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkyMloXDTIzMTEyODE2MDkyMlowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Daih/TwKp6iww0zHIg+9g7yOA4uf7VKV6h3g2XYhi7fpXAzyhCxt4uW8eNE9AEjQZ0DpErLYYKdrdeCTFj383AprhZopGFZlUDiUPjxVk735fZtZy8iq7oVgSUVCM6nQ4aa0x7u89rFMMlbYBA/6OdhlZ6jwdJIYaIKiteAsVzpD6n+O13q2pxzHJSP7VEO9ftFoIJ9CQi65+iXmOJNAm9aX3YIwFNJOfGp8KaNK5X8y71qoTzv70k15+qFOXdkWnFdhjKXBV0Ohf4g9W58MlupViuT8tz5SUJI+FlPODnXy8m73XHBtYsX2cqw7+XGGwOPXzAlTpJRZR7jbQ1N5AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTNBDts6g89GIFL63wjyatte/KgmDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAqnRsB3ymVNkCLBIKh9k0j1YUu4pRLvJOG5knIZ3XWjSV8egZ5xDPCxew8HLcOtFO8ofHP8NUL3h0BQJq/Di0CYprYq7lIQ0c17FqLEqWSMQ8OsZjdv7Z6gJByUe5dBMD9/0oy0VQCVYReDWw0tjdDuZ39en9obQmxj4wMg7DyTABpy5bWPnC36AJfWwooxOnoLwMUBdbaPD7P4w67wghPUt6w/8c2iZVFzoINlwf4Jv6wYWJfJpZKwpTMUPpjmb8/uOaMIEHihFAo+3QHBlF8PGn8zh/nF6svwyn6lKZqV3fCU6NfoOq80wjJdFg3U8aHibhV5HOG5QVNHKmQNAoNQ==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.519153, + "t": 0.528396, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "www.example.com", + "status": false, + "failure": "ssl_unknown_authority" + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 1 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:3}]", + "t": 0.012512 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 1.028422 + } + ], + "control_failure": null, + "x_dns_flags": 4, + "dns_experiment_failure": null, + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 33, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 1.034907, + "test_start_time": "2023-11-27 16:09:22", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..8dcc41d2af --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json @@ -0,0 +1,140 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json new file mode 100644 index 0000000000..9f5839859c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json new file mode 100644 index 0000000000..b515c86874 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/measurement.json @@ -0,0 +1,361 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://wrong.host.badssl.com/", + "measurement_start_time": "2023-11-27 16:09:21", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "104.154.89.105:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010977, + "t": 0.017006, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017021, + "t": 0.017021, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 287, + "operation": "write", + "proto": "tcp", + "t0": 0.017118, + "t": 0.017127, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017129, + "t": 0.02694, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 1693, + "operation": "read", + "proto": "tcp", + "t0": 0.027041, + "t": 0.027042, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 30, + "operation": "write", + "proto": "tcp", + "t0": 0.027073, + "t": 0.027079, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.027085, + "t": 0.027085, + "transaction_id": 3 + }, + { + "address": "104.154.89.105:443", + "failure": null, + "num_bytes": 2269, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.027108, + "t": 0.027108, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00006, + "t": 0.00006, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "udp", + "t0": 0.000115, + "t": 0.00012, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "udp", + "t0": 0.000123, + "t": 0.000128, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 76, + "operation": "read", + "proto": "udp", + "t0": 0.000125, + "t": 0.005335, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 39, + "operation": "read", + "proto": "udp", + "t0": 0.000145, + "t": 0.006306, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006323, + "t": 0.006323, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "wrong.host.badssl.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000069, + "t": 0.005237, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "104.154.89.105", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "wrong.host.badssl.com", + "query_type": "A", + "raw_response": "VCOBAAABAAEAAAAABXdyb25nBGhvc3QGYmFkc3NsA2NvbQAAAQABBXdyb25nBGhvc3QGYmFkc3NsA2NvbQAAAQABAAAOEAAEaJpZaQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000095, + "t": 0.005349, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "wrong.host.badssl.com", + "query_type": "AAAA", + "raw_response": "F9yBAAABAAAAAAAABXdyb25nBGhvc3QGYmFkc3NsA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00007, + "t": 0.006309, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "104.154.89.105", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010977, + "t": 0.017006, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "104.154.89.105:443", + "cipher_suite": "", + "failure": "ssl_invalid_hostname", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDfjCCAmagAwIBAgIUPIhlWMvW7Gul55yyytqjEqhBGJcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTIxWhcNMjMxMTI3MTcwOTIxWjA4MRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMR4wHAYDVQQDExV3cm9uZy1ob3N0LmJhZHNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgGu+oUKY5DL9iQ+DYu+jfa/SrWH4/0v6o2mnyRP/HkhQbr750Gh87opvpC6Q5Z+4Q5GX6pM/2C8ZMxfF6IPrFAJMUMhdKEUiIqRnoXCEKEu3k6GZk61ZxyeZSBf1rCOkSZ6wTSI8ka6e6LQcjmL+Z0n0VUQKicxAC8qH9FsjakG+Tcd/S8jUWx2r4hk6eAFPy1Zjt5vPf3WRxFpCj5QLLhHWHgMbdU8D8Rtq9rm0kpCgls1aBshJwnY/Gg02Wy7p8pE2VLafs+lrspbK3Rc7FyDp6WGeB4eKxFuBpT4t099h/U6piEKWulGlJT/yhJTC9ebOasV7pNK/v2Zuy7+5dAgMBAAGjgZgwgZUwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFH4a0g0nG24BGifRQZsbHLhFE2+bMB8GA1UdIwQYMBaAFE93Q7CrjrtqtUhn9JuAv3/a745mMCAGA1UdEQQZMBeCFXdyb25nLWhvc3QuYmFkc3NsLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAKHELnT/u38Rtv46EXbS3JcpnRLQyiSJPczSmERC+498p8zE+3JnEBngmI7QgxLibnmLW8QvonbJ3iV2pZIpTsOuK4xTCwp5xrFNdww9kcqq0xF1qpUc4GQqbxNQrBOWryCcxvmWuZjOFZezmCyil2vhecwV/BcmpN/RkxhXDf9aFLxNSErLH9DAozWGwA7mH+kUZTdsHCvxp7ucMcXSNpZvwH/u7ax794feug19w6fmm+/Fk4h5aDm9YkSQ5OW3LTXJBWk/+cIT2rGk/jLATHhAMOnYHBbmAWVI60KbNMFW/jc3Krlb+C9JwtqLF8kVOuptpiTrAWUpWufVnFuMMgg==", + "format": "base64" + } + ], + "server_name": "wrong.host.badssl.com", + "t0": 0.017021, + "t": 0.027085, + "tags": [], + "tls_version": "", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://wrong.host.badssl.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "104.154.89.105:443", + "104.154.89.105:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "104.154.89.105:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "104.154.89.105:443": { + "server_name": "wrong.host.badssl.com", + "status": false, + "failure": "ssl_invalid_hostname" + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "unknown_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "104.154.89.105" + ] + }, + "ip_info": { + "104.154.89.105": { + "asn": 396982, + "flags": 3 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:104.154.89.105 Flags:3}]", + "t": 0.010914 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 4, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506555, + "test_start_time": "2023-11-27 16:09:21", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json new file mode 100644 index 0000000000..a6983a5126 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json @@ -0,0 +1,87 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_hostname", + "TLSServerName": "wrong.host.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "ssl_invalid_hostname", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json new file mode 100644 index 0000000000..4e0f0e6e33 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json new file mode 100644 index 0000000000..98c3b5adc0 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/measurement.json @@ -0,0 +1,478 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.org/", + "measurement_start_time": "2023-11-27 16:09:25", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.012385, + "t": 0.017588, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017605, + "t": 0.017605, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017704, + "t": 0.017718, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017721, + "t": 0.025015, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025119, + "t": 0.02512, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 866, + "operation": "read", + "proto": "tcp", + "t0": 0.025121, + "t": 0.025728, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026619, + "t": 0.026626, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026628, + "t": 0.026628, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026649, + "t": 0.026649, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.0267, + "t": 0.026732, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.026686, + "t": 0.032578, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.032614, + "t": 0.032693, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032706, + "t": 0.032706, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032724, + "t": 0.032729, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4029, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032735, + "t": 0.032735, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000068, + "t": 0.000068, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000104, + "t": 0.000122, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000167, + "t": 0.000189, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000128, + "t": 0.005222, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000193, + "t": 0.0058, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005836, + "t": 0.005836, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.org", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000088, + "t": 0.005453, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "+kOBAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000077, + "t": 0.005228, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "vwqBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000138, + "t": 0.005804, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.org" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.org", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.org/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.026649, + "t": 0.032706, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.012385, + "t": 0.017588, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUDYXv3Sk/3lKaCtDipbHnIMJ65CIwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTI1WhcNMjMxMTI3MTcwOTI1WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmOiPXSoEU3MkQybzKIaWvuIotNiNY7+hX21s652fKcUiE8d5RB39Y6dzzRgFhQ0lbbH3vvcjuZJO/i1tQvDWBXC+PKj1xzvn+6eU5JsW8ik/M/3dad8qOOdzQLcNFbk2u201Q1RLTyM+//1UoP5b62m/UDBYNm7LP4FUkXVCPA8yi4z6x4LUYtACIr5OMp/OReBrToIgwHVTodQG1aFd8nIwAYBlyLn1eRbvTUIR4P3Y/5tJcfj7Yzhg/y/wJDc/UM86+ovpxefnvjw8s04knsGymxTJEn4JovgxKrB2jpgcW59DN81ONeAH/qq/L7m3m+KMsydiGTMUl8gCCOCmzAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFM7MN/DSi5T7ceUZ3pEyoOxY7U0MMB8GA1UdIwQYMBaAFHP4HizmvT2oomsChg3Oj/9C1UboMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAK7zYSnBlCjAQT3pt4S2RXzy1eGnPbMGO+JTNwtCc9/klcpCdCA+3yRIjmRLswRDM/UIfQ+7QR+cCyhS+Q0leoXQn708kxW1NjpruOYCq8WXtLGmrDO0WA1nD71ndcOzXmxBSqUmbMJP8ys63ee8hm0M6vnI75alLqnRyskreyzejzg32c6QMJvQu69nsuszBPLxhLI87CSGQrUF0X86jz7bin1FYdI9glqau2bsTgbNQnnGOMH0/tB18Oq3H8AMZ2NWDlEn+IicHYOKnGDnYomCJTQWB3NexmTly7o35lGnxFcj7eUMe7mLqdVVMqTd6KK1ge/TM495kQLsk0u2IqY=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUe9puWHtDKvOiIRA1qdk/ehqbtRYwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTI0WhcNMjMxMTI4MTYwOTI0WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPgVd217kKL50AKP8ZTk+K+Z5DkH9lKup8VhA7D7fw7cB5sj7tSoWAsjBE4wT6Zejz7knhcudSjoU5EhJxplHfnf3CKIDR6EEmeDXm+KThX0m18p/nEZ7YUPGYZF4BSRH6xF6uk6VFCx/2UtwFlQO2oDti+IM7oLI9PX4dM2/KM7R86woqh47RmBNJBMbwsH6dsANMQhAeb5w4+aAwhGfnH0NtpDeo4bxagQvFld4XstYeC5cuDg63Ch4S0M85F+uzSTf9xE525XDZTw3/AdL3d27DGB2THMzw+FJw34W0Z0VkAzXjgSubKIxaj0dQbaJtqPcJZYDNRtpfg2q/2kBSMCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHP4HizmvT2oomsChg3Oj/9C1UboMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAqSziCH8sSco5k4QhRN4hjp4IAHBp5YHZ4rpRedTzcm7vuJ9IkmUERi9Mpgq2s53UbWODfTLgU+SP9z9sX0duD4/MMJC2F9tvU0KHaxz7Nbqj/tF2Bxin3EPy29kd4lua/ljk/YiR9nbJLtUTaK62SxxM4H6Sla9Eij/ZyDwl6cTfnFnyWx+vz3NwjO2v4MoX/R5sMOioZckhqWLsOXh94CyAOfqx0KjAuFSxwUn9SIHIPfHuM2lBHwkEBxgrc8NQT7E7JOGwWe6OuzP3TgC1qOd5z4dQloCTKW2ktUXPpWsKDyyuA7Vy+WSbv3EftlaHCvyhFaIj8NxSCnUWU/rlY", + "format": "base64" + } + ], + "server_name": "www.example.org", + "t0": 0.017605, + "t": 0.026628, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.org/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": null, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.012317 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.026637 + } + ], + "control_failure": "unknown_failure: httpapi: all endpoints failed: [ connection_reset; connection_reset; connection_reset; connection_reset;]", + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.50608, + "test_start_time": "2023-11-27 16:09:25", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json new file mode 100644 index 0000000000..c9046e8a32 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json @@ -0,0 +1,92 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": "https://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json new file mode 100644 index 0000000000..f8de1396df --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json new file mode 100644 index 0000000000..197f5c59da --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/measurement.json @@ -0,0 +1,498 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.org/", + "measurement_start_time": "2023-11-27 16:09:23", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011368, + "t": 0.016792, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.016809, + "t": 0.016809, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.016861, + "t": 0.016893, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011404, + "t": 0.017143, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017159, + "t": 0.017159, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.01725, + "t": 0.017256, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "read", + "proto": "tcp", + "t0": 0.01684, + "t": 0.022886, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.022916, + "t": 0.022916, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.022953, + "t": 0.022953, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017259, + "t": 0.024448, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024548, + "t": 0.024549, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.02455, + "t": 0.025055, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.02595, + "t": 0.025958, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.02596, + "t": 0.02596, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.025977, + "t": 0.025981, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.025987, + "t": 0.025987, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000072, + "t": 0.000072, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000104, + "t": 0.00011, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000165, + "t": 0.000185, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000125, + "t": 0.006084, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.00019, + "t": 0.006441, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006467, + "t": 0.006467, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.org", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000067, + "t": 0.00537, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "ap2BAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000079, + "t": 0.006088, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "QHiBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000124, + "t": 0.006444, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.org" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.org", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.org/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.016809, + "t": 0.022916, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011368, + "t": 0.016792, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011404, + "t": 0.017143, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAJtNChTSgGGpMWWdUtGxDTUFBS8KMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkyM1oXDTIzMTEyNzE3MDkyM1owMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApVsjtQbSnF1JEbOCDT9OTPKHy0IRAiBjK1G/9c0dOzniAJYIiSJIQx5cwf2DszRh/BywRbcO1vd3yrLV7aFXWd7SISqbvcspTGOfnI7T1oLUmnZih7830/+RZL7tuki5PvzgtDbs3MsJMtbTJyNd/OUCeXYVIETGvdvKU42d9SpeXA2cgOuZuB8l774lzg8fim/ZWjch7LPQzo/3njniLclkRLAN+ywjYrNPIZu0fMIYU+VEuJ/zalCvhDrMmF4Ji/6FX0/6Vrw3RRe2Ae1VpC+IDI8yEUGTfivuM9Jzntbnx19kuv9OKVbotkLSyNOjbVS8vvThlcoZD0cuIjAqaQIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBScTPBQM1/cTJ3y73lOM+t61w2GijAfBgNVHSMEGDAWgBRiFKRCcR8LfW5qbbtaw+Nv+YrszDBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCB05W3RaavbamB3f8aIN6r5kT+hG5nkicWaEowKY4oQ6alGcskx1a52PaLFAV7xNjyxT40uClBv7k+GYlpzO6cLAESu5YgmaLIF/h2RXk4IsZwhvU7dDPUdHKpSADhLKpoJ/Nl9kCrTtC29bO0hMMC1p7pPjA2vQJ62uYhz7dqf3U/VB8WuTL5npQIPlSaIba1d/4NLVkes1T5VRdWGRBSFfVjgZHI8DDsEEXxQ3V1WkxYtl3HrQwptLpfO2vVa0qBywAqfwJMMAJlqyNqp5aA4K2D0WDu1Fo4D+48npgg5rDrcv6ia3eir7xXQcOjpq5eaDWv5JGnMygmj+lGkVNO", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUQHyeyZ7Izmt1QHcn2xL3BM3qk4AwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTIzWhcNMjMxMTI4MTYwOTIzWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALTHIFDNesCvumv0Z5A5YErpDaInkJ/2AVxvu8Onec3xtdPoXor8vtnaZ+p3F5lcnw+SA6g+jDAGFyMtP/uAF3GKUdnvk1UaLo+M6Aax1V9NEaj+l+XxngMNY78oO/+CbrodOhw7QlzklL3XmEOW1edaKEq1ZCYzkC8y5YtrKGugiA3yFfCrF1kOaZQLjJAhk3FwVD8uK0FksFrtTG4eZegQxhVpLyt0c4b+ajYISkdLM4hs4LYpNkmXqe1j0iSktyGxCS4BXncVSI/LWqJn3Xp+v1DpY5pZ3PuaDsNoqzK9V/otMw8yT1Cz7iULM4xITc1ckzXjowLtte9SuR2NyK0CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGIUpEJxHwt9bmptu1rD42/5iuzMMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQAhVZIiu0mM9L9Q2ZUSW2QFy6atpjP4/VqwUtGuOqn2uFFdXQMdIm8AamdYRs7rpGZkQlZGO3B29p65kLGVfXfOXGm+Qiqxyy0Vh8lLhZ7gsK7B+qGZmbNhIRggpGIrpyy5UeIEk6BnFrhVEw3hiCFaAkOv9e+6NKpTx12NMlp017C9/0Cm2+tXIRsos8qCO/BWhe17hENnF08legy6uCuFROqqAazylu4V1DjsFDzpfZudqvUS3Wd5eVIwHNvra0SY6S2N4cvPxkiHH2tHhqw6PJas2m5V1Y3rTWGxXDTVdGaB1MNBMU/YTWrUDQtOmdeBG3XmpbKI8KmJidYnda6z", + "format": "base64" + } + ], + "server_name": "www.example.org", + "t0": 0.017159, + "t": 0.02596, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "http://www.example.org/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": null, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011274 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.0168 + } + ], + "control_failure": "unknown_failure: httpapi: all endpoints failed: [ connection_reset; connection_reset; connection_reset; connection_reset;]", + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": null, + "accessible": null + }, + "test_name": "web_connectivity", + "test_runtime": 0.506799, + "test_start_time": "2023-11-27 16:09:23", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json new file mode 100644 index 0000000000..0af6b25a6f --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json @@ -0,0 +1,133 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json new file mode 100644 index 0000000000..61a5d50d2b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json @@ -0,0 +1,25 @@ +{ + "DNSExperimentFailure": "android_dns_cache_no_data", + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": { + "2": true + }, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json new file mode 100644 index 0000000000..252bdeef52 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/measurement.json @@ -0,0 +1,501 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:25", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011435, + "t": 0.017145, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017166, + "t": 0.017166, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017262, + "t": 0.017276, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017279, + "t": 0.024791, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.024884, + "t": 0.024885, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 868, + "operation": "read", + "proto": "tcp", + "t0": 0.024886, + "t": 0.025029, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025908, + "t": 0.025916, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025918, + "t": 0.025918, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025937, + "t": 0.025937, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.025986, + "t": 0.02602, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1715, + "operation": "read", + "proto": "tcp", + "t0": 0.026025, + "t": 0.031871, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032076, + "t": 0.032076, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032171, + "t": 0.03218, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4031, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032195, + "t": 0.032195, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000055, + "t": 0.000055, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000089, + "t": 0.000149, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000152, + "t": 0.000174, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000155, + "t": 0.005704, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000179, + "t": 0.005828, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005877, + "t": 0.005877, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "LZyBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000064, + "t": 0.005711, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "AWyBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000131, + "t": 0.005838, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "getaddrinfo", + "failure": "android_dns_cache_no_data", + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000084, + "t": 0.005954, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.025937, + "t": 0.032076, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011435, + "t": 0.017145, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVANQ6lJE+IdSnt8e3OkDFOFbzEblxMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkyNVoXDTIzMTEyNzE3MDkyNVowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu0cmmf4OG009fqxlToJYMsUNrPq9gC96Cygn1U0QLZy77/kLxz9c+wsTAacKRbsZFIt0PqeabatZdBbnupDpL54fm7F0Z17EzgvUEj+2Uy5avkZvVbCAjL4agAx0ElZFmq7m2rn4FUTA/TreAPlg24biMzgfK4iYTa+MxXrmr8eP10jvG6Ri//n3qZ0AiQYsaQyCZ97rNGX0TZPZmN+tLR/cxC9s+GVqP5xj3WgaXiuCRMhE76REEZNbNTGT64X60l0X3jTETfV7yBpYShpUrJS+o6aIAk+5CHPg+uGzkCx3A+EmoNYgF9hjXp4d1jDeXBUk8S1y4NVB/VlDlkQYFQIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRjnsmpYWPW0X/k4+W7dTzSatd1UzAfBgNVHSMEGDAWgBSNX4PPDDoYWhgxOLd9c7KR+9aPhDBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQBhJOyZzYwuzEMhOHLY79UswJXDmXw0HtzPoJSDfiS9PFGXY9LVaoQA2i9ahAbJcLSt1cuBn+I0+w++wuasUvpACJ5C/mxU9DQ4ukcd6gU3GkNXkJ6ldfXAyZLbXb3RjH5oo/Pfz/P5bYu6LqNs2h5/17vJJjeDr9NsWjgC5c2OUXpNtOv+lhVHtmOqbjDBpb1iwgMf1aXUBd8bHbQkbLo6J8PQjo69ElmdW9yj9UF2IX52MDDkPc47vhpU4ozY9YcROfRNSdwZDNWhESJrhXn5Nmsh7v0uTOD5GJH3bDoOxPMj+YbmtwoW/QJKwNsODYfkOutSBrSSx4TXs+syOKRc", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAMOSOaV9qf6p3Q0rnpbSg7Dz5sRSMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkyNVoXDTIzMTEyODE2MDkyNVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVdKO6kl1WBL3j+exwKkhDBOKpeLy9imseWVuxhico1cRT1j+YvVJ9io1XeelmBioeLJNASoPhRJt9rR5YPogwAwl1Rz9krH1VZ7iFHeEFjsojUOrfrw4WatqBnJfV7FoVG+pKtG/o13wS2zBKyo5eAfORnh8TfhIknAjnBnyzeSnG265S/qPuyYAoy5AL/e0ur4Na9EIVmpZQxrkEeS+n5c72EcxfERCA1sGLlfLACi0+N3Jwrqc9iEm5WubYLQ3WROges22wODcNz26Lw0IpDJZeIAqCK1mAs4U8UCQrO0LsSAD6BpYrjNSeK/ZRN7+SiqLBoXxrQ4kPcqGRWM+TAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSNX4PPDDoYWhgxOLd9c7KR+9aPhDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAGBOujdsh7Pg5PLYPceWAbbWrTpQfL82pYP3AngKIZIJRXBWNBKveZKk1IEJcGIo9o6118FGcfL3nqlAgZqX9WF8r0d4jBu21uzUG1Fe59VRu8HAJjcn8NMFR94sQZ+5GWoQvKAI/+TZcouNgZr6gO6E6QpmDdDG/0FCPE1nFkDR8OMepOSe+fAtczM1spY6dXWlqukatd2FZGm0EWS3bTz1jF2REnmSPsCJFrnQt5IpPWR8wD9zAjpjsnT8xB8MDPy64aWPqzWIQT06R0AgTlGveOareO/kzcLUn/ZVygKcE9Vi+NiWiSX3DrU7Ht50bpyw5JiMz/g+BIqvHJtDgMQ==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.017166, + "t": 0.025918, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:2}]", + "t": 0.011376 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.025927 + } + ], + "control_failure": null, + "x_dns_flags": 2, + "dns_experiment_failure": "android_dns_cache_no_data", + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 33, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506237, + "test_start_time": "2023-11-27 16:09:25", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json new file mode 100644 index 0000000000..b1a0220bd1 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json @@ -0,0 +1,136 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "android_dns_cache_no_data", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json new file mode 100644 index 0000000000..23c80081ac --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json @@ -0,0 +1,25 @@ +{ + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": { + "2": true + }, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json new file mode 100644 index 0000000000..6ff7384449 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/measurement.json @@ -0,0 +1,511 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:26", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011742, + "t": 0.017089, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017105, + "t": 0.017105, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017201, + "t": 0.01721, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017215, + "t": 0.025465, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025557, + "t": 0.025558, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.025559, + "t": 0.025705, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.0266, + "t": 0.026607, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026609, + "t": 0.026609, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026627, + "t": 0.026627, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.02669, + "t": 0.026721, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.02668, + "t": 0.032186, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.032222, + "t": 0.032543, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032559, + "t": 0.032559, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032579, + "t": 0.032585, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4030, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032593, + "t": 0.032593, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000053, + "t": 0.000053, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000088, + "t": 0.000094, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000097, + "t": 0.000118, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000137, + "t": 0.005192, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000099, + "t": 0.006034, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006058, + "t": 0.006058, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "6taBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000077, + "t": 0.005198, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "RM+BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000062, + "t": 0.006042, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "getaddrinfo", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000073, + "t": 0.00615, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.026627, + "t": 0.032559, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011742, + "t": 0.017089, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVANkH9/llAciwP58S1bAB7zsTAzzrMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkyNloXDTIzMTEyNzE3MDkyNlowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy9NeUwBkaCcDwXpQuHHx+PsDrpN+FUlsjS9fXqBrWgELHrOSVn2Zg8bNlm4D7VTPVh/tBN88vqQwRSRsukiuV+lMbJagQQBynDQHhHuFfwXLnD94U1Koi9QKb42EVTXLAWo2X+eofp30Tyj/h4xCNvTv46WbyIiUpL9jKeowfWxK26pIc8oV9t/RYoewsIWl6uUnoZnWCSsCh3Mo0Wdh/1WctTpAJsy0X+YdLUAWVwHgfg06coq0ebKX+4j0oFDew8QyXjqEbcmCFxDoIdAh3h5wVsyD8Ifx11id7VUhK+q76hzW8KRdzES60IBmMXhp3B7jnOIkCWcO+Dgos5/QWQIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSjZ9V1DzK3lEqjpETK40sYWL8ZADAfBgNVHSMEGDAWgBTAmFHLvqZbG4Vmwln8SrXh+u5ksTBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQAoz5uAQmUcUZ8lAIz2FBbWXEbJIMlg4MhF4Expk9gF4JkI/T9OnXArNcUM7MQZIgH33M3CzoJKtE//K2F2pHqo+pCiTOH04MoJYs7YKL612kgzbfhw9SRPCpMV4n/W6QQU8g0CK9EOtCaYMysSAvHyiOT9WI1XkqAJuvfHTLBBmUjx10ig7zj/J+IPsEYGHNrMvBqCUaPZvisqB1o0rHOja6u1756v8Up7zLWP+rvN8ZMAcW1wgxNV8NtHOuXnSe190o+kz73wM15Sqk6svxO/W2sBlNfQJ2ble2wuMgDxiWl2B6KWGXgFOcTMuwhbaNDuhVl0XFWAgJu2W7UKxZ4V", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIULr0zF5d2U011cwoE2ffjXtX8HGcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTI2WhcNMjMxMTI4MTYwOTI2WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkapOyU5Hffey9fYGf/o5kn7C7O0S0b11yK5Ts55Lntp5mV0YJbPK8PnMAfeW/kChMaBj0F5JXLbFrYX2e7hIGxw6hZrKXqylIW3+wTD3FDYW5nu06gLAV7D7cejfNIDpwXcWfogI+JBR1ivGI1p7mGNstbLuGBdqcwn6bkL1/AL5Qsdse64mlkbtXClvObZWSKm3xHxSYKuRiVQHTw8z1B71etSPT0OeoM2Rha1iofBm0d1abxI/hp8rfQXoH+vyuYIJyd52qBfXl0+ZOUsFC8abAbpMr8RoUG664WTGdSsLSRo+Eow88cWIklvDyok6NimgUac29pX97jktA4GF8CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMCYUcu+plsbhWbCWfxKteH67mSxMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCHIh/msQovOzaY4/sRl95pWYjJhUQm1cE9pCy5aCuAtNmXpX5zcCUVesJC4JBQIqfMMce08I4E+AixNt/fkqpr8mza5yfbUwaVFh1WJH6kWhnVH12o/ns3ZvRgCz56t7NspGsfDoE6hdjEU5SlnKcqYrbkdfNcjL8OCg5Q/RuaSCfrat725cNanhKYPZQ+GrlnJ+RDnNAqdzD6gaN+FmCZOo0Za/M5eRuYJPf3YK3722JiPUeIMWDSXlKXqp/lVoHJOneQBav35eGrcP8U0/c7KedquDhrUGunxdaM8+thvRkrUdapRAja6Ys1oNXios/kZTUyYnjMPItj01S5nFnj", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.017105, + "t": 0.026609, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:2}]", + "t": 0.011691 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.026618 + } + ], + "control_failure": null, + "x_dns_flags": 2, + "dns_experiment_failure": "dns_nxdomain_error", + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 33, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506481, + "test_start_time": "2023-11-27 16:09:26", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json new file mode 100644 index 0000000000..ab26edd3a6 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json @@ -0,0 +1,136 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json new file mode 100644 index 0000000000..e53951b954 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json @@ -0,0 +1,23 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json new file mode 100644 index 0000000000..8e50e2470c --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/measurement.json @@ -0,0 +1,694 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:28", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010538, + "t": 0.016724, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016746, + "t": 0.016746, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016844, + "t": 0.016853, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016855, + "t": 0.03675, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 1738, + "operation": "read", + "proto": "tcp", + "t0": 0.036844, + "t": 0.036845, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.037707, + "t": 0.037717, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.037721, + "t": 0.037721, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.037744, + "t": 0.037744, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.03779, + "t": 0.037817, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 1208, + "operation": "read", + "proto": "tcp", + "t0": 0.037783, + "t": 0.04731, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 507, + "operation": "read", + "proto": "tcp", + "t0": 0.047348, + "t": 0.047784, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.047798, + "t": 0.047798, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.047817, + "t": 0.047825, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 4029, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.047832, + "t": 0.047832, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.063851, + "t": 0.06904, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.069052, + "t": 0.069052, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.069137, + "t": 0.069144, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.069146, + "t": 0.076953, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.077038, + "t": 0.077039, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 866, + "operation": "read", + "proto": "tcp", + "t0": 0.07704, + "t": 0.077067, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.077906, + "t": 0.077913, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.077915, + "t": 0.077915, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.087954, + "t": 0.087959, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2314, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.087966, + "t": 0.087966, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000061, + "t": 0.000061, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000098, + "t": 0.000118, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000176, + "t": 0.000189, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000123, + "t": 0.003757, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000197, + "t": 0.003991, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.004015, + "t": 0.004015, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "59yBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.004006, + "t": 0.006147, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "IkaBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003772, + "t": 0.006266, + "tags": [], + "transaction_id": 1 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000105, + "t": 0.003875, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "IkaBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000071, + "t": 0.003761, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "59yBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000157, + "t": 0.003994, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.037744, + "t": 0.047798, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010538, + "t": 0.016724, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.063851, + "t": 0.06904, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUdrv5xEkkgpmT3cq+CdRmrTjCgj4wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTI4WhcNMjMxMTI3MTcwOTI4WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCorcpLd6MqA2HRSXAbk7OTmyulAzFV7lfBfWHDIo/thiXYZ1XRPD4dFLaZTdiI8ULt6L8w5qBE4878WGt4PCjAPeeg1+ycr2EUnwlMlrGwDX1ncwsp+cyLa4pAIizdKyxRqGtzxIFUdDh134zUCd39FZlIgk9VIZmytleA+PISFV6flBt4zeiJWyggj92jRklF+nmdFXSSunIfHAkeqDGoEv27Besc8eYfiv/RZa/ZTbI+/YH6Hc4bHg8LPGiOMqYGa1Vd89W9B69L/V4RVukZhHIpwN1jvVo1gSBhsYcg3LBoPP2PGYTySYyJsfVdWmyl7XiNoHylk20p+s/2w8g7AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFJklbGfDSlqtutTYB3HBXOYOWciPMB8GA1UdIwQYMBaAFDxugnyO2fSRymQ3xWXCceNfZ9M5MEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBANkXtdHWCVOACV+lRJbVtpumjis8TdEEJOZGjzux6UY/8CVznunXmo9itkFEdCaDrH2wco8z/NPAjA86nuwt/7/yvgh4YZYTSoFrvWVaOrLwZICTWLPBjQi64BkctPtXElfpW7zX5lWEHpkMpp2Nk79kkdYykArR+Yb2Mz3zqGLhx1pesrc12xhsZ84ViHfPRcCjEb2z/YH9cZxnUER/bfvsjwJ4aJ8m5S341xP4QDhh1KuJqVKvtL0TKHTgwzxBXDL/8Z1p0MEO69J8CnST2hKwZ4QUULTEOs6fYxsRALjmoR18d2KkVS3CETGkcwQQqMFNUnJgfzBl3BlYefzH+WI=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUIV+XGPruAJJ2WPz2lv7My6RXorswDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTI4WhcNMjMxMTI4MTYwOTI4WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOovTYdIrYuQpUn09DkKi2rKmU+Af8Vz7/LxGd5+BZppTjOaebAl2eE/TM2KWfnp4LHyZpNwEz7FxJQ00PZ9lp3wVF9n4N68Pdsd0bb2UK+M4jSmUA6ZCfhdeJBKcjn5yv2Y0NKpyJXXUXNlRHj2jCaoukFo+h3ELrBIqriapX9xWwY8YnhY6kuwoladbghf3mWlYo5TdMkGr9wlxEDre5IKxIam7GcyaAlKFQ6pVXIH6KQv0soX0zu7Rq2MFipKi4dnGuK4Zpsek5lM9s+3Z2rpwcrGPhkgXDOHqH+gLrmtNpaxtOsfXyDJPNkA7q5dZVH7LUDUZ5zYFWQcO0mgtwkCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFDxugnyO2fSRymQ3xWXCceNfZ9M5MBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQDpWe2jfptUMVF8CU8h0KrJGtqIE9PZRIIYh3/TbQ4AyYa+UPd3eur4MMS2HwZUtu7UIGYjZLmt8jlWrq20paOkkg6ty46Ca3KZHBM2x3+DXsbFuSMqASdAWFpRPT51HacyDuSXm+F28FQ3RbHNknmjSKNG1WVAEN7yZIuR/nMu+p/byzyCjBHqXP9MQUGwrYahe9Dj0K0vS17npygdjEJu+d/uIQYQAvdWneCXuTsSTwX68zDWqGwbbpHNbwqZX/BBj9Jw1x7Ydi0pjSFtfdm38+vTAwHyBSzqB2XmYNzGVA13DO2ORFhX0CMVTm4/AI2xgfTExY6U/ou+OzD2I4nk", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016746, + "t": 0.037721, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUdrv5xEkkgpmT3cq+CdRmrTjCgj4wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTI4WhcNMjMxMTI3MTcwOTI4WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCorcpLd6MqA2HRSXAbk7OTmyulAzFV7lfBfWHDIo/thiXYZ1XRPD4dFLaZTdiI8ULt6L8w5qBE4878WGt4PCjAPeeg1+ycr2EUnwlMlrGwDX1ncwsp+cyLa4pAIizdKyxRqGtzxIFUdDh134zUCd39FZlIgk9VIZmytleA+PISFV6flBt4zeiJWyggj92jRklF+nmdFXSSunIfHAkeqDGoEv27Besc8eYfiv/RZa/ZTbI+/YH6Hc4bHg8LPGiOMqYGa1Vd89W9B69L/V4RVukZhHIpwN1jvVo1gSBhsYcg3LBoPP2PGYTySYyJsfVdWmyl7XiNoHylk20p+s/2w8g7AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFJklbGfDSlqtutTYB3HBXOYOWciPMB8GA1UdIwQYMBaAFDxugnyO2fSRymQ3xWXCceNfZ9M5MEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBANkXtdHWCVOACV+lRJbVtpumjis8TdEEJOZGjzux6UY/8CVznunXmo9itkFEdCaDrH2wco8z/NPAjA86nuwt/7/yvgh4YZYTSoFrvWVaOrLwZICTWLPBjQi64BkctPtXElfpW7zX5lWEHpkMpp2Nk79kkdYykArR+Yb2Mz3zqGLhx1pesrc12xhsZ84ViHfPRcCjEb2z/YH9cZxnUER/bfvsjwJ4aJ8m5S341xP4QDhh1KuJqVKvtL0TKHTgwzxBXDL/8Z1p0MEO69J8CnST2hKwZ4QUULTEOs6fYxsRALjmoR18d2KkVS3CETGkcwQQqMFNUnJgfzBl3BlYefzH+WI=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUIV+XGPruAJJ2WPz2lv7My6RXorswDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTI4WhcNMjMxMTI4MTYwOTI4WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOovTYdIrYuQpUn09DkKi2rKmU+Af8Vz7/LxGd5+BZppTjOaebAl2eE/TM2KWfnp4LHyZpNwEz7FxJQ00PZ9lp3wVF9n4N68Pdsd0bb2UK+M4jSmUA6ZCfhdeJBKcjn5yv2Y0NKpyJXXUXNlRHj2jCaoukFo+h3ELrBIqriapX9xWwY8YnhY6kuwoladbghf3mWlYo5TdMkGr9wlxEDre5IKxIam7GcyaAlKFQ6pVXIH6KQv0soX0zu7Rq2MFipKi4dnGuK4Zpsek5lM9s+3Z2rpwcrGPhkgXDOHqH+gLrmtNpaxtOsfXyDJPNkA7q5dZVH7LUDUZ5zYFWQcO0mgtwkCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFDxugnyO2fSRymQ3xWXCceNfZ9M5MBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQDpWe2jfptUMVF8CU8h0KrJGtqIE9PZRIIYh3/TbQ4AyYa+UPd3eur4MMS2HwZUtu7UIGYjZLmt8jlWrq20paOkkg6ty46Ca3KZHBM2x3+DXsbFuSMqASdAWFpRPT51HacyDuSXm+F28FQ3RbHNknmjSKNG1WVAEN7yZIuR/nMu+p/byzyCjBHqXP9MQUGwrYahe9Dj0K0vS17npygdjEJu+d/uIQYQAvdWneCXuTsSTwX68zDWqGwbbpHNbwqZX/BBj9Jw1x7Ydi0pjSFtfdm38+vTAwHyBSzqB2XmYNzGVA13DO2ORFhX0CMVTm4/AI2xgfTExY6U/ou+OzD2I4nk", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.069052, + "t": 0.077915, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.010497 + }, + { + "msg": "conn 130.192.182.17:443: granted permission: true", + "t": 0.037734 + }, + { + "msg": "conn 93.184.216.34:443: denied permission: timed out sending", + "t": 0.087936 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.50433, + "test_start_time": "2023-11-27 16:09:28", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json new file mode 100644 index 0000000000..aa75455e06 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json @@ -0,0 +1,140 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json new file mode 100644 index 0000000000..618a14e76f --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json new file mode 100644 index 0000000000..9b4b3d447f --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/measurement.json @@ -0,0 +1,738 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:27", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011921, + "t": 0.017388, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.01741, + "t": 0.01741, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017518, + "t": 0.017526, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011902, + "t": 0.018216, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.018232, + "t": 0.018232, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.018297, + "t": 0.018324, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 1651, + "operation": "read", + "proto": "tcp", + "t0": 0.018285, + "t": 0.036075, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.036286, + "t": 0.036286, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 1651, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.03639, + "t": 0.03639, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017528, + "t": 0.040523, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.040634, + "t": 0.040635, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 868, + "operation": "read", + "proto": "tcp", + "t0": 0.040636, + "t": 0.040869, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.04175, + "t": 0.041757, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.041762, + "t": 0.041762, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.041797, + "t": 0.041803, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 2316, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.04181, + "t": 0.04181, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.068842, + "t": 0.074025, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.068838, + "t": 0.074251, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.074276, + "t": 0.074276, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.074369, + "t": 0.07438, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.074382, + "t": 0.082399, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1740, + "operation": "read", + "proto": "tcp", + "t0": 0.082493, + "t": 0.082494, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.083343, + "t": 0.083351, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.083354, + "t": 0.083354, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.083374, + "t": 0.08338, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2316, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.083386, + "t": 0.083386, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00007, + "t": 0.00007, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000108, + "t": 0.000118, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000144, + "t": 0.000174, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000122, + "t": 0.003917, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000178, + "t": 0.004392, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.004425, + "t": 0.004425, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "LgOBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003934, + "t": 0.005482, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "SRSBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.004416, + "t": 0.006071, + "tags": [], + "transaction_id": 1 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000069, + "t": 0.003329, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "LgOBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00008, + "t": 0.003925, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "SRSBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000127, + "t": 0.004398, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.182.17:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:27 GMT" + ] + ], + "headers": { + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 16:09:27 GMT" + } + }, + "t0": 0.018232, + "t": 0.036286, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011921, + "t": 0.017388, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "130.192.182.17", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011902, + "t": 0.018216, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.068842, + "t": 0.074025, + "tags": [], + "transaction_id": 5 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.068838, + "t": 0.074251, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVALhpxe1Fk0C4V6YcdLQ9WO1N8FaiMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkyN1oXDTIzMTEyNzE3MDkyN1owMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTZ4feyF+M5jkkynTxfdDx4IWGvu+MRcmY8053JDxmA5zIo4UvTZ3hJYwPxTAGWfFrU2drW2NZIKIwLD2xy2kzmiIUbLmhH4mAU6w+7zV6V/S2++3E3r/exRd/8KUvWP5vGG3WQUAoraRSuPrnhQjn3Wn9oUcwrTcGwiLwwKRliCqCoS1l8Qm/uaaV5iygidTTYXKMl/VczHQza0XRD23J+Orx3Olrsv1JINFFq5kOLzZ9RKjfiELm4A5uj41bXV/UUpaAWXaQHM9/KxZz9jwETLvOPShbzuH+19N+VPB5h9c4nZUgz1gMTYHGrsPalDpU4SqYSrOQPzi/pNcMQx4wIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSBLr6yW+PHANCBvHoFMCxblnokojAfBgNVHSMEGDAWgBQtdu/sFVVi3aR4h8Io+2QKH0ErPDBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCl2IsyIaalLLgzqkH1XmLL5oIlWnpBy52rM+zDgTQPM/6PLo4yJMW8f6S7n5JVQJ2b6lIMTbNllN2oFpFF3tK56m28JJxyzvdYuekLdU5+1eMSmRCv6f9/V6o1GzGDiOuuiw/HVXRt2PM/PyUTTZgc7bmaM4ITpXGBV3+n/KLUTlINgEsTbVhnCT41UmZS/a3wUJd//fyBM0sjXTYQxCHZWvWv9x0GeUXJqugtQTAUMf1COIOT8i9gyUHe+I3ZcXFLMmmXeYFhp9XBwLMBfnz0y/ePRyU6rktqjymlKUhqSsb0xfA4o5JrH/DNYyB7LNVIfq57mcFdCp7QqVePR/MW", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAIB+XnH3i5CDUoFt4Gtk8hB4ujL5MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkyN1oXDTIzMTEyODE2MDkyN1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTxF79DP+lmctu8QdJFeHjUC1OXxGK3lx6LT9J4+KHV+JJ6ydRHuoaBlStpNig5M9Uls+7LmqTtUCr/fueF+Ldhmssna9T47q2iUFTKQC37toWF0jQ+P2kvFU+vALBXsk2XBNJDGkEsEBB320D42B5mpvkCCMve34uh7m2N77XT66Mgrcn/DpT5xTXKY+k7RG4WrjYhk+/ETY+m49y5IOx2cv36EBapYYieVCefwPtFV5FKDGXyYPb0LLhnkz7ZGJJQB4JV5wOYFOSjH5hkWCB4JWcAzu4PNY5e+6Lku+v8ZdO1+aU6atsUG37W1UKgnIn2FLlxyEv7p8pXldLjmFJAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQtdu/sFVVi3aR4h8Io+2QKH0ErPDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEA0uWmLKkJP3+iY4mK/qmxQx+st7ntjp34lG9/T82DDy1melA+T5WpCQFq1fUnjCt4e9YKdPDHRSgvVR38t9GJubIF7+3rvmMfjPjCr1oTXCp5f/BK8EZCbcaA/AwWxrIeShfQFGs/B5TCH8qQY4fZAfJbdV8z2i7hgSKekh1Y9lylZ8d0J5d2BlY1/H4UXIWLnIlotGsu6/5dTVGgNKkWCmAZ5eTzIKBj49a/MppA3c+6L+o+sVqwcyQJJMBcgUk6gx+iJiJhzWvMwsU6FktWrLZkG1MQJ8si9oHJsVDAb4lpX20aBMrvuQvszoPNMHl2YuT1IfMkLvpIKJcmqvRPRg==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.01741, + "t": 0.041762, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVALhpxe1Fk0C4V6YcdLQ9WO1N8FaiMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkyN1oXDTIzMTEyNzE3MDkyN1owMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTZ4feyF+M5jkkynTxfdDx4IWGvu+MRcmY8053JDxmA5zIo4UvTZ3hJYwPxTAGWfFrU2drW2NZIKIwLD2xy2kzmiIUbLmhH4mAU6w+7zV6V/S2++3E3r/exRd/8KUvWP5vGG3WQUAoraRSuPrnhQjn3Wn9oUcwrTcGwiLwwKRliCqCoS1l8Qm/uaaV5iygidTTYXKMl/VczHQza0XRD23J+Orx3Olrsv1JINFFq5kOLzZ9RKjfiELm4A5uj41bXV/UUpaAWXaQHM9/KxZz9jwETLvOPShbzuH+19N+VPB5h9c4nZUgz1gMTYHGrsPalDpU4SqYSrOQPzi/pNcMQx4wIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSBLr6yW+PHANCBvHoFMCxblnokojAfBgNVHSMEGDAWgBQtdu/sFVVi3aR4h8Io+2QKH0ErPDBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCl2IsyIaalLLgzqkH1XmLL5oIlWnpBy52rM+zDgTQPM/6PLo4yJMW8f6S7n5JVQJ2b6lIMTbNllN2oFpFF3tK56m28JJxyzvdYuekLdU5+1eMSmRCv6f9/V6o1GzGDiOuuiw/HVXRt2PM/PyUTTZgc7bmaM4ITpXGBV3+n/KLUTlINgEsTbVhnCT41UmZS/a3wUJd//fyBM0sjXTYQxCHZWvWv9x0GeUXJqugtQTAUMf1COIOT8i9gyUHe+I3ZcXFLMmmXeYFhp9XBwLMBfnz0y/ePRyU6rktqjymlKUhqSsb0xfA4o5JrH/DNYyB7LNVIfq57mcFdCp7QqVePR/MW", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAIB+XnH3i5CDUoFt4Gtk8hB4ujL5MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkyN1oXDTIzMTEyODE2MDkyN1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTxF79DP+lmctu8QdJFeHjUC1OXxGK3lx6LT9J4+KHV+JJ6ydRHuoaBlStpNig5M9Uls+7LmqTtUCr/fueF+Ldhmssna9T47q2iUFTKQC37toWF0jQ+P2kvFU+vALBXsk2XBNJDGkEsEBB320D42B5mpvkCCMve34uh7m2N77XT66Mgrcn/DpT5xTXKY+k7RG4WrjYhk+/ETY+m49y5IOx2cv36EBapYYieVCefwPtFV5FKDGXyYPb0LLhnkz7ZGJJQB4JV5wOYFOSjH5hkWCB4JWcAzu4PNY5e+6Lku+v8ZdO1+aU6atsUG37W1UKgnIn2FLlxyEv7p8pXldLjmFJAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQtdu/sFVVi3aR4h8Io+2QKH0ErPDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEA0uWmLKkJP3+iY4mK/qmxQx+st7ntjp34lG9/T82DDy1melA+T5WpCQFq1fUnjCt4e9YKdPDHRSgvVR38t9GJubIF7+3rvmMfjPjCr1oTXCp5f/BK8EZCbcaA/AwWxrIeShfQFGs/B5TCH8qQY4fZAfJbdV8z2i7hgSKekh1Y9lylZ8d0J5d2BlY1/H4UXIWLnIlotGsu6/5dTVGgNKkWCmAZ5eTzIKBj49a/MppA3c+6L+o+sVqwcyQJJMBcgUk6gx+iJiJhzWvMwsU6FktWrLZkG1MQJ8si9oHJsVDAb4lpX20aBMrvuQvszoPNMHl2YuT1IfMkLvpIKJcmqvRPRg==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.074276, + "t": 0.083354, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "130.192.182.17:80": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.011861 + }, + { + "msg": "conn 130.192.182.17:80: granted permission: true", + "t": 0.018223 + }, + { + "msg": "conn 93.184.216.34:80: denied permission: timed out sending", + "t": 0.084054 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.504877, + "test_start_time": "2023-11-27 16:09:27", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json new file mode 100644 index 0000000000..54db7213a3 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json @@ -0,0 +1,228 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "5": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json new file mode 100644 index 0000000000..819d311e4b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 0.12263535551206783, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": { + "access": true + }, + "HTTPDiffUncommonHeadersIntersection": {}, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json new file mode 100644 index 0000000000..1d12848a3b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/measurement.json @@ -0,0 +1,520 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:29", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.012329, + "t": 0.017444, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.017472, + "t": 0.017472, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.017518, + "t": 0.017552, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.012346, + "t": 0.018048, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.018066, + "t": 0.018066, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.018154, + "t": 0.018161, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 207, + "operation": "read", + "proto": "tcp", + "t0": 0.017506, + "t": 0.020318, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.020368, + "t": 0.02037, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.020376, + "t": 0.020376, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 207, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.02042, + "t": 0.02042, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.018163, + "t": 0.025959, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1739, + "operation": "read", + "proto": "tcp", + "t0": 0.02606, + "t": 0.026061, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026945, + "t": 0.026953, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026955, + "t": 0.026955, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.026971, + "t": 0.026978, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.026987, + "t": 0.026987, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000074, + "t": 0.000074, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00013, + "t": 0.00015, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000163, + "t": 0.000179, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000154, + "t": 0.00474, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000183, + "t": 0.006627, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006647, + "t": 0.006647, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000068, + "t": 0.005911, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "TxSBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000085, + "t": 0.004748, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "agGBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000083, + "t": 0.006632, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eAccess Denied\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eAccess Denied\u003c/h1\u003e\n\t\u003cp\u003eThis request cannot be served in your jurisdiction.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [], + "headers": {} + }, + "t0": 0.017472, + "t": 0.020376, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.012329, + "t": 0.017444, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.012346, + "t": 0.018048, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUCkELZQtsq3kipkz8lg9aSz06Au0wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTI5WhcNMjMxMTI3MTcwOTI5WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCixrPYpBazxhIkLr5a+4b7MhuE5amlfM0CW68G/3owdWzIjcN1/A3such88FXE0PAvjDfxL6Z8yzQydNU+S8TFUBx0eYpl5kUzelgt/dxxOpKJxDKJiOVI0XDYGWRUEWLPP63/o2LYS7bsk8fHxbWpDkpOk27HYNvTgJeu8+mpqyyMdNGMb78W3GV2nFEtQez7kgJmAqB16xHmmrPehfv/InWalmmzHccn1DoBqWTiWQZEDQvRAvDJE7GrFPVQwsIkNFcEfu9xfbDS/zur5b3+DNm7AkHEvTl0Yn0k0gcB+zvuoWK+xFb06b7e0W4W5tCJtRIIkUj4fUYiHKZojiZAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBzhcyEuzIwpFY04VNMaNGzM1TlmMB8GA1UdIwQYMBaAFImIYXQuL3Ouem9hmueEda65CzyaMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAL34IC9oFg/OgsqlpV3GvTZISG6AKPlUTM4bV8RLxOc2AlcP18jGJAJSmJ6wdBn/lwl5kkfScP/nUP44YYn2zo9vw/NbK1T48a8INp2OlvLTv4L+ICoJwjgrrN8A4JOyDTHI0rMm/y1HSOMdTtHg8rX3s0xVeDJZHn1QrFeIfZ8qFCV122dpd/7Far/NWyuW7iXoqF+Q00ur3J/7aL2jQdiLZsEIv8ARJDLEenuVgqhgcVZboP3cQgNMOn9xivVG91Fg9av1Akagcn0p852J213kTzOBtDQA+bzFwsQcwye1pYMAXKXPbBF4VOLIHfmsxdJDbo+8b251nWQ1RbVGwVw=", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAPTEPjffk2IgnK1te0JhDNloZl7jMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkyOFoXDTIzMTEyODE2MDkyOFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSR+id8ZTnwcUwzUyG2w0dxSFcHICILVHhMGqNbs4HruxvbF8I71qhX0r/aGh3LvTrbGu+fLVwDlX8foxxo0szHn0wloy7m3LsQMqlhJ8onbJPGgVX/bgMf65HxX0ToOYAbXB7Lg0eCLiIsNvgXXsmO5FTRwyttwEi0SkUT/RV+E6BT76Xpe5B1bGXJv+F6a0nZaX+jdGpwKpavVgxqQO4QIzAIUbNzZj8yP6YC7Kwtl44E6p8Vpt3hK7GOpePdBXp7jU7ODF5/ryJJ+4ytLvhCNU52rUFzOeHuGgcV295zry1gLmR5VsC1K1S+FBRozJzpflqoXi9XxmfW3opr/A3AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJiGF0Li9zrnpvYZrnhHWuuQs8mjAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAMlOT/fJNSVxhBYmIHzsauCyRdzSSpRbuMwdLQuqLQ6DdaFeX/smHWyLEBt2w/QvMw1Ce7ulR5lHFeTkbhiH53SdGirTP89lVFyEVCIrpZbo91CVaR22+xisHL01SHtFnIVFOidCiLtb0BGu/YWvOpIZB11z6rrXpNPP/QEiJRoE7wWXy30KH+vNvbNNCUBv+AnZwPvavg2s2afk7VA+x831jdqJhBJrt2Te/jZhCUKcCtIYcu6i1xEPlkBtAYWvoYD0/4BYWGU9zSdrjIr7f03FMEhGkrnUWew2hHOU7BBltcVCNoL9QZVfhJE6JteyjFFdCbNaF4dWRnhQZVhoXEw==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.018066, + "t": 0.026955, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.012295 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.017462 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 16, + "x_null_null_flags": 0, + "body_length_match": false, + "headers_match": false, + "status_code_match": true, + "title_match": false, + "blocking": "http-diff", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506959, + "test_start_time": "2023-11-27 16:09:29", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json new file mode 100644 index 0000000000..dbfcda2a40 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json @@ -0,0 +1,138 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..819d311e4b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json @@ -0,0 +1,20 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 0.12263535551206783, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": { + "access": true + }, + "HTTPDiffUncommonHeadersIntersection": {}, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..61f0f9954d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/measurement.json @@ -0,0 +1,740 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:30", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011031, + "t": 0.016359, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.016378, + "t": 0.016378, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.016438, + "t": 0.016465, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011035, + "t": 0.016728, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016742, + "t": 0.016742, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016831, + "t": 0.016838, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 207, + "operation": "read", + "proto": "tcp", + "t0": 0.016418, + "t": 0.019944, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.019971, + "t": 0.019973, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.01998, + "t": 0.01998, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:80", + "failure": null, + "num_bytes": 207, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.019999, + "t": 0.019999, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.01684, + "t": 0.036746, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.036838, + "t": 0.036838, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.036839, + "t": 0.036852, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.037712, + "t": 0.037729, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.037732, + "t": 0.037732, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.037749, + "t": 0.037757, + "transaction_id": 4 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.037765, + "t": 0.037765, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.063387, + "t": 0.068794, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.063364, + "t": 0.069264, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.069277, + "t": 0.069277, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.06936, + "t": 0.069366, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.069367, + "t": 0.076707, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.076798, + "t": 0.076799, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 867, + "operation": "read", + "proto": "tcp", + "t0": 0.0768, + "t": 0.076816, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.077679, + "t": 0.077686, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.077689, + "t": 0.077689, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.077707, + "t": 0.077714, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2315, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.07772, + "t": 0.07772, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000058, + "t": 0.000058, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000093, + "t": 0.000098, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000097, + "t": 0.000118, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000123, + "t": 0.003624, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000119, + "t": 0.003753, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.003773, + "t": 0.003773, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "OQyBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003764, + "t": 0.005777, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "eVGBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003642, + "t": 0.006252, + "tags": [], + "transaction_id": 1 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "eVGBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000078, + "t": 0.00363, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "OQyBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000066, + "t": 0.003756, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000077, + "t": 0.003862, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.182.17:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eAccess Denied\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eAccess Denied\u003c/h1\u003e\n\t\u003cp\u003eThis request cannot be served in your jurisdiction.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [], + "headers": {} + }, + "t0": 0.016378, + "t": 0.01998, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011031, + "t": 0.016359, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011035, + "t": 0.016728, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.063387, + "t": 0.068794, + "tags": [], + "transaction_id": 5 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.063364, + "t": 0.069264, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAMDErcB4UM+6M7jWUAhAUUwNt2/mMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkzMFoXDTIzMTEyNzE3MDkzMFowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0CvQa4vawn26MIXVpb4vG760kLQfZPC8JcJS3krNt0onDfdCYcSzCGMxLk2qE3DVxMvseVwoTy/6vHzxdpeg2oRszUYFEd1tkXLCmmSFqA7GTwLma/wY9Xe2ObOWfLU4WeycVDq4htAHJaiUz5bSlixREkD5G2IH+EFuxhOPefXW+o8KsRl+5NAhm0Tk35qY7aim0fcv/kAwqt/1aaRPWfKb3Gfi3grdtTW9o56w6Lh8IiD2MXnJK2JIklYwW8xL288BeX/fJLPWNLhUJZsxHuGXZgsSv4UDA5+Ut0Cg2NSYxzh6uIia2e37O2XR4O4Wv8GRwYaWgchM1Bj8bzezZQIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQFT381TvXABqTzd8JAsxhegCRBkTAfBgNVHSMEGDAWgBQhE4GWHU0sPEog0xE1rkNphZlp0jBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCvxoTpreA9SnFTPQGBjy9TzeCthLmLD+dUdt9OouFc25rzyN6/7mn3W1DH21n5bZpuQastMJgomZT+ciuu+dFaQmJZbBdGJLcUR6wsgY/A3Sc4U7g8fGOxj/Vl4O/yscBodw6azLHlLEStJqqLY0RUa/S5EWdDcwF0hI69An+5ick+RbmfgX9f5mieCMfw9R4lNsYvaw6xj1KJS8aUzD7xw/QoOK87nE2RgaSyrTY8EW1bmzMYyzBQq5jeYOx/4dBYmbFv4u0dJs8oVIvRbvTRkcUnQk+Px2hhUDzLrB90GGNIdDsyh6iuoRdd3pi0CXRMtLHHWREKJhYok5Cz5mFd", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUe/+MkHn1Xt/AZtDGUHWWzLpfD84wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTMwWhcNMjMxMTI4MTYwOTMwWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMSahwKSTH0AV0jZp75QTqKmVhgtsG2N7K2Y9WQQVaJYalTK0VUqozfUkFX7adDQet/nxWbYHAYaDITXV1Sh+cvmFJprm9AS3nq5T8rhJ1wTTYhIHoAgqvqHZh1xBJVcWYylXsmQpTVLo/WpiNGDe8QXDw2E9i2yggCZZutrqGGdOLI/LJ0qtFwVLP5D0NBYhyonwYlol0tFD9rZAxpiTWNDVtS4nuXoPDrbsq2J5yxKCCvBK7hPFPTj9MrY93sHmFS9rpKxX5BBQ5axwhfAIQuuzWZl3fr5m5BdTBMmKpCNF8C65TQuSSuQZ2r0J5YQHw1cjaD2KqJoYhFdtB0/IW8CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCETgZYdTSw8SiDTETWuQ2mFmWnSMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCmx5KwlrJn1TaakOsAOtSRYcE8ZJ6uydYx+rWzDjQmW1b/dbRjb9IsJ9fcCIwam21bkxc99Rr4ExhAS2xI5v2BUNP76VhdWKwNwKgR02z6KRp+62J8u2oGhmgsQbybTYFlZoMx/ijruZyQaI0TSzC+7nhsHqYl7EIKEV0aiWK1Dq7lvNkABHIVHpXEMswNKtuhxY/iX39mnA2RAaU8sbvGrvI2O8FIhJ10o2Ulq/mpLRfjdstQpN2NCZPX0NP9SQ0wF5VkVs+aH0QqSVvZx5CbzNMIOaAc191sRrSqvlnPqRps8dR5BQO2cZ8+V/XmiGkup+kNUFqauVuUmrsLa5Oa", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016742, + "t": 0.037732, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAMDErcB4UM+6M7jWUAhAUUwNt2/mMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkzMFoXDTIzMTEyNzE3MDkzMFowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0CvQa4vawn26MIXVpb4vG760kLQfZPC8JcJS3krNt0onDfdCYcSzCGMxLk2qE3DVxMvseVwoTy/6vHzxdpeg2oRszUYFEd1tkXLCmmSFqA7GTwLma/wY9Xe2ObOWfLU4WeycVDq4htAHJaiUz5bSlixREkD5G2IH+EFuxhOPefXW+o8KsRl+5NAhm0Tk35qY7aim0fcv/kAwqt/1aaRPWfKb3Gfi3grdtTW9o56w6Lh8IiD2MXnJK2JIklYwW8xL288BeX/fJLPWNLhUJZsxHuGXZgsSv4UDA5+Ut0Cg2NSYxzh6uIia2e37O2XR4O4Wv8GRwYaWgchM1Bj8bzezZQIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQFT381TvXABqTzd8JAsxhegCRBkTAfBgNVHSMEGDAWgBQhE4GWHU0sPEog0xE1rkNphZlp0jBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCvxoTpreA9SnFTPQGBjy9TzeCthLmLD+dUdt9OouFc25rzyN6/7mn3W1DH21n5bZpuQastMJgomZT+ciuu+dFaQmJZbBdGJLcUR6wsgY/A3Sc4U7g8fGOxj/Vl4O/yscBodw6azLHlLEStJqqLY0RUa/S5EWdDcwF0hI69An+5ick+RbmfgX9f5mieCMfw9R4lNsYvaw6xj1KJS8aUzD7xw/QoOK87nE2RgaSyrTY8EW1bmzMYyzBQq5jeYOx/4dBYmbFv4u0dJs8oVIvRbvTRkcUnQk+Px2hhUDzLrB90GGNIdDsyh6iuoRdd3pi0CXRMtLHHWREKJhYok5Cz5mFd", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUe/+MkHn1Xt/AZtDGUHWWzLpfD84wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTMwWhcNMjMxMTI4MTYwOTMwWjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMSahwKSTH0AV0jZp75QTqKmVhgtsG2N7K2Y9WQQVaJYalTK0VUqozfUkFX7adDQet/nxWbYHAYaDITXV1Sh+cvmFJprm9AS3nq5T8rhJ1wTTYhIHoAgqvqHZh1xBJVcWYylXsmQpTVLo/WpiNGDe8QXDw2E9i2yggCZZutrqGGdOLI/LJ0qtFwVLP5D0NBYhyonwYlol0tFD9rZAxpiTWNDVtS4nuXoPDrbsq2J5yxKCCvBK7hPFPTj9MrY93sHmFS9rpKxX5BBQ5axwhfAIQuuzWZl3fr5m5BdTBMmKpCNF8C65TQuSSuQZ2r0J5YQHw1cjaD2KqJoYhFdtB0/IW8CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCETgZYdTSw8SiDTETWuQ2mFmWnSMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCmx5KwlrJn1TaakOsAOtSRYcE8ZJ6uydYx+rWzDjQmW1b/dbRjb9IsJ9fcCIwam21bkxc99Rr4ExhAS2xI5v2BUNP76VhdWKwNwKgR02z6KRp+62J8u2oGhmgsQbybTYFlZoMx/ijruZyQaI0TSzC+7nhsHqYl7EIKEV0aiWK1Dq7lvNkABHIVHpXEMswNKtuhxY/iX39mnA2RAaU8sbvGrvI2O8FIhJ10o2Ulq/mpLRfjdstQpN2NCZPX0NP9SQ0wF5VkVs+aH0QqSVvZx5CbzNMIOaAc191sRrSqvlnPqRps8dR5BQO2cZ8+V/XmiGkup+kNUFqauVuUmrsLa5Oa", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.069277, + "t": 0.077689, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "130.192.182.17:80": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.010973 + }, + { + "msg": "conn 130.192.182.17:80: granted permission: true", + "t": 0.016366 + }, + { + "msg": "conn 93.184.216.34:80: denied permission: timed out sending", + "t": 0.078806 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 16, + "x_null_null_flags": 0, + "body_length_match": false, + "headers_match": false, + "status_code_match": true, + "title_match": false, + "blocking": "http-diff", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.504475, + "test_start_time": "2023-11-27 16:09:30", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..39fb1a3a44 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json @@ -0,0 +1,224 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "5": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json new file mode 100644 index 0000000000..80a44a3dac --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json @@ -0,0 +1,19 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true, + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json new file mode 100644 index 0000000000..af2afa5a03 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/measurement.json @@ -0,0 +1,664 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 16:09:31", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011465, + "t": 0.016824, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016849, + "t": 0.016849, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.016951, + "t": 0.016962, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016968, + "t": 0.02494, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025032, + "t": 0.025033, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.025034, + "t": 0.025193, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026062, + "t": 0.026069, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026072, + "t": 0.026072, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.02609, + "t": 0.02609, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.026127, + "t": 0.026163, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.026166, + "t": 0.032138, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032172, + "t": 0.032172, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032197, + "t": 0.032203, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.03221, + "t": 0.03221, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.043732, + "t": 0.047151, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.043728, + "t": 0.047743, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000065, + "t": 0.000065, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000099, + "t": 0.000115, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000143, + "t": 0.000164, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000169, + "t": 0.006212, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000121, + "t": 0.006576, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006606, + "t": 0.006606, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.032234, + "t": 0.032234, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032273, + "t": 0.032277, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.03234, + "t": 0.032358, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032362, + "t": 0.038734, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.032299, + "t": 0.039108, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.039133, + "t": 0.039133, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000076, + "t": 0.005872, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "gcyBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000124, + "t": 0.006218, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "zJ2BAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000076, + "t": 0.006582, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032248, + "t": 0.038266, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "OE+BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.03232, + "t": 0.03874, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "DHaBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.03225, + "t": 0.039112, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:31 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:31 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.02609, + "t": 0.032172, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011465, + "t": 0.016824, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.043732, + "t": 0.047151, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.043728, + "t": 0.047743, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUOJGBVcMge+M/GVvFUREeQhex2rAwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTMxWhcNMjMxMTI3MTcwOTMxWjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCuklhYtwGgVl0RzP+hNrMyKMFXJrHswKW4htsVe+T23Ysv4PqtN2RkH+rn0mlJKxkmD8MRW1oXCVlUAXInBJPE28zUI8FeChFBExKcYSC98KiBawVQhpCQ6OV00fs6Jrd+UoIvsrf9l99Nc/sdSC9uXR0NEjRp0hJY1YAskp4hV/wXEBwRZzxTxQQv+udpuebGRpEn9Jm64bFYMUgkiKdlYjm45Rqpl92vo1exorazfIrwTYbRTy+2p+RyzMkosWzIx1RTPKh4LJIKYjyNq6zOYeJ/Xk+hSQ90lx9QslSRtdXu3xJS62gKGleD3iMijhwQHlX2k2lKmdjvd0+ZE9ClAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFJvSfLJQY4x41j/bdCH8I/poByqDMB8GA1UdIwQYMBaAFCapZEMR8rRn+8lT0FyOti/yFfgYMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCBsmRWv8M4tIf+YevXt352t1lUN20MeO2cZTU1dsPu0U9yXEACzRgfLSHw2J+SQXW0/QTgVvqLRbUb76re9BGY7hzmq4IZeNKUOALgWWo9/BYC87HcrokvSa3wo0gIDtBLde7BE0fswX0WIUb0SGvVO0z1UXh1xRVcLCtJMZIl1p88Q1MLp9uIR4e3iQsXjg4914DrAEvHoo04IDashE8Mr8d6uzyIKapttTfGz7E8OwOT9dRQaJtMyYaR3tOUEP6OkbrPr2HBM7k1MCrObQf9wNh7HrygJMOkfBuDmOtsjY+lX8sQU7EpBGshkmgXtWl8h4Kt7c9U0R61MnYOmaFe", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVANJslwzZzI13yNnkrmLyPbh5GXrbMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzMFoXDTIzMTEyODE2MDkzMFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTJam4H2idwfxtrRis5v66WG6VOSLjCdFUSNVP7Z11P44uU4uRLDIPYH4p5dzeEmCfHBTA8D1FgAS/kLI9Zs8JGsRMrK9EMZiUZ64ZCooNVVYIUbXx9nx1Bywvf4U0I12aX5gdalqg2jVEUEHy4Saq+FEVgoneq1t6roPzx65q52CEIiZRqmNjsfKYolxvQy4chb6Q0LxexdLEcJAe8AoOpHpClhJNZ0drV7AygBdzMg1OjXPHriGwAWq23T7TrhzYty2T2T6fxMGX9n4W4CsDqoTFVPhWZ7g1ECMo7IUesyVLj9PLmfuEEwpuTpj7sJ/yuVgA0UOPpo0GrS3KyW8rAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQmqWRDEfK0Z/vJU9BcjrYv8hX4GDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAiutrSy00wbsGlrCYPK2eZkYOTTQMQgIalIDrHeFRolRpR3IbROOziP3mXW9fr1XYTct+zTxbc6XEAgA2ecoPo6srTGoJKpA25JJHB81BVsFQ2zUZljmvo3J7TAcxZlKiYb2tl38kyVFNn8/AT7DUaf+/M1BD+CqrZZNRAK+r/i7Rjv0ng1QJbiLiabFNkjc5knAFLLNbOt3nfuW2r8X7nc3EMhTkdqzInT452fioLp/f1eX1zJNPRnIuntNEwvWeNYE3mLX7nilJVIMKHqypnO+RSyWrmC3Phc8HctWl1k4XEn43DvruRnGioWQTEApBmBQFoymeeTgAwQ7KtktzYw==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.016849, + "t": 0.026072, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011406 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.02608 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.043688 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.539465, + "test_start_time": "2023-11-27 16:09:31", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json new file mode 100644 index 0000000000..3c75bbf443 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json @@ -0,0 +1,228 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionIDs": [ + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [ + 5, + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionIDs": [ + 5, + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json new file mode 100644 index 0000000000..b09118c64d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json new file mode 100644 index 0000000000..c98e66c256 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/measurement.json @@ -0,0 +1,643 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 16:09:32", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010648, + "t": 0.015624, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.015651, + "t": 0.015651, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.01575, + "t": 0.015762, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.015765, + "t": 0.023531, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.023625, + "t": 0.023626, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 818, + "operation": "read", + "proto": "tcp", + "t0": 0.023627, + "t": 0.023648, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.024529, + "t": 0.024535, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.024538, + "t": 0.024538, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.024556, + "t": 0.024556, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.024591, + "t": 0.024616, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.024619, + "t": 0.030494, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.030524, + "t": 0.030524, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.030547, + "t": 0.030553, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2415, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.03056, + "t": 0.03056, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.042063, + "t": 0.045626, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000062, + "t": 0.000062, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.00012, + "t": 0.000126, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000157, + "t": 0.000163, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000167, + "t": 0.005039, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000131, + "t": 0.005879, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005899, + "t": 0.005899, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.030628, + "t": 0.030628, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.030701, + "t": 0.030718, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.030707, + "t": 0.030722, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.030729, + "t": 0.036605, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.03073, + "t": 0.036852, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.036882, + "t": 0.036882, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "mvCBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000132, + "t": 0.005049, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "6ICBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000072, + "t": 0.005883, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000105, + "t": 0.006369, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.030597, + "t": 0.036732, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "ZhyBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.030679, + "t": 0.036611, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "ztGBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.030685, + "t": 0.036858, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:32 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:32 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.024556, + "t": 0.030524, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010648, + "t": 0.015624, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.042063, + "t": 0.045626, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDbDCCAlSgAwIBAgIVANUwSgVjCFoesdgocbbzsUNwmLhtMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDkzMloXDTIzMTEyNzE3MDkzMlowKTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEPMA0GA1UEAxMGYml0Lmx5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsojHoR8ZcIlTrCrb7zVmFD8MUvaPKrzHtJ7xd83bKk1XylB7FrqN6Pecvz4MVmkMrzneMwzcEuZLYEi+5WoxH6moOnRpnmvsayF2Wc1+H6uhvSe7V8wHAVQLDn0U0NgZtR1MbIczhCoMtmuACdGcpYY9RPeF2owFI/DUTWhWmwfVYc31YKuSKrMJ3d0UHk+y8oRwqZxue8PAWwl2KqxoY02p4VoOaCe2mLiH6rdAwRLqfLzCcDlPeJHnTePielyaY1k28unHkNvZTdpewbIs6WrTfBCVGMsaopCHCcoXjqBAySqKguENryIViuWvuE4dFYYscVov0ifCLUOvK5HVJQIDAQABo4GUMIGRMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSL0ulqNeInx7yImND3jB/K+uQBXTAfBgNVHSMEGDAWgBTHrPFRWHlqMbi654zqiNPPGQwa9zAcBgNVHREEFTATggZiaXQubHmCCWJpdGx5LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAWTKzWTaa6cVNoiSiVvyuctfSA0i9KHQXM4muiq92jaDjLPcQ7D+p516h3ZYfe0uBvM8D+AH0iMUQLzF19I9eCEmK+KjMGHqk0by0Rs3UWlaWYAHdEKuq1eCGwPqUhpLt6SQmFLF9Nqo5exFXC/vL7fKzQxZrqf8xKerUO1AXCH8cCaknIew6m16nI1ilwjELWKn80bNtBKTu841043ZtGJa/sLohy+zNQwuMjjHyciBiVMJ9rneDG033mAmQ+r+salkv6VAIMd8Gzm+EB5D8Kt/dru+/LBzlx00vpEXGQxtR+X3e18WLLt8Jy7ZaWoZSYzP2azJDOF7Dl39nL6hsWw==", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAPt2TI1ZRWvOCvb58bffF+cHFyERMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzMVoXDTIzMTEyODE2MDkzMVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnyGzdRsw7ohckVLuBi6iOVZWkfMtiDoBnQk8H2cFux7sPbIO8Kd0yYG7k552A4kJNQ3qTAfcaxkscmrk5+MaqFwrKiXuq9qhYWTUJPCMx9CeOdy+YaBUAC+yqn64nNl04CB/wdUvC2Bs/6eWBddZ3UvqHlA7yuild4KqTyxfevZbTCYSEimwxMdL9mJZP2mGGmjTGrirULUhUpNIp5N5qxLXFS7aAvq64ssEL1F+nytVuGMHD4cCRxWT4j/nCLaMGuc43aiOHbsBghLPEG17Fwt+eYGHQKGd95xts/UY4BmLNqXDK0j/xe9ocA++0oAPwV+dUdhCDA5U1h7XLaDExAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTHrPFRWHlqMbi654zqiNPPGQwa9zAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAJKLOQ6DJauqCnhSS7OSQkDd6f9SDTEjZkjQHbuVWLeT/XGlTOhVRffHBA87LPTm31FuM8DfnPJGGZ8seGzrO5I5h8E99RcB/E9FeT2UmH7LZfpyWipc/hGiBE73VGkDHRx9GnUlJBU0ov3hRl8bZnLHe44k2NkC8KzHtCe93LxzCRxyIHM53Iv2S0ZoiNxNoXL7yHyg1TFCY4PJmYj/l1W8SsBoCYFZi71E7AKQ4g+tNJk0uiNUdwiwY4o5UBk7jcTWAN2Qcc0CFtw3gwl8qbSPOVFe7ylFqjD9Y5+WgTs41iqT+ZACVsmoiNliOHuJ3xS9EvXuLY0ad+9YlVd4QRw==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.015651, + "t": 0.024538, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.010595 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.024547 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.042033 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.537222, + "test_start_time": "2023-11-27 16:09:32", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json new file mode 100644 index 0000000000..0b72231c8b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json @@ -0,0 +1,182 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionIDs": [ + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [ + 5, + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json new file mode 100644 index 0000000000..e6958a5f1a --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json @@ -0,0 +1,21 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": { + "6": true + }, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true, + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json new file mode 100644 index 0000000000..016ff63adf --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/measurement.json @@ -0,0 +1,814 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 16:09:33", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011742, + "t": 0.017104, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017119, + "t": 0.017119, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017206, + "t": 0.017215, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017217, + "t": 0.025839, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 1689, + "operation": "read", + "proto": "tcp", + "t0": 0.025926, + "t": 0.025927, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026807, + "t": 0.026814, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026817, + "t": 0.026817, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026835, + "t": 0.026835, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.026878, + "t": 0.026919, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.026924, + "t": 0.032676, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032714, + "t": 0.032714, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032739, + "t": 0.032745, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032752, + "t": 0.032752, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.044882, + "t": 0.04973, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.049746, + "t": 0.049746, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 303, + "operation": "write", + "proto": "tcp", + "t0": 0.049782, + "t": 0.049808, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.044872, + "t": 0.050936, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.050946, + "t": 0.050946, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.051028, + "t": 0.051032, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:80", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.049781, + "t": 0.053205, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.053215, + "t": 0.053215, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.053233, + "t": 0.053233, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.051034, + "t": 0.054518, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.054522, + "t": 0.054522, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.054538, + "t": 0.054538, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000067, + "t": 0.000067, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000099, + "t": 0.000118, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000111, + "t": 0.00013, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000123, + "t": 0.005918, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000136, + "t": 0.006036, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006061, + "t": 0.006061, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.0328, + "t": 0.0328, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032823, + "t": 0.032837, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032857, + "t": 0.032873, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.032878, + "t": 0.039037, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032842, + "t": 0.039749, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.039771, + "t": 0.039771, + "transaction_id": 5 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000068, + "t": 0.005576, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "hLeBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000074, + "t": 0.005924, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "uleBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000091, + "t": 0.00604, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032785, + "t": 0.039516, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "eROBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032822, + "t": 0.03905, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "sTeBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032807, + "t": 0.039752, + "tags": [], + "transaction_id": 5 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": "connection_reset", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "https://bit.ly/32447" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "https://bit.ly/32447", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 0, + "headers_list": [], + "headers": {} + }, + "t0": 0.049746, + "t": 0.053215, + "tags": [], + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:33 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:33 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.026835, + "t": 0.032714, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011742, + "t": 0.017104, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.044882, + "t": 0.04973, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.044872, + "t": 0.050936, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUQx8BOnWMX2oGRTd03IiMItQkgbcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTMzWhcNMjMxMTI3MTcwOTMzWjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7zL+J4Y4/u3O9qQtsMv3y7QcQVf4nI4rq3fzMn/Bgw0oaqnRrTAF37wvkPdSWbC2l0RyXTa6Ik0FjtHhyu3HKcz0pEdF/gFjJ3rBnbDzl8EF7De9Y/UoP1ORK/wgDV3aPksXspB7ZTh2vH+1qkBRsp3hKoTEBMNxWhX0awnPTnnOhSR99rX5kj7prSVzf0COTtG6W8RK92/TxYhhuiOc/bMlCw5KIigB6EMkftm3tL181i9glZDnTllmNYjqellMjoirVAIEal/DqdDlkaseaI/8EnBZdKPHG+4P1MuSQ1GSKMPNl+dvdBM9xyAc9wA+/+Lqzfs17UdzuPuwyLA6DAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFGQfd7KUQD3kxopeZs5VQJQVG4A3MB8GA1UdIwQYMBaAFJ7Vg3ztCwKcmKwtuIF2VQJEYsPdMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQB4fkQQ973OmgOFGxYEMx3pME5IRD4BUzsNO5pPYtlJAGZHDJTQmG2r1j5dE3G2WHGlOmx+/vF6Se+Nmf/07vU0rTv6kR3dBNWsXiTWAV250CI81OVMLbqWedc9A72WAIjR9M42ghuAgltz829wl7CyzqLon/Uafu7y34+OkIqH9KL382+cuPTOevqabJNLJXqCyPox2z1hWAGlxIa8IjIoELZyvDwug0+8yVflZgi9GiWnnrxqLSyPxo3QHY9Dpjw3XMC9o56nwn3OX4XQ/sdSvfM/nrnrLpneYZ9rhfh/76u78/yKC2fmC50SQccGzyiAzqD2tdhljF6Fh1fsGEEW", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVALKNeXukpoStdHTJWl3y/qQEwzT2MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzMloXDTIzMTEyODE2MDkzMlowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKCsKz/FEDBCc36FgyHZ0H+dWIcRTGdKu7UCzWOq6ObT/dYcEF2mbyp5eCfuh9dq/YmRXr7U5Mbhis6PJ73GZm451VbImJpRHoQOm3K+DF24vK7I726o4lsVFJlaQMSdoisErFHlMTMfx3VGOmUBSpfSO2YPfnuYI5LT07nvFyqQfWtS5y8IqKx1ZHC+Qjw2+j89qGfnQhurFP0mG8n/9YfH4F8QTxbESbvUADecUi6mKFPrlpD0jQ1GLbuwFG7Q5pJ3DZED2x7LpvIn872bIWF3pPCPdQ33fcrK7a0w94baH9B1z0oYfh5hhTUjdIRvo5f3YMFfGJYZo7FY7QvGgbAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSe1YN87QsCnJisLbiBdlUCRGLD3TAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAhBzbiGC2YaK1isqUGAfZJi6XXOMl3xfXQp9zukSECvTG/rMuRP1VCdfshGACgb5n55eWk29eoh/GRGzFXh9lebNn10OLskwaYS1OW3UHECZ2bwFV++eJUKgZJhqgJzMq3tC9ssqRTMBqZfPsqpRhbtoZGwiYGm3LVGV3PuBVd2iuWZYoskOKIrbct+XOP5qMA0DhJ5SbfqjTXVrBiC+EDA/FAIYdZPk03Inlc2nm0MxmUnq/zXGKZyH0+IJtg5F8xk8hgVL3w8Amg40hneM5GWJSazacz6i41wTVfnaKPKZxvRqAfu7Ug9tY8dIgTWpMcWBpCR7wNZJl1INw2XqcrQ==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.017119, + "t": 0.026817, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.050946, + "t": 0.054522, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011699 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.026826 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.044829 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.049738 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.540267, + "test_start_time": "2023-11-27 16:09:33", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json new file mode 100644 index 0000000000..4ba0b570aa --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json @@ -0,0 +1,228 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionIDs": [ + 5 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [ + 4, + 5 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "connection_reset", + "HTTPResponseStatusCode": 0, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionIDs": [ + 4, + 5 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json new file mode 100644 index 0000000000..b09118c64d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json new file mode 100644 index 0000000000..0583458aa5 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/measurement.json @@ -0,0 +1,700 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 16:09:34", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010794, + "t": 0.015543, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.015558, + "t": 0.015558, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.015647, + "t": 0.015655, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.015658, + "t": 0.02356, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.023651, + "t": 0.023652, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.023653, + "t": 0.023679, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.024547, + "t": 0.024555, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.024557, + "t": 0.024557, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.024577, + "t": 0.024577, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.024621, + "t": 0.024652, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.024614, + "t": 0.029923, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.029954, + "t": 0.029954, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.029982, + "t": 0.029987, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2414, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.029995, + "t": 0.029995, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.041497, + "t": 0.046736, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.046747, + "t": 0.046747, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.046836, + "t": 0.046843, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.046844, + "t": 0.050207, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.050211, + "t": 0.050211, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.050231, + "t": 0.050231, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00007, + "t": 0.00007, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000104, + "t": 0.000109, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000123, + "t": 0.000126, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000129, + "t": 0.005555, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000146, + "t": 0.00568, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005719, + "t": 0.005719, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.030088, + "t": 0.030088, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.030115, + "t": 0.030136, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.030127, + "t": 0.030141, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.03014, + "t": 0.03616, + "transaction_id": 5 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.030157, + "t": 0.036399, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.03643, + "t": 0.03643, + "transaction_id": 5 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "zbeBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000078, + "t": 0.005559, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "fGCBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000105, + "t": 0.005688, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000078, + "t": 0.006041, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.030032, + "t": 0.036054, + "tags": [], + "transaction_id": 4 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "PvaBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.030096, + "t": 0.036171, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "fCmBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.030106, + "t": 0.036402, + "tags": [], + "transaction_id": 5 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:34 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:34 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.024577, + "t": 0.029954, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010794, + "t": 0.015543, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.041497, + "t": 0.046736, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUPkyrm/7WN9ez/+Pfx3zaraGiDtwwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTM0WhcNMjMxMTI3MTcwOTM0WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3zv7tppTanCyTbNIvRmo2SF2MzUoFZrzqRT0GwAPjNoAMDUNARA7dGwg2/OY+kGt3W2h3gDNR26IEyDCgY4PFEHNfOiqk6IKZ+0rc14D/Zqpf+kmB+1mst217iBxpzHkr7OSrLvxgDTglXy3ZqIalgOQGputB9t2y+LDjfQnx92hjiULXU2iw9jUz3CdzZwAnvb9L9LjYwEW3b7gjvyVTPrRRG2XZgTF7bgeXCVuGHyii1Bxl1oPZxpM5ggG8CG5xlmkv77zsXBwRYzoC+SLQ+r+YqO+bunQjhghG6PdIx4Ko5y0XTwGsKtnOzkhIz9hRpLifBrDKBZ+afRM1wSHdAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFPANP8ta6qTxdlNX7iCq1/Tf24KaMB8GA1UdIwQYMBaAFGT/pMlRJOitcILkK4c+cV7OkwBaMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQA1Y5B1KbLnk3I1mLyAdkSoklPXBh4IQd4HsxarVYM18ho5LhrnS4mZPrXGG8WRkkg3AXPo1n1HVy4N+shgev/XByyNDxn8WHH9NyDw+ZaD9fGKipnmIJQCUcyFQ6pOKoOTDRWr8hOPtE6iMLC+Ee8onldbVAAI+bCgTyyxIOQ+JfD6203o2s0EfXg9u5vJ7kxscXD04ejSIfySR4tVi+VpHgo/XoY2/7zbF3g/+as5ZVrBmEsbLxnat4n2bsmDZbUOZmtCDFEPRF9SWcSeRY5kRHm9g7jf3X5YtrhHC+da+lzIp2aRbSPl5Yg1TR4/RcK99jAEQs2xRx5xdPasQZUW", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAN7KCCJONruVA6YXDhZ0LnAPCf9GMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzM1oXDTIzMTEyODE2MDkzM1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVjFyOrj3SDGBqeMDoPmFIQ8D8UUXW8diOtYB6rQ+LYfnpf329EF9uVd2oDarK5XFM+T2E5vgk5X7YuliWS0WCh2T0zHPFBfCeQEgClOw7HxK/cBtg4iB8pDt7/MkuLhw0jv6IMLWq3vkJ02rD4EhIljMbMuHzLW1YLGapgMNQzmdb8oUp3YswtcfeLlhuAcY8YCXwnO6d7hllgIX/18eJACBMZd6o5mdpC7bTqMY4pDKnO3YSmwJuaNGHctGUfT8i3X/ODWKkq9mjV/R5FsT6ljIz9nRoDZAg4KPisj8lgPbwlTnLp7HXckgq4J7rZ6NV+IQDa7Zjnmee2uDnAC5pAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRk/6TJUSTorXCC5CuHPnFezpMAWjAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAFjFZ3M1+ZLdFwGLUpRmJax9/9Sm01XL0pguVxL/tmW1uqB634LklgGXQpwcOCoyMa5gjMImITU/wKmUW/0+SB8/2rMydsc3gpewb4LLe6nNd/ZPz2avJNvioXNIowQbxJPC0LGJWqi1t0b9XKIhCzuzfB4MOt2M3UP8Qhlvkaws859dZmluANxCaMryQprbrOeCpKNLJ6XcWiVFyo+EdIjBm0Oo8UACFImK36xSOE27QjGYNSXyAIIyBE44UpGrd4VYP6B7qabnrxaZaMCGGgW3sOrKZg4JBIv5HtGGzyB+ZHww+95NtNRzhLt/O2JSWL0G8Da2OPgq6sL+PlUk3Lw==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.015558, + "t": 0.024557, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.046747, + "t": 0.050211, + "tags": [], + "tls_version": "", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.01074 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.024567 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.041465 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.536667, + "test_start_time": "2023-11-27 16:09:34", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json new file mode 100644 index 0000000000..fca0c6d7f6 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json @@ -0,0 +1,182 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionIDs": [ + 5 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [ + 4, + 5 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json new file mode 100644 index 0000000000..e6958a5f1a --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json @@ -0,0 +1,21 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": { + "6": true + }, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true, + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json new file mode 100644 index 0000000000..85aa309310 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/measurement.json @@ -0,0 +1,814 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 16:09:35", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.01141, + "t": 0.016268, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016283, + "t": 0.016283, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.016368, + "t": 0.016376, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016378, + "t": 0.024421, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 1689, + "operation": "read", + "proto": "tcp", + "t0": 0.024524, + "t": 0.024525, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025415, + "t": 0.025422, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025424, + "t": 0.025424, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025443, + "t": 0.025443, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.025479, + "t": 0.025508, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.025512, + "t": 0.030651, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.030696, + "t": 0.030696, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.030721, + "t": 0.030727, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.030734, + "t": 0.030734, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.043082, + "t": 0.048662, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.048676, + "t": 0.048676, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 303, + "operation": "write", + "proto": "tcp", + "t0": 0.048747, + "t": 0.048772, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.043076, + "t": 0.048916, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.048928, + "t": 0.048928, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.04901, + "t": 0.049017, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.048701, + "t": 0.05165, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.05168, + "t": 0.05168, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.051694, + "t": 0.051694, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.049019, + "t": 0.051893, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.051897, + "t": 0.051897, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.051918, + "t": 0.051918, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000064, + "t": 0.000064, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000097, + "t": 0.000103, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000169, + "t": 0.000193, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000118, + "t": 0.0051, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000209, + "t": 0.005933, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005957, + "t": 0.005957, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.030758, + "t": 0.030758, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.030788, + "t": 0.030804, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.030856, + "t": 0.030873, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.030811, + "t": 0.036648, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.030889, + "t": 0.036895, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.036926, + "t": 0.036926, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000082, + "t": 0.005814, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "pXeBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000073, + "t": 0.005104, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "YHKBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000109, + "t": 0.005937, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.030772, + "t": 0.036786, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "6EWBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.030766, + "t": 0.036654, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "sC+BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.030821, + "t": 0.0369, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": "eof_error", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "https://bit.ly/32447" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "https://bit.ly/32447", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 0, + "headers_list": [], + "headers": {} + }, + "t0": 0.048676, + "t": 0.05168, + "tags": [], + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:35 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:35 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.025443, + "t": 0.030696, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.01141, + "t": 0.016268, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.043082, + "t": 0.048662, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.043076, + "t": 0.048916, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUDQG+xF6RAe7SE0ULMzYpJQQKFRcwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTM1WhcNMjMxMTI3MTcwOTM1WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDys743mDPeqqhh1tvMIbrmPCOv8+BevCB/y31GQXwrvknHgjeflzLPYvo7j4VxbqPpddQPh7u6vuxq/PP4y+kB+4zViaqbgpnM8jewbbaF3N7BZfBwAc1xkx44bnb2YWlaNgjtWBILoJi5ztaKUafgOPtDKDWrX2MHMOtrImslqWe4GBQJsKlfGXG0h6JbFiysiVPaGcJXfRGgP2oXMaRUBCbTlD/iEhXECQohpImhgJELwioL5UM7Akxr1dgAQw4tubNDCh0tczUG4ZXDs0ngQQchUk8wETAWS85QFKl6h3hLKN4aEbkdIwbufF5AjZN8KRo6GoYgF6LoJIKWHtD1AgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFI9Bx+TTIgIfi5eNxJyp7qLfdywwMB8GA1UdIwQYMBaAFHZeboS15Ylu1CDqyI2lpmFsgkBpMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAOLGKrIOqwnoY6qV7ZOPQ2HzqdyfmO1M5oSt/GOZfwEU0h2J8LGBiHH9ZImq/LE2KIiLyhZ43ArvZ8rvW56J9cKDBEx7pmR0NDnjbQpa54K3Gg1d3izRasqt0PIaqcRcENOlpqcFLJhu6wz9T8L8Wai72yR/EKb9EFMRWE++8J78yQNCPvMMRyFbHRw24/73YMIQ8DVMb/5Zsu2ZjKKALqzytgOijSO8McendHWYyC1XeptsC88UE306/3zsQzKCNH3epjbaESEhriq8Mch/htLUDR/2bD+zv2xboLqWwa/jD/UKYax/VAhjTIQa4Ea0VUiIqZoVkWQ+LR7eNH+K8/", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAKw+LzJL0zOBkqHjJbAGsTKKpxKRMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzNVoXDTIzMTEyODE2MDkzNVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9fl+mKOVlvhTw7kKznBqVVKC7Bm5XGZqZm84h0+vBiunkD4x3ywtt8i99b//n282qO69mUt57JhegPOirjT/1IhGgwP40h9biglHvXT4F/V1X2PnX9UW5UmiEa4ixe0HkSmXLPUCwabUwntIG81AOXsRCjYf6uAJK8SmbYMNMpV/9Lf3oZ29GvvIE/PJRYg2j9NNhF2SfdH2bGefhh3e5yXxQfuljN3qAEvP5c/ohUkR1JdxJo2zR2b8ZEG1MnrA3DwEvszD9BXHjnarW+IMvG5IRX6gL3NY54USgZqq8oPJzMlBlW4JsOxIdWVTHZSfaX7Kv3isEHhUmRlslam9/AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2Xm6EteWJbtQg6siNpaZhbIJAaTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAF5HbTXbqUD7I1wXVviAO6UAwuKKoBi7MLUwdPU/Gx3bFJEofFWmTmje9uZzg4E2iNBXlyiZ9W9SSQfbklzWLdvFqlp7QGQBOJuF/lm15aciW7WJ9YlGVu4Msqe+ofkachkwOKn2K6fgBTCQFMrmaKsHW7TMoj97EMv+oh0Eei5J8KaCY09R+p5oqBzPR52yQDoYzTrutFaN9t8tWrX8Ay7phtANiPnaiXZDPNcBBwM8pT+zMld0ybGmKn+1izafOxNy0wDKvC2KRa6+oN47ScBK/ihtWPwuSlrUxjgXMw8vz3FX+DDc6AnbwTORBZ4vnqcoXAErE23grvQEK/e1NKA==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.016283, + "t": 0.025424, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "eof_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.048928, + "t": 0.051897, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011367 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.025433 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.043042 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.048668 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.53731, + "test_start_time": "2023-11-27 16:09:35", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json new file mode 100644 index 0000000000..eb3b33d463 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json @@ -0,0 +1,228 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionIDs": [ + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [ + 5, + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "eof_error", + "HTTPResponseStatusCode": 0, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionIDs": [ + 5, + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json new file mode 100644 index 0000000000..b09118c64d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json new file mode 100644 index 0000000000..a399a40f7b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/measurement.json @@ -0,0 +1,700 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 16:09:36", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.012624, + "t": 0.017708, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017728, + "t": 0.017728, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017818, + "t": 0.017829, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017832, + "t": 0.025495, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025593, + "t": 0.025594, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.025595, + "t": 0.025608, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026518, + "t": 0.026525, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026527, + "t": 0.026527, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026546, + "t": 0.026546, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.026603, + "t": 0.026635, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.026589, + "t": 0.032086, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032115, + "t": 0.032115, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032142, + "t": 0.032146, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2414, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032154, + "t": 0.032154, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.049432, + "t": 0.055144, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.055157, + "t": 0.055157, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.055234, + "t": 0.055242, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.055243, + "t": 0.058728, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.058733, + "t": 0.058733, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.058758, + "t": 0.058758, + "transaction_id": 6 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000097, + "t": 0.000097, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000132, + "t": 0.000154, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000136, + "t": 0.000158, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000163, + "t": 0.005823, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000157, + "t": 0.005936, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005959, + "t": 0.005959, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.032187, + "t": 0.032187, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032218, + "t": 0.032252, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032268, + "t": 0.032283, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032256, + "t": 0.042648, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.032286, + "t": 0.043007, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.043051, + "t": 0.043051, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "6l2BAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000117, + "t": 0.005831, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "hLKBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00011, + "t": 0.005939, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000062, + "t": 0.006174, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "qamBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032194, + "t": 0.042654, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "b+aBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032213, + "t": 0.043012, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032194, + "t": 0.043137, + "tags": [], + "transaction_id": 5 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:36 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:36 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.026546, + "t": 0.032115, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.012624, + "t": 0.017708, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.049432, + "t": 0.055144, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUQk1e0YCq20BLoDAhG6owP1+wlmkwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTM2WhcNMjMxMTI3MTcwOTM2WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCoY5lDixCUa4GGlR1prwlb2n3y3G7jjQRqqfoSTs3CIgisrGCuGlW2BM8eHfBmm75Bxd702fz5e6ienTCdSI3C0OS7wNbB6rsTa1XgIRQDjilo6g5a6LWGgmP4VI9E0mnWaM0ANcsLb9II/+swiyF8on846Nul3ZJgsX1X0RTQH0wjmlhM4Rn0qAisT97wGuYfoPOEj4QRBuun/rZFMwEl5E7klPkI29ctQ/SMyM+L1A796F0o9fP6faXO+GpN+wRd16i1Yz4KN6GdGvdCAJQMWnX8/7UMrxtQ8+dmyi3nGRC+ylWpIMMSTcgOetsIzz0h3zYsfnIT1yYOqz+c7J3nAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFBw7jqDU5yE3iBBk497ryHvkhdaSMB8GA1UdIwQYMBaAFNdbpXPdazfTjLsb7IzLRN3hEWpbMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCiEpuwrZpIrlf5qYSkXhvt8BClBH5BkPhFDIIpuMNnXxiZ1gqqdIVrKw5ZvDrYF2b9xH29d/E/tJA2zNUzTLCmkVnaiX4aodo2rsQMZlmnuTGV8tbmw92gykbDoQ8xEXIHD7N5p+DHcpVOqIgLBAi+rQWTDep09U/FHF3VY0ahqCpsJMgkrImIWo1ByUAwUvZn531WjEd2L0pZXJ1iA5kGoPB08s+9Y3aL/cBLMVEAooccqGZ3O043b60QFxE57Z1WAiTS6wlES0zyboPWgc3cqMKbcuQ+3DwFbxIBrpdaJYvFpHrat0s/pW79PNHiGdWmN4gJEApHEX6lGBd3IAwa", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAPJWlHLEkr/oub2MavYt4Am7A8qUMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzNloXDTIzMTEyODE2MDkzNlowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDBOTQEyNCqYbGBFd6KlWii/wQ048F6YpFMaOwsu4NrlZ56VALL7B4fGUXo+MAXEJFDJ7tV0Sf+1XYEv/+pXkFJzGROBEMePz111LB3XJHFrCPzJdxcJvnw9luLivSENZ2fMXiBbtOov9cN5a0x1f7dLUwsa9DDNr+DTfZm+gfE7b1oOCeA4+qF3an+EOHKYJrXbRgUh2sfRgkGrpjIIDmR+tNcEWMl/ZJz+ZQP8Hr4AG/7s4VY8QLVzA2NeFdpMEg1jLd0UY/vX/nwXeFPYKm6av2qt2qX9iORlpQNgbvOPBbM6faNgkmDPgwTmz2QklxlrbovzXejjqm2QhRvEAHlAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTXW6Vz3Ws304y7G+yMy0Td4RFqWzAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEABcxe7vmujpzd5062IFq43bMYkqYCdPJ7qkelP0+H+rdxfay1F661hq02HotSK9pwWL4q3scsevkBEIq+h7d3zWiNkZi7Eic1F220zo5ExVlr4Umza/X4TnSq5OGyrQm5D8+wZBXzbprUbDp8o+oxEvEnuSyvH7MtjwuFYL5agyuXL7d7PRrYyJwcxlAN2Gz5o51jdF5uR+LLkhQdB9ca5xZrqXWodzp+poCxOJ3GnHJ3q41/+l5owphF390BCHilyBlIX5Sd+8c6grDjHEyL2hMOsYASHsYYkP6yH98efOm085bKcdSLNvW03IZB1Z7SFETFo2I64xQy/qjG2dzwSg==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.017728, + "t": 0.026527, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "eof_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.055157, + "t": 0.058733, + "tags": [], + "tls_version": "", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.012566 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.026536 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.049397 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.543462, + "test_start_time": "2023-11-27 16:09:36", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json new file mode 100644 index 0000000000..1308f2bc79 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json @@ -0,0 +1,182 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionIDs": [ + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [ + 4, + 5 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json new file mode 100644 index 0000000000..68d083096b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json @@ -0,0 +1,19 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": { + "4": true, + "5": true + }, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json new file mode 100644 index 0000000000..193a4f0a75 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/measurement.json @@ -0,0 +1,637 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 16:09:34", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.0117, + "t": 0.01715, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017167, + "t": 0.017167, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017255, + "t": 0.017263, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017265, + "t": 0.025053, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 1689, + "operation": "read", + "proto": "tcp", + "t0": 0.025153, + "t": 0.025154, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026015, + "t": 0.026022, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026024, + "t": 0.026024, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.026045, + "t": 0.026045, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.02609, + "t": 0.026119, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.026081, + "t": 0.03189, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.031937, + "t": 0.031937, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.031965, + "t": 0.031977, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2414, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.031985, + "t": 0.031985, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000297, + "t": 0.000297, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000332, + "t": 0.000351, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000419, + "t": 0.00043, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.00036, + "t": 0.00729, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000433, + "t": 0.007652, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.007677, + "t": 0.007677, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.032011, + "t": 0.032011, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.03204, + "t": 0.032055, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032067, + "t": 0.03208, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032084, + "t": 0.036085, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032064, + "t": 0.036448, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.036458, + "t": 0.036458, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "QXCBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.036458, + "t": 0.03849, + "tags": [], + "transaction_id": 4 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "UcOBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.036095, + "t": 0.038728, + "tags": [], + "transaction_id": 4 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000229, + "t": 0.007181, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "K4uBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000307, + "t": 0.007294, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "XxCBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000401, + "t": 0.007657, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "UcOBAwABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032046, + "t": 0.03609, + "tags": [], + "transaction_id": 4 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "QXCBAwABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032018, + "t": 0.036452, + "tags": [], + "transaction_id": 4 + }, + { + "answers": null, + "engine": "getaddrinfo", + "failure": "dns_nxdomain_error", + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032043, + "t": 0.036573, + "tags": [], + "transaction_id": 5 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:34 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:34 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.026045, + "t": 0.031937, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.0117, + "t": 0.01715, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUZKkq7MfZRYQSXzgHz9BqQ/eOZM4wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTM0WhcNMjMxMTI3MTcwOTM0WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDjfPF9sWHbwobmZnbEOy9UXA0gbr3PvpKlmALETr9fBI3x8fuMNY6m7c0s6kSWsC7PfiTzvTgiok6VFibjNAOXOom1ct80n5I5oXkAJJU+rxF5YOccfObzdyEt6FXdqSIzjfrGoSqONA9Xg2f9hXYYWG938g6a+LYgpRs6zLsac+r6R/T4plut4VDAfPIDlyj5jlpXbxIA9mDOJxmDpucPoOZKhx5lSpCEEqD0SP7Jr9UmbtyWH62NhvRiAQNmepGEWpsx7OAN7OGd65E6IgCfAgY/Dd8KE/yavUMFOpW+cDmZ4HVf2iPWam8SxxAVxwilP/5EAJB0IuzRlhAz8B6NAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOmkhzY7uTXs/kjjmfEz+qcgx/bJMB8GA1UdIwQYMBaAFAkJkg4EI0d8k93B5BL4zDj24Pz4MBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQABYU8hOpol4/zbVtPu8RrpRaXB7WSB650dby6ifCTapDZeQ7sq/3JcnlB4fisDqT3koxO3eTEzNeIIWuoxovr6v5NrTY7wJaMM3dzNazGhxASn6ilX+vyl5itnTRMOdEzUORqJyGvve24DBXnQxO4x7ZThU5Sc6bgka1mvkIehj+T/wLBF0VmTfv5Cq3RvrniwetbHZGlzZ9PZggTwLvjtilHbqeh+FJV+wkSf6TqbmJL6rM8rf0u5ToqEs3/YLQ0KjIR4UCZa5/L7ezdRqZh0RFHD/09P1eAC9UZxrzyRZe14zdf+yJJ3i+Pj5AiFpMXCu+U8lrjElbmEmbgYQT9U", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAPm2P522Y36l5UfkBL18mx3kn5lgMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzNFoXDTIzMTEyODE2MDkzNFowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMF/gpYsS6d6FFJzN5vUWvojLfwT0fP2LURfjd/JSUH40p61Lt6uG42OtmrOBypFL+H3TeV3pedfqu840ejYEo4KwOC1mcGHAqpMoPuxtsUjZsMSEmTn1eO8sAmTrmZIp2tuw8hM90b1EvXMJosdzlHSdixkb+cmhjrsnVQivSgCoIGZ+RQRK7MZPO5VMIOYzjFcpAsGTKp5N1vyn2fP0/I2Q00GIWVwkIIrHycuoGYsQxdwkoA9O2VwcXhVwkNOHoKa7KnMSTEnqm1XADgWyhXBlsqmkBtc7iel+TeWqo992VfWiZYGnHmHWFDBpZBUNtiANNBdX3k77Uur5c/GUxAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQJCZIOBCNHfJPdweQS+Mw49uD8+DAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEANz0PoRoBRxIAKZsyicaUij59HEzQ4x/Pzpf2/dDT8UHdniwmWHye9di9iZI/5LopnyNLuHBTinH+Stnx+jiYxDYYGZ3VqVWMNHX6cT0S7Z/kRCoH+C0uHXXPGkAgUP464gBwGerk3BTzCa98lK/KuHym/gaoJ6HygSXzodI/P64tNmknpu0kZy0XW8+6IrQhVH9/auORVzNCMUu5VdMRLOxKX/VqbpoSEMh4cKrxZ9aWsjEEIZMQeT/E8OA/Dw59JzNyaDjaBp49H0YNis2mGBwJIZOWuoNvttyjzX2FSZfCinPKpt6++8VJm4ZYIUddF4KntL+V+di+1BujL9pGKw==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.017167, + "t": 0.026024, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011645 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.026035 + }, + { + "msg": "create with []", + "t": 0.043905 + } + ], + "control_failure": null, + "x_dns_flags": 2, + "dns_experiment_failure": null, + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 1, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.536868, + "test_start_time": "2023-11-27 16:09:34", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json new file mode 100644 index 0000000000..6b46406f06 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json @@ -0,0 +1,176 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionIDs": [ + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "5": { + "DNSTransactionIDs": [ + 5 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json new file mode 100644 index 0000000000..e6958a5f1a --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json @@ -0,0 +1,21 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": { + "6": true + }, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "6": true, + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json new file mode 100644 index 0000000000..eae796c1c1 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/measurement.json @@ -0,0 +1,824 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/32447", + "measurement_start_time": "2023-11-27 16:09:37", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011667, + "t": 0.017853, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017869, + "t": 0.017869, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.017962, + "t": 0.01797, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.017972, + "t": 0.025024, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.025112, + "t": 0.025113, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 817, + "operation": "read", + "proto": "tcp", + "t0": 0.025114, + "t": 0.026105, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.026989, + "t": 0.026995, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.026998, + "t": 0.026998, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.027019, + "t": 0.027019, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.027062, + "t": 0.027095, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 148, + "operation": "read", + "proto": "tcp", + "t0": 0.027059, + "t": 0.03247, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.032502, + "t": 0.032502, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032524, + "t": 0.03253, + "transaction_id": 3 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.032537, + "t": 0.032537, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.044527, + "t": 0.049878, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.049893, + "t": 0.049893, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 303, + "operation": "write", + "proto": "tcp", + "t0": 0.049945, + "t": 0.049968, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.044515, + "t": 0.049984, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.049996, + "t": 0.049996, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.050081, + "t": 0.050085, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:80", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.04993, + "t": 10.049789, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 10.049797, + "t": 10.049797, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 10.049843, + "t": 10.049843, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": "eof_error", + "operation": "read", + "proto": "tcp", + "t0": 0.050086, + "t": 10.049845, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 10.049853, + "t": 10.049853, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 10.049878, + "t": 10.049878, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000057, + "t": 0.000057, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000089, + "t": 0.000094, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000134, + "t": 0.000159, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000124, + "t": 0.006058, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000169, + "t": 0.006299, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006331, + "t": 0.006331, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.032556, + "t": 0.032556, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032593, + "t": 0.032607, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.032612, + "t": 0.032614, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.032617, + "t": 0.037749, + "transaction_id": 4 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.032624, + "t": 0.03906, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.039077, + "t": 0.039077, + "transaction_id": 4 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000067, + "t": 0.005714, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "9vqBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000066, + "t": 0.006063, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "VKuBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000115, + "t": 0.006303, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.032572, + "t": 0.038222, + "tags": [], + "transaction_id": 5 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "MASBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032571, + "t": 0.037756, + "tags": [], + "transaction_id": 4 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "DayBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.032595, + "t": 0.039064, + "tags": [], + "transaction_id": 4 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": "generic_timeout_error", + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "https://bit.ly/32447" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "https://bit.ly/32447", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 0, + "headers_list": [], + "headers": {} + }, + "t0": 0.049893, + "t": 10.049797, + "tags": [], + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/32447" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:37 GMT" + ], + [ + "Location", + "http://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:37 GMT", + "Location": "http://www.example.com/" + } + }, + "t0": 0.027019, + "t": 0.032502, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011667, + "t": 0.017853, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.044527, + "t": 0.049878, + "tags": [], + "transaction_id": 6 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.044515, + "t": 0.049984, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUcerXMoztse3D0FRQu5CgimyXogIwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTM3WhcNMjMxMTI3MTcwOTM3WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDeT6lhVnwFNjW7GDjfwenViUJ30A9IoP9en9FFiBBZE+bzvpFjRnNc079WiaCTawgDJKk4O4vWJNUSv2XsShMwpu/vY+nhUgYdNo2UNa1aD/Um0wAUkH+eoq6VXF/+EEogapob0NmpUNntVbZf0AB2NgNA8k2OAm61zKH9+MOmuBHEIcNC5Loqd4pv4QejSFSB6n676mNVecHQ8uv87KnAIxnQ5fkIbThabjdq6VXFMqgnqzzuTQV5nzORX0OY2n7Z7ZJc7RR4hRZMbhIwb0kjO9Vjz9IyopM6a4OWf/cdWl3yPfMMczIEWpYw3+Gp4Z6RKBjvLwJs0hbRrcW8lmcXAgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFArzD3YBCJ89Zs49l8R6QaK+gqBzMB8GA1UdIwQYMBaAFOB97KdXR9+UA3euGd5JpQGAuqUtMBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQB12dFQtCHw7DwvvP2HW50V8X6030NtGervN0+w2VRmZ4qUQLlSmjMpXpfzZ8BDberd375D5LUui5JN6X9Q44AFBhL/5msGQMXpmBNRw8cnqXT7SDC03H3gaGbblbqMutYMEW87R/5USLYKqLbc1DUtOO4lv3Rq8AtzxMTF+wFj3BhUcVfijb9hE5/fr4df6LG6l5NsVzvMbrMiBVBNULbFjNkSuUiERey3vpRMz/Xz+Me9xQa9EHz7Ihbyfz3+ADjDFPjs2asOfgK9FieISjUzuQVFnnNYDdVXg4gq8qWlU63KeeH5+sIKsqk3HmLMSqx2aFXR6/sAAXVDdjIeDvTc", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVALN6sFz9p6LziIR3JGFJsw0O6n3wMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDkzN1oXDTIzMTEyODE2MDkzN1owHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4qsAKeAeX1/YcaYAPwII8LWJQ7iX6C8PdoPrYaiOmtXWeKuDSVymcupKfS1MUgHtSNLiVF2WrdotR6eSIzR98nRIGg2MwGBrGHK9OClsHXQKhvhCFCUF+Xd/sHDpN8Pkdg+73/w1IPswl98GShM/WRlhni0NRJRsPqtLS8Vvlst5jeyflUMaq77SHhUjnr3/yiz0hzPT3REG1Ar2VXnPl38BUl1Tgwtds5Q3lTka2OlcE2++3uKKBjWtsyWYvxP9mJoOnrFCLNEOJ+mGrJ/lxIsAFq0X7yatHji+EodnpnLQjdGAdMRZmbpvEbRilqqrl/m9X6GBkFIc4wmgQcD23AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgfeynV0fflAN3rhneSaUBgLqlLTAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAmw9bFPvLDeufiHkLQbNoya8uXGgNhOxN0CL9k9jIURM29Vvro0Geh6lRgl63ulLPLEhdNhhuje509m4dp5VhorhrFPyNrlWtypeho849JIa6LdoGeRYV1F9C7lT2RUfjxyajKW4RncL3X7WfeLbiHUs1jCfzn+4/6vrpmQW7j535Dr2vGV77Xyd4LN227/8GsX5pU1GFKsJe5yMOJ7VdUQnbQE037Zw4G+i5Ocmz476kq1zoyOHI4Hdp8E/E9Gshhwiy1YxgnL1O9oVrnABdMZxhGDQVUCYHFQ289yhQ/+NTkW4qHWv0SoV+tUqXsSVy4bgh0kYjsk1dhTgDRcENDw==", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.017869, + "t": 0.026998, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "generic_timeout_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.049996, + "t": 10.049853, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/32447", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:3}]", + "t": 0.011607 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.027007 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.044486 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.049885 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 10.050348, + "test_start_time": "2023-11-27 16:09:37", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json new file mode 100644 index 0000000000..bc63b84117 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json @@ -0,0 +1,228 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "4": { + "DNSTransactionIDs": [ + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [ + 5, + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "generic_timeout_error", + "HTTPResponseStatusCode": 0, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionIDs": [ + 5, + 4 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json new file mode 100644 index 0000000000..829a0e97c7 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": { + "7": true + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json new file mode 100644 index 0000000000..eebf5a36a8 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/measurement.json @@ -0,0 +1,927 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://bit.ly/21645", + "measurement_start_time": "2023-11-27 16:09:48", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "67.199.248.11:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.033006, + "t": 0.039552, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.039568, + "t": 0.039568, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 272, + "operation": "write", + "proto": "tcp", + "t0": 0.039665, + "t": 0.039673, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.039675, + "t": 0.047339, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.047427, + "t": 0.047428, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 816, + "operation": "read", + "proto": "tcp", + "t0": 0.047429, + "t": 0.04758, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.048463, + "t": 0.048473, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.048475, + "t": 0.048475, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.048502, + "t": 0.048502, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 301, + "operation": "write", + "proto": "tcp", + "t0": 0.048554, + "t": 0.048584, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 149, + "operation": "read", + "proto": "tcp", + "t0": 0.048548, + "t": 0.053943, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.053988, + "t": 0.053988, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.054017, + "t": 0.054022, + "transaction_id": 4 + }, + { + "address": "67.199.248.11:443", + "failure": null, + "num_bytes": 2413, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.054029, + "t": 0.054029, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.066119, + "t": 0.071115, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.071127, + "t": 0.071127, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.071209, + "t": 0.071216, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": "generic_timeout_error", + "operation": "read", + "proto": "tcp", + "t0": 0.071217, + "t": 10.070991, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 10.07101, + "t": 10.07101, + "transaction_id": 7 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 10.071061, + "t": 10.071061, + "transaction_id": 7 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000107, + "t": 0.000107, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.005939, + "t": 0.011963, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.011977, + "t": 0.011977, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 292, + "operation": "write", + "proto": "tcp", + "t0": 0.012073, + "t": 0.012081, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.012084, + "t": 0.020354, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 1718, + "operation": "read", + "proto": "tcp", + "t0": 0.020459, + "t": 0.02046, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.021325, + "t": 0.021332, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.021337, + "t": 0.021337, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 397, + "operation": "write", + "proto": "tcp", + "t0": 0.021372, + "t": 0.0214, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 161, + "operation": "read", + "proto": "tcp", + "t0": 0.021381, + "t": 0.026944, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 397, + "operation": "write", + "proto": "tcp", + "t0": 0.026986, + "t": 0.026993, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 183, + "operation": "read", + "proto": "tcp", + "t0": 0.026968, + "t": 0.032825, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.032869, + "t": 0.032869, + "transaction_id": 2 + }, + { + "address": "172.64.41.4:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.032878, + "t": 0.032916, + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 13335, + "as_org_name": "Cloudflare Inc", + "answer_type": "A", + "ipv4": "172.64.41.4", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "mozilla.cloudflare-dns.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000169, + "t": 0.005827, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "172.64.41.4", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.005939, + "t": 0.011963, + "tags": [], + "transaction_id": 2 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "172.64.41.4:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDiTCCAnGgAwIBAgIVAJkWNG04T2ds+mLulpWH6cRMf0GUMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDk0OFoXDTIzMTEyNzE3MDk0OFowPTEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEjMCEGA1UEAxMabW96aWxsYS5jbG91ZGZsYXJlLWRucy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1mVu09aBiBvI/zzwsp85ABpzhocRjEhW8wfO+AGpmeLxTBcCLOXoFE/naFLqx9VTv+3UnhzhjI3gjiHUI1VgJy4s8thPrRz7W277yLAhqV3T6vblCSEamoH1OlYUergf0ySmXSVTV2vvezoERbmX/6ty6354coj4nJtp8KWEcBSNxIrJXsHUQtc+I5GxjeU6ebhXr+SNtlNtXchdTy/Pu/Gcs6Q2ZyySp3zUVSMt7+R8WY7SQQ8lq/h0LRtZFOfZi/5zNxdb8l+APmezRz6896wcyqyPnvyc6afMQZQ9ExfVrfJW5/DgmnrBam36Tr21QL5QAocLmPd5hRG3P5k35AgMBAAGjgZ0wgZowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFCXxKXqGf5A1hZSkQAW7aJCMF00hMB8GA1UdIwQYMBaAFPh8rJWRLsiCABoFG+34mVOrrR43MCUGA1UdEQQeMByCGm1vemlsbGEuY2xvdWRmbGFyZS1kbnMuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBS7nbPW/g5cabdXu8yfl/gJ/UZXJmhRHCDha9DSG+4ROkYMa8rsbcpCgLY/ye5pNZ1v12NlN44fPEcRrxybHi2VsiqU2R2NsxV1ldKQ4qmnyWxE3b6Fa4+Za2nJLzI9nkjtdRxq4cUyAWt0DGJ9y+FDKE1g/N+npCJoA0QBMWdMH0zBR91r+QSgyvl7DbAnbmObhDfVLb59t/uH9fH5wwZdqxeW9iql4aWnZ9TCdcy156SmLztveYExGiSABux7GOMGoX6umUTwcSkL4GjLQh/paaGxnIYkcDLhNa3lXgCoe34HZH6qEs+DO/GDizs3y2cPthZpRH8wCc9tunBk6q3", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUL+DptxTzZ6vtTe1DoEUB6AGnizEwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTQ3WhcNMjMxMTI4MTYwOTQ3WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKixTjmUMd+YGUGa+BEsCn3FVucWfCEfro39oFZYRetVlFVp0pUGhlxkMAjvOULlSPuHuD+d46m8PRU+ZYmHI9tvzP63Ef+LFSRriRFF8oASzWaceK+q5KsqgXmMoxJAH0tComzNRaGRfuPluMuXXK+I+NIyS2JDWs4T0U6JZ+I9VuIY/rDppK5F6wGFVVQNTM0IBFJ2iM6N5PtCEbYkAIHdeq0bLbx8NZNsapc6E0Qr2Af5MlhYq16i3tcxjc7j81PnAv9Z+Y5d2xth3xGMqLDWqtynAj62GHJdEhlCiEAcDaf0SWRsS6/2Tc7Jg6A9CZYevzEDxJhS5U8DNz1ZSS0CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPh8rJWRLsiCABoFG+34mVOrrR43MBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQB5GNxEdyQBjAh8r71nKY0nAlAngNo/gyMOhYDn1FqMg4tWLLzoiKWlhfe3A+Z/ueOer+7m+bIcGB0HUFeHVd46lb5064AwgILdUsbqx3pBNaCmj0VCMhYCg8CzS8WdkK99yAfqMZNKUvSg05UOPB0VM0h4zcKDrLtt9RXcu6e19bpqtBfGBqax00pSQlVT7mzhInI3GnFXrobMOYSDokmxLt4GZY7AV+MXVRXXa7beuJ3gS1KaKcTgzlZb73YtdeEPNHxI+QwX2keTvHvJIm3IaCUTiD1ZqUaRnorTQ5YUDrpmm3wTtPqvo1Xy0zLqudbMHcHXxFmpOBZEFUUkYUMz", + "format": "base64" + } + ], + "server_name": "mozilla.cloudflare-dns.com", + "t0": 0.011977, + "t": 0.021337, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 2 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000085, + "t": 0.000085, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000163, + "t": 0.000181, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "udp", + "t0": 0.000208, + "t": 0.000226, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 46, + "operation": "read", + "proto": "udp", + "t0": 0.000186, + "t": 0.005467, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 24, + "operation": "read", + "proto": "udp", + "t0": 0.000231, + "t": 0.006062, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006081, + "t": 0.006081, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_start", + "t0": 0.054063, + "t": 0.054063, + "transaction_id": 6 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.054096, + "t": 0.054114, + "transaction_id": 6 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.054112, + "t": 0.054116, + "transaction_id": 6 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.05414, + "t": 0.059939, + "transaction_id": 6 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.054145, + "t": 0.06089, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.060912, + "t": 0.060912, + "transaction_id": 6 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "bit.ly", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000067, + "t": 0.00535, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "XJyBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000144, + "t": 0.005472, + "tags": [], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "AVqBAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000094, + "t": 0.006067, + "tags": [], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "bit.ly", + "query_type": "AAAA", + "raw_response": "yn2BAAABAAAAAAAAA2JpdAJseQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://mozilla.cloudflare-dns.com/dns-query", + "t0": 0.000114, + "t": 0.026971, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 396982, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "67.199.248.11", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "bit.ly", + "query_type": "A", + "raw_response": "AnaBAAABAAEAAAAAA2JpdAJseQAAAQABA2JpdAJseQAAAQABAAAOEAAEQ8f4Cw==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://mozilla.cloudflare-dns.com/dns-query", + "t0": 0.000181, + "t": 0.032847, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.054039, + "t": 0.059459, + "tags": [], + "transaction_id": 5 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "1F2BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.05407, + "t": 0.059945, + "tags": [], + "transaction_id": 6 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "dQWBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.054075, + "t": 0.060894, + "tags": [], + "transaction_id": 6 + } + ], + "requests": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "bit.ly" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "bit.ly", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://bit.ly/21645" + }, + "response": { + "body": "", + "body_is_truncated": false, + "code": 308, + "headers_list": [ + [ + "Content-Length", + "0" + ], + [ + "Date", + "Mon, 27 Nov 2023 16:09:48 GMT" + ], + [ + "Location", + "https://www.example.com/" + ] + ], + "headers": { + "Content-Length": "0", + "Date": "Mon, 27 Nov 2023 16:09:48 GMT", + "Location": "https://www.example.com/" + } + }, + "t0": 0.048502, + "t": 0.053988, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "67.199.248.11", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.033006, + "t": 0.039552, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.066119, + "t": 0.071115, + "tags": [], + "transaction_id": 7 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "67.199.248.11:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDazCCAlOgAwIBAgIUXN4xkuYdSmh8JDENFYuy+ff3dH8wDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTQ4WhcNMjMxMTI3MTcwOTQ4WjApMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMQ8wDQYDVQQDEwZiaXQubHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1mVu09aBiBvI/zzwsp85ABpzhocRjEhW8wfO+AGpmeLxTBcCLOXoFE/naFLqx9VTv+3UnhzhjI3gjiHUI1VgJy4s8thPrRz7W277yLAhqV3T6vblCSEamoH1OlYUergf0ySmXSVTV2vvezoERbmX/6ty6354coj4nJtp8KWEcBSNxIrJXsHUQtc+I5GxjeU6ebhXr+SNtlNtXchdTy/Pu/Gcs6Q2ZyySp3zUVSMt7+R8WY7SQQ8lq/h0LRtZFOfZi/5zNxdb8l+APmezRz6896wcyqyPnvyc6afMQZQ9ExfVrfJW5/DgmnrBam36Tr21QL5QAocLmPd5hRG3P5k35AgMBAAGjgZQwgZEwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFCXxKXqGf5A1hZSkQAW7aJCMF00hMB8GA1UdIwQYMBaAFPh8rJWRLsiCABoFG+34mVOrrR43MBwGA1UdEQQVMBOCBmJpdC5seYIJYml0bHkuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQB21QX5/MTdAp6fkjDKKVbClGDci+ZQWtQIQjtN3o9bk10GnBASKbH62bbo2vNlmrer7QvZ2B8BFu1KYuYHY2S46SoQirROsVINWaLHbJYRDvRlLHYxKTcH4sX1gs9bIawDUmruMhO7NVrBvYf8p89HUrz2Ak03N+wUUC4JKUZak+7ufwYqbO2rR7MNcs0IH+BefbQ89O0p+wgvGxFAqnAwXD/YONNM8AXg6av1BSX5crLiUkdl9EbB7PXfv+LuxLSmcCekD3ccnbIqcL0js6eK+ZOn30csokSmJ/PrPbTDxaJLLH1JkLUnT7ND9j12HpngpjqviM/qi9RxFZ9IBfEx", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUL+DptxTzZ6vtTe1DoEUB6AGnizEwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTQ3WhcNMjMxMTI4MTYwOTQ3WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKixTjmUMd+YGUGa+BEsCn3FVucWfCEfro39oFZYRetVlFVp0pUGhlxkMAjvOULlSPuHuD+d46m8PRU+ZYmHI9tvzP63Ef+LFSRriRFF8oASzWaceK+q5KsqgXmMoxJAH0tComzNRaGRfuPluMuXXK+I+NIyS2JDWs4T0U6JZ+I9VuIY/rDppK5F6wGFVVQNTM0IBFJ2iM6N5PtCEbYkAIHdeq0bLbx8NZNsapc6E0Qr2Af5MlhYq16i3tcxjc7j81PnAv9Z+Y5d2xth3xGMqLDWqtynAj62GHJdEhlCiEAcDaf0SWRsS6/2Tc7Jg6A9CZYevzEDxJhS5U8DNz1ZSS0CAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPh8rJWRLsiCABoFG+34mVOrrR43MBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQB5GNxEdyQBjAh8r71nKY0nAlAngNo/gyMOhYDn1FqMg4tWLLzoiKWlhfe3A+Z/ueOer+7m+bIcGB0HUFeHVd46lb5064AwgILdUsbqx3pBNaCmj0VCMhYCg8CzS8WdkK99yAfqMZNKUvSg05UOPB0VM0h4zcKDrLtt9RXcu6e19bpqtBfGBqax00pSQlVT7mzhInI3GnFXrobMOYSDokmxLt4GZY7AV+MXVRXXa7beuJ3gS1KaKcTgzlZb73YtdeEPNHxI+QwX2keTvHvJIm3IaCUTiD1ZqUaRnorTQ5YUDrpmm3wTtPqvo1Xy0zLqudbMHcHXxFmpOBZEFUUkYUMz", + "format": "base64" + } + ], + "server_name": "bit.ly", + "t0": 0.039568, + "t": 0.048475, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "generic_timeout_error", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.071127, + "t": 10.07101, + "tags": [], + "tls_version": "", + "transaction_id": 7 + } + ], + "x_control_request": { + "http_request": "https://bit.ly/21645", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "67.199.248.11:443", + "67.199.248.11:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "67.199.248.11:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "67.199.248.11:443": { + "server_name": "bit.ly", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "67.199.248.11" + ] + }, + "ip_info": { + "67.199.248.11": { + "asn": 396982, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:67.199.248.11 Flags:7}]", + "t": 0.032954 + }, + { + "msg": "conn 67.199.248.11:443: granted permission: true", + "t": 0.048486 + }, + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.066091 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 8, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 10.071391, + "test_start_time": "2023-11-27 16:09:48", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json new file mode 100644 index 0000000000..5c184bd2a9 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json @@ -0,0 +1,223 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "3": { + "DNSTransactionIDs": [ + 3 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "6": { + "DNSTransactionIDs": [ + 6 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "4": { + "DNSTransactionIDs": [ + 1, + 3, + 2 + ], + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressOrg": "Google LLC", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": false, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "7": { + "DNSTransactionIDs": [ + 5, + 6 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json new file mode 100644 index 0000000000..9b9b50f27f --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json @@ -0,0 +1,21 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json new file mode 100644 index 0000000000..98405c1037 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/measurement.json @@ -0,0 +1,543 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:58", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010315, + "t": 0.015533, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.015557, + "t": 0.015557, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.01561, + "t": 0.015644, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010333, + "t": 0.015875, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.015889, + "t": 0.015889, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.015982, + "t": 0.015987, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "read", + "proto": "tcp", + "t0": 0.015602, + "t": 0.021269, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.021312, + "t": 0.021312, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.021343, + "t": 0.021343, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.015989, + "t": 0.023309, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 872, + "operation": "read", + "proto": "tcp", + "t0": 0.023409, + "t": 0.02341, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 866, + "operation": "read", + "proto": "tcp", + "t0": 0.023411, + "t": 0.023665, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.024569, + "t": 0.024577, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.024579, + "t": 0.024579, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.024597, + "t": 0.024604, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2314, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.02461, + "t": 0.02461, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000084, + "t": 0.000084, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000118, + "t": 0.000123, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000173, + "t": 0.000193, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000128, + "t": 0.005545, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000196, + "t": 0.006385, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006413, + "t": 0.006413, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000064, + "t": 0.00591, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "KvKBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000091, + "t": 0.005552, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "Po6BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000115, + "t": 0.006389, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.015557, + "t": 0.021312, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010315, + "t": 0.015533, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010333, + "t": 0.015875, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnTCCAoWgAwIBAgIUJCKMw8A7J0DEYNZA25SIQTyM6iYwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI3MTUwOTU4WhcNMjMxMTI3MTcwOTU4WjAyMRYwFAYDVQQKEw1PT05JIE5ldGVtIENBMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5aByLFtfP/FVuxpwhiN9zOOjD8vw3i/41FOpvpbGy8LcCIhnCkqizCXn6tUAfzGH4NgbIcEvtIAO5E0KBWSJpErRIJF4i0YOElIEdpNfHQNi7y/G2CtO+pE2ArIZU234ZWby3ItAVhpXaQqJ7vrqIWGbnsYaNk2CAfcyZZn4Lqq9ASZWio2NbciSBkPfW31rwOf0uZX13nbcr9h9Wfk2vFeWuMjbgJ/83Ucp4qkxAlIlFj2yQUOAxb6zBJ8PF85Ebnzm5YdVOYq7U0U3lydKSrHLvNETX1SQKlnD+/cmwRg7MF7IPgdoStuJWkR2vlOL+PFg88deg02agyJVZhQdhAgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFKfMriCP2y2FYXNUllBCN+MUaK2gMB8GA1UdIwQYMBaAFPPo3Rlf7D2jZuBduu3zE2Gut1cMMEUGA1UdEQQ+MDyCD3d3dy5leGFtcGxlLmNvbYILZXhhbXBsZS5jb22CD3d3dy5leGFtcGxlLm9yZ4ILZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADggEBAFwtUfFlbI6aKpL3zp1JFXMq0atFJ3bnUo1Lgy26SY4sgNi14IrUyhyNp84nzj8BpLJIs7Xxpas/k+/AHj7lxlA26Qq6sMNC/n0RF0FRAJBO0NxSdng5+KRYV0+8fv3nvJwFOxcEnP6ghUkmLCCJ0JPfeGfROUNQ8rV5rQN71judFX9YBfCyrUFP7sCrQMw+VODm1GigMXiauBoDQexVLtWJZHeRtEMbgn9viFv8J5gWRX9t8t5IuL2VuiC/pjao5bl/X+Y+LMmn9m1BKJd4AhSD5l/mOnkXvNFRsM9CPQgXgQelHqIKfXICm8f+Um6UrU+jlQjXCquJlQcoYt1Wyh8=", + "format": "base64" + }, + { + "data": "MIIDNTCCAh2gAwIBAgIUXJ+QmD68MYvOVE1ebF2Y2XiEyRgwDQYJKoZIhvcNAQELBQAwHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwHhcNMjMxMTI2MTYwOTU4WhcNMjMxMTI4MTYwOTU4WjAfMQ0wCwYDVQQKEwRPT05JMQ4wDAYDVQQDEwVqYWZhcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMuv/plF/W/TKt46Vva1lRDIDrVRKD88ZDbMxLKaDdjr9ioRlI2PQKV/y8X7FpyQdLDuV43wgTMg4Vryx1fY+iHroRBKwdOQOjyFLGxgkZPrwGbT6Z66C8iBealdeFTQsLEWm9eVM1WA8gMZd3Evu2rVh8sU3tG1aXIYWveQGCMCVzKkEqzDPvKXVwDGUNtgr48S1NO3RybPN3EhwBbiqwPBgavdAYHIVk2xH1AYks6LhgXCkRnSGDnRd20I3vXk7uoYW5p7cf5sHWKDpgJ6Aq2XqSxfXBemzVmPqEAKI8Q41Z5V9DYGfmyqIy3rA39cW7FJkec5EDGvPiyVoSUiK6UCAwEAAaNpMGcwDgYDVR0PAQH/BAQDAgKkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPPo3Rlf7D2jZuBduu3zE2Gut1cMMBAGA1UdEQQJMAeCBWphZmFyMA0GCSqGSIb3DQEBCwUAA4IBAQCECmSpB5kUQTt6GI9nAsEGBh5bRFMwf+aaQjKkU/UEbyHuFLXu+BjNOxq+z353u5ox0sWSQH/vWeHQahA6M/sY8XwEMdNQz+W10I4lvkSRsBt62fiwoHqRhoeFG8oVHr8q2VMTqw/oY795PDet/0FsvTA/qsBcS7UhmW1YDrgHJOL0ulrVvJR4FDW0T6M4kG3dvTBlYos63MChlLXp5oQJNeAIsq3YafvnOOW5we28ZrHxRH6tUa95kUZbAcBWJRNQt1LXQuGbG9IJP6PimzmNJ0Kl6h8QThKrBsTveCtCohRPTez/ZR4At1P794vBHWj6tZrOEfdktsfDq4PpLLUb", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.015889, + "t": 0.024579, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "http://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.01026 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.015549 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.506753, + "test_start_time": "2023-11-27 16:09:58", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json new file mode 100644 index 0000000000..6eb8c2de93 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json @@ -0,0 +1,143 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json new file mode 100644 index 0000000000..e53951b954 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json @@ -0,0 +1,23 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "3": true + }, + "HTTPFinalResponsesWithTLS": { + "3": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json new file mode 100644 index 0000000000..911bd32f8b --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/measurement.json @@ -0,0 +1,499 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:09:59", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010807, + "t": 0.016276, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.016292, + "t": 0.016292, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.016384, + "t": 0.016394, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.016396, + "t": 0.024539, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1740, + "operation": "read", + "proto": "tcp", + "t0": 0.024637, + "t": 0.024638, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.025539, + "t": 0.025546, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.025548, + "t": 0.025548, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.025566, + "t": 0.025566, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 305, + "operation": "write", + "proto": "tcp", + "t0": 0.025608, + "t": 0.025642, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1715, + "operation": "read", + "proto": "tcp", + "t0": 0.025648, + "t": 0.03186, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.031903, + "t": 0.031903, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.031919, + "t": 0.031925, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 4031, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.031937, + "t": 0.031937, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000061, + "t": 0.000061, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000121, + "t": 0.000125, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000097, + "t": 0.000156, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000164, + "t": 0.00569, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.00013, + "t": 0.005927, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005963, + "t": 0.005963, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "PKGBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000071, + "t": 0.005695, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "RzGBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000103, + "t": 0.005933, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000111, + "t": 0.006054, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.example.com/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.025566, + "t": 0.031903, + "tags": [], + "transaction_id": 3 + } + ], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010807, + "t": 0.016276, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAIoJ9jbFJ8P2Y+3L3+cI+sIiudGuMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MDk1OVoXDTIzMTEyNzE3MDk1OVowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs4C80O8RS5X+Wkwq+gT4R4oufFitZn5Hme2Tfn85jIM9eNPz8hdqTmCiBjXGeF01Fr7bVMubD3Tgh5MbL7VbCNXmCMWsFxZID5CVOI+F8GxrI4mwdtRQF18S2S9JE1qqbeFnn0wFKv2uujHj9p44z4fdddnzo8o6VO2TPCbFYQcIXFOyUY7cxXv+N7dHSu8Js5HF8CAiG1JRco025tqBm6OwteeT/ob6pZh3mqWDJ632vOECbYaI/O0coD/hrOf1yDaXGY5eLXOcQf4MFF/4D6nm+9YqFSKp1X6woM6KPPgTTZaEtKmcBbRDPqL1AI5pFWEgkqjnj1L134lHRkzuowIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQyoPYyRsjJshxBuhjtNzghVCeGtTAfBgNVHSMEGDAWgBRAeaRAYTx0/Kib7A6vYIg8arw2pjBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQAK9ekRhjL2dB4nTO3ErjbaAOAAZUJXVudRFKGoFxxMQnMETSzaJod4zRZqWQNfNHC4LY1Yv6gqNkvO6AlUf4jL4qI6dsLnQQe4BVlR0/wtz7r7rPTkEmtgJS1LctV3GyhhtOh8qoU5mA9o4pE8DaIMAVQVhmfj6LUccrnkLwMyuZfY1I24Rp+mMWSm91t+sWosyb7+RNVxwRY3P3ON+2ILuCtinyuDnhf4VO+KRRxs6/pF6UsvXAvq6urKJO9iOIqM3AYaSgASrjyM/xUGB3OJS4JR96Y5viHF7DxfnMtJ9clK1rTMjbkDwVY6ORMioSD5uHRGO6xyl4yjk8TNTcsY", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVAKRagY7H4SLjC/59lH55/Lg4pTbVMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MDk1OVoXDTIzMTEyODE2MDk1OVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbQSWApGoUWAUY10RDWFv0FH4wCf/IkcPJ/HQWZxHYI3h2EksZ1BJygdr73nsnH71lu1Biimqkkoafufj7/XUSCJ2Vc+7LbG8FO/Y0zzdHcY3kB8R+CKj3AhhixZdVKgchid+x+LbLJKgo02nnfjg9+YnjahMwPoyEE0C3At8GsH6OT/3LnjjJ1bQEUpfjTKuEDubrtScvKVDqn7ePsXcm0k/WaWxnDaQcZsyhkatP0QAPDZoHap36nlDp8ULlfdEccO0Y0j9LY121zaDPs6/fy1ykJ2oyYr9nqdYMAoss6I8T2ESatbpfGpeebsHhjmHWWGJcXxIjfbj2YfFU3asLAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRAeaRAYTx0/Kib7A6vYIg8arw2pjAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAUOOkp7jclC18dmev9e0uBJpV/NsxQmKJn2KFkCjdu2O7Ua+Y4xFjd3YaY3N8S7xWgyknR7yeC/wscZT9vc9lsAV3jlr+dXbmz+NXYg21cnv/D0mC02ojjj3urQBpQg9RIi+ASdSkvj3jHbn3NJH+kxYBSwBUZGjw8Fqh0+Tow69TP/Xf6J5/GoWTjw6qtzsnYDWAfiA3Q7SMYXlmpggjRwuJzww4XoLwsDEZKn2guBZR1u8VSJYff/UrdIlFFaS8PQEpOaKlYt293X+dH3qTTJAOGBu+ndUtBhCLmJ4jyNDPsO60E+NVwMdRg8QypVvufJkvbAMNIhxLuwSvVVUB+w==", + "format": "base64" + } + ], + "server_name": "www.example.com", + "t0": 0.016292, + "t": 0.025548, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.010756 + }, + { + "msg": "conn 93.184.216.34:443: granted permission: true", + "t": 0.025557 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 0.506299, + "test_start_time": "2023-11-27 16:09:59", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json new file mode 100644 index 0000000000..fa86ac397f --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json @@ -0,0 +1,97 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json new file mode 100644 index 0000000000..c792580bd0 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": { + "3": true + }, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json new file mode 100644 index 0000000000..d4459bb83d --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/measurement.json @@ -0,0 +1,281 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:10:00", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": "generic_timeout_error", + "operation": "connect", + "proto": "tcp", + "t0": 0.011348, + "t": 1.011431, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000099, + "t": 0.000099, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00013, + "t": 0.000135, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000214, + "t": 0.000234, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000259, + "t": 0.005741, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.00017, + "t": 0.005856, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.005881, + "t": 0.005881, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "Hr6BAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000189, + "t": 0.005748, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "bCGBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000105, + "t": 0.005864, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000062, + "t": 0.005982, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": "generic_timeout_error", + "success": false + }, + "t0": 0.011348, + "t": 1.011431, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.01129 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 2, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "tcp_ip", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 1.011657, + "test_start_time": "2023-11-27 16:10:00", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json new file mode 100644 index 0000000000..c15bc74de0 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json @@ -0,0 +1,92 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..eb540a9de5 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json @@ -0,0 +1,23 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "alt-svc": true, + "content-length": true + }, + "HTTPFinalResponses": { + "5": true + }, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": { + "3": true + }, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..cd3d7911e9 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/measurement.json @@ -0,0 +1,626 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.org/", + "measurement_start_time": "2023-11-27 16:10:01", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "83.224.65.41:80", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.010981, + "t": 0.014492, + "transaction_id": 3 + }, + { + "address": "83.224.65.41:443", + "failure": "connection_refused", + "operation": "connect", + "proto": "tcp", + "t0": 0.010971, + "t": 0.016159, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.054179, + "t": 0.059484, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.054172, + "t": 0.059605, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.059617, + "t": 0.059617, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.059704, + "t": 0.05971, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.059712, + "t": 0.06727, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 1740, + "operation": "read", + "proto": "tcp", + "t0": 0.067352, + "t": 0.067353, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.068187, + "t": 0.068194, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.068197, + "t": 0.068197, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.068211, + "t": 0.068217, + "transaction_id": 6 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 2316, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.068222, + "t": 0.068222, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.559511, + "t": 0.559511, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 283, + "operation": "write", + "proto": "tcp", + "t0": 0.559589, + "t": 0.559628, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "read", + "proto": "tcp", + "t0": 0.559573, + "t": 0.565146, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.56521, + "t": 0.56521, + "transaction_id": 5 + }, + { + "address": "93.184.216.34:80", + "failure": null, + "num_bytes": 1671, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.565239, + "t": 0.565239, + "transaction_id": 5 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000072, + "t": 0.000072, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000118, + "t": 0.000146, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000147, + "t": 0.000152, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000157, + "t": 0.003803, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.00015, + "t": 0.004033, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.00406, + "t": 0.00406, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "evqBAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.003816, + "t": 0.005586, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "AoCBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.004046, + "t": 0.005954, + "tags": [], + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 30722, + "as_org_name": "Vodafone Italia S.p.A.", + "answer_type": "A", + "ipv4": "83.224.65.41", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.org", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000066, + "t": 0.003924, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.org", + "query_type": "AAAA", + "raw_response": "evqBAAABAAAAAAAAA3d3dwdleGFtcGxlA29yZwAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000119, + "t": 0.003807, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 30722, + "as_org_name": "Vodafone Italia S.p.A.", + "answer_type": "A", + "ipv4": "83.224.65.41", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.org", + "query_type": "A", + "raw_response": "AoCBAAABAAEAAAAAA3d3dwdleGFtcGxlA29yZwAAAQABA3d3dwdleGFtcGxlA29yZwAAAQABAAAOEAAEU+BBKQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000091, + "t": 0.004037, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "93.184.216.34:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.example.org" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.example.org", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://www.example.org/" + }, + "response": { + "body": "\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\t\u003ctitle\u003eDefault Web Page\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv\u003e\n\t\u003ch1\u003eDefault Web Page\u003c/h1\u003e\n\n\t\u003cp\u003eThis is the default web page of the default domain.\u003c/p\u003e\n\n\t\u003cp\u003eWe detect webpage blocking by checking for the status code first. If the status\n\tcode is different, we consider the measurement http-diff. On the contrary when\n\tthe status code matches, we say it's all good if one of the following check succeeds:\u003c/p\u003e\n\n\t\u003cp\u003e\u003col\u003e\n\t\t\u003cli\u003ethe body length does not match (we say they match is the smaller of the two\n\t\twebpages is 70% or more of the size of the larger webpage);\u003c/li\u003e\n\n\t\t\u003cli\u003ethe uncommon headers match;\u003c/li\u003e\n\n\t\t\u003cli\u003ethe webpage title contains mostly the same words.\u003c/li\u003e\n\t\u003c/ol\u003e\u003c/p\u003e\n\n\t\u003cp\u003eIf the three above checks fail, then we also say that there is http-diff. Because\n\twe need QA checks to work as intended, the size of THIS webpage you are reading\n\thas been increased, by adding this description, such that the body length check fails. The\n\toriginal webpage size was too close to the blockpage in size, and therefore we did see\n\tthat there was no http-diff, as it ought to be.\u003c/p\u003e\n\n\t\u003cp\u003eTo make sure we're not going to have this issue in the future, there is now a runtime\n\tcheck that causes our code to crash if this web page size is too similar to the one of\n\tthe default blockpage. We chose to add this text for additional clarity.\u003c/p\u003e\n\n\t\u003cp\u003eAlso, note that the blockpage MUST be very small, because in some cases we need\n\tto spoof it into a single TCP segment using ooni/netem's DPI.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Alt-Svc", + "h3=\":443\"" + ], + [ + "Content-Length", + "1533" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 24 Aug 2023 14:35:29 GMT" + ] + ], + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + } + }, + "t0": 0.559511, + "t": 0.56521, + "tags": [], + "transaction_id": 5 + } + ], + "tcp_connect": [ + { + "ip": "83.224.65.41", + "port": 80, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.010981, + "t": 0.014492, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "83.224.65.41", + "port": 443, + "status": { + "failure": "connection_refused", + "success": false + }, + "t0": 0.010971, + "t": 0.016159, + "tags": [], + "transaction_id": 4 + }, + { + "ip": "93.184.216.34", + "port": 80, + "status": { + "failure": null, + "success": true + }, + "t0": 0.054179, + "t": 0.059484, + "tags": [], + "transaction_id": 5 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.054172, + "t": 0.059605, + "tags": [], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIDnjCCAoagAwIBAgIVAJ3kBKho02jxODN/+Qj0hz+5pHd2MA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNzE1MTAwMVoXDTIzMTEyNzE3MTAwMVowMjEWMBQGA1UEChMNT09OSSBOZXRlbSBDQTEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjUHtmLNe/fLU7ZNwFY2eUF5VVxnGBphsrgy0uhP/HNR+vqm/ir+1p6aSBkzDUws6rUKaKwLJbvcYnJgfflHoCKIz6EWEoR8x8WXHFoQTcEtON6+5JcFC57qL+ywzDaLcL4UhJr4fB7eEfTgvx8PLxRjTdBkP7UUThgSQytZ4TWFdPmNZQsezRXT2a9fbW1pC0JBfJD+lXxxLto5szJfDYjfsaXLRUsMeDrwu3kvRc2cWS6surCDx9FikDU5kgXyf6qrxbsGEO8/2iYnY5n9DL86m5FfB1r1s1P4QCqhM7hOo1OtYCmNoR83Qwj4niIdtyvtiVyK87x8ViZjXSqT+QIDAQABo4G9MIG6MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ+xZkDPNidlkkn/AJjjHa0h10BcTAfBgNVHSMEGDAWgBTeZ12Jl+tz79WvQpXFQ4aKBZPwNDBFBgNVHREEPjA8gg93d3cuZXhhbXBsZS5jb22CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5vcmeCC2V4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQBKYkddd+kgekggrVOdleB615RULc4OnYMNBofKDtx7yGWSqfgW4ZU5G25J3bq0FJlhImHE0HjFUtsyvLRbqVxvChXuGUgEY7iYsnzg2MncNMoBf/L9zzzmXxc20WUi3yKL9r/I4aWdpd4RCc53/0reHWCfTGT1Za847LvVfHr5jqCi8sqQh2oaN3MniD6fOrgq29LydMAETbDN0AChRca/tFx8eLsY5d8zKJHZqzR8XFt+2KaTy7nplDW9UM49+PMMJM7oGG6uLclQgbaN1P8gmZhlKBoZY4nBXkuEK9Rv3UVlv4BRdUBU8hHu3B/ymb1/yydWYUd/oofuzANXec08", + "format": "base64" + }, + { + "data": "MIIDNjCCAh6gAwIBAgIVANbpZi66UNAH0vG3r5dE9LCkSNTlMA0GCSqGSIb3DQEBCwUAMB8xDTALBgNVBAoTBE9PTkkxDjAMBgNVBAMTBWphZmFyMB4XDTIzMTEyNjE2MTAwMVoXDTIzMTEyODE2MTAwMVowHzENMAsGA1UEChMET09OSTEOMAwGA1UEAxMFamFmYXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCr3N9dl/xzgJ2gv5kNB0tMjALp2zDX1QYtNOKtGCQfzNKJiKqrqcsItPBSqf+MvzhvPMoehbC8Q6U4ivSZZAz3lvxxtwm+Hnfh0Jm4OodS4vxxl2otDGUcxI5Z5/MEpJ/tepKbMRz1RsRym/AiN3utf2W4cFj1MScMEqIpXGaiDarHC1a6r1gUngb7YztkLaFDKLR4/UBBlXMRanpblcXFkix5SXKQjD+CRLIoXVF3lvcJys8CZBlNocle2Wfm2oypKE9zg27cmxL8AT7GeeHlEhlhcUOpL2EvsY8uFP75kcSmyaBbHFFurJDpA7i2YlTMRjY2VQN2mwGbWZAnTpN7AgMBAAGjaTBnMA4GA1UdDwEB/wQEAwICpDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTeZ12Jl+tz79WvQpXFQ4aKBZPwNDAQBgNVHREECTAHggVqYWZhcjANBgkqhkiG9w0BAQsFAAOCAQEAa6ZJpwaUObl0EA/3VbUHfd+dMifUGa8rWMfILDp51S9R/QnY9OsA8KTR5aoB1fQUnRXicQu+w84QNsflTbD6SW5S+ivbFWCLaGPMyV7R43CAN4vEITWqImw1WXdQgSfjm9agwUNhRlPOpbCQbVzjncNLyO+FdPSe0KxPHr7hJSAZ5R6ml4NENf9Vae+ORaao+dPLXlXdPOXRqOLqKnd4DhivYf1Bfm7X+dwtsB+1LHQkt+/ObNGJrob4BudwpGFCRNOiztIn7VCJAvR2Yx48aOIiwJo8NzUMdOcc7Dw5jwoXYarcb6fkH5MPt5ygLns4Jav5NKfQg9bQ3a9PvCzoWg==", + "format": "base64" + } + ], + "server_name": "www.example.org", + "t0": 0.059617, + "t": 0.068197, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "http://www.example.org/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "83.224.65.41:443", + "83.224.65.41:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "83.224.65.41:443": { + "status": false, + "failure": "connection_refused_error" + }, + "83.224.65.41:80": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + }, + "93.184.216.34:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.org", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.org:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "83.224.65.41": { + "asn": 30722, + "flags": 1 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:83.224.65.41 Flags:3}]", + "t": 0.010906 + }, + { + "msg": "conn 93.184.216.34:80: granted permission: true", + "t": 0.559491 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 34, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": "tcp_ip", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.565524, + "test_start_time": "2023-11-27 16:10:01", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..bf66c48414 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json @@ -0,0 +1,229 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressOrg": "Vodafone Italia S.p.A.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "83.224.65.41:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [ + 1, + 2 + ], + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressOrg": "Vodafone Italia S.p.A.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "83.224.65.41:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "connection_refused_error", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "5": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "6": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json new file mode 100644 index 0000000000..9a34aa1ade --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json @@ -0,0 +1,18 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": { + "3": true + }, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json new file mode 100644 index 0000000000..3d71515232 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/measurement.json @@ -0,0 +1,339 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:10:02", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.011478, + "t": 0.017181, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.017195, + "t": 0.017195, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.017287, + "t": 0.017295, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.017297, + "t": 0.020884, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.020887, + "t": 0.020887, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.020906, + "t": 0.020906, + "transaction_id": 3 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000056, + "t": 0.000056, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00009, + "t": 0.000099, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000127, + "t": 0.000131, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000126, + "t": 0.006231, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000136, + "t": 0.006474, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006508, + "t": 0.006508, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000064, + "t": 0.005645, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "G9eBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000064, + "t": 0.006236, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "+TmBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000109, + "t": 0.00648, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.011478, + "t": 0.017181, + "tags": [], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.017195, + "t": 0.020887, + "tags": [], + "tls_version": "", + "transaction_id": 3 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "93.184.216.34:443", + "93.184.216.34:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "93.184.216.34": { + "asn": 15133, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:93.184.216.34 Flags:3}]", + "t": 0.011432 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 4, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "http-failure", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.506758, + "test_start_time": "2023-11-27 16:10:02", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json new file mode 100644 index 0000000000..92e3c02f72 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json @@ -0,0 +1,92 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json new file mode 100644 index 0000000000..5da2a782e7 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json @@ -0,0 +1,21 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": { + "130.192.182.17": true + }, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": { + "3": true, + "4": true + }, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json new file mode 100644 index 0000000000..49d889a4f8 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/measurement.json @@ -0,0 +1,469 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.example.com/", + "measurement_start_time": "2023-11-27 16:10:03", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.010019, + "t": 0.015723, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.01574, + "t": 0.01574, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.01584, + "t": 0.015848, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.015851, + "t": 0.018829, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.018833, + "t": 0.018833, + "transaction_id": 3 + }, + { + "address": "130.192.182.17:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.018851, + "t": 0.018851, + "transaction_id": 3 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.063686, + "t": 0.068644, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.068657, + "t": 0.068657, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.068741, + "t": 0.068749, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": "connection_reset", + "operation": "read", + "proto": "tcp", + "t0": 0.06875, + "t": 0.072468, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.072477, + "t": 0.072477, + "transaction_id": 4 + }, + { + "address": "93.184.216.34:443", + "failure": null, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.072501, + "t": 0.072501, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000057, + "t": 0.000057, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000108, + "t": 0.000113, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000114, + "t": 0.000118, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000122, + "t": 0.003937, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 64, + "operation": "read", + "proto": "udp", + "t0": 0.000118, + "t": 0.004547, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.004574, + "t": 0.004574, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [ + { + "answers": [ + { + "asn": 15133, + "as_org_name": "Edgecast Inc.", + "answer_type": "A", + "ipv4": "93.184.216.34", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "CyGBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEXbjYIg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.004563, + "t": 0.005741, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "irCBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.00395, + "t": 0.005855, + "tags": [], + "transaction_id": 1 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.example.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000067, + "t": 0.00348, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "www.example.com", + "query_type": "AAAA", + "raw_response": "irCBAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAHAAB", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000066, + "t": 0.003943, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.182.17", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.example.com", + "query_type": "A", + "raw_response": "CyGBAAABAAEAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQABA3d3dwdleGFtcGxlA2NvbQAAAQABAAAOEAAEgsC2EQ==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000087, + "t": 0.004553, + "tags": [], + "transaction_id": 1 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "130.192.182.17", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.010019, + "t": 0.015723, + "tags": [], + "transaction_id": 3 + }, + { + "ip": "93.184.216.34", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.063686, + "t": 0.068644, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.182.17:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.01574, + "t": 0.018833, + "tags": [], + "tls_version": "", + "transaction_id": 3 + }, + { + "network": "tcp", + "address": "93.184.216.34:443", + "cipher_suite": "", + "failure": "connection_reset", + "negotiated_protocol": "", + "no_tls_verify": false, + "peer_certificates": [], + "server_name": "www.example.com", + "t0": 0.068657, + "t": 0.072477, + "tags": [], + "tls_version": "", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://www.example.com/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.182.17:443", + "130.192.182.17:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.182.17:443": { + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.182.17:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + }, + "93.184.216.34:443": { + "server_name": "www.example.com", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 1533, + "discovered_h3_endpoint": "www.example.com:443", + "failure": null, + "title": "Default Web Page", + "headers": { + "Alt-Svc": "h3=\":443\"", + "Content-Length": "1533", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 24 Aug 2023 14:35:29 GMT" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "93.184.216.34" + ] + }, + "ip_info": { + "130.192.182.17": { + "asn": 137, + "flags": 9 + }, + "93.184.216.34": { + "asn": 15133, + "flags": 10 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.182.17 Flags:3}]", + "t": 0.009972 + } + ], + "control_failure": null, + "x_dns_flags": 4, + "dns_experiment_failure": null, + "dns_consistency": "inconsistent", + "http_experiment_failure": null, + "x_blocking_flags": 5, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": "dns", + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.504877, + "test_start_time": "2023-11-27 16:10:03", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json new file mode 100644 index 0000000000..87c544b1b2 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json @@ -0,0 +1,135 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "3": { + "DNSTransactionIDs": [ + 2, + 1 + ], + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": false, + "MatchWithControlIPAddressASN": false, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + "4": { + "DNSTransactionIDs": [], + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressOrg": "Edgecast Inc.", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + } + } +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json new file mode 100644 index 0000000000..fa27d26176 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json @@ -0,0 +1,16 @@ +{ + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": null, + "HTTPDiffStatusCodeMatch": null, + "HTTPDiffTitleDifferentLongWords": null, + "HTTPDiffUncommonHeadersIntersection": null, + "HTTPFinalResponses": {}, + "HTTPFinalResponsesWithTLS": {}, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json new file mode 100644 index 0000000000..506e554075 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/measurement.json @@ -0,0 +1,216 @@ +{ + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://www.example.xyz/", + "measurement_start_time": "2023-11-27 16:10:04", + "probe_asn": "AS137", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Consortium GARR", + "report_id": "", + "resolver_asn": "AS137", + "resolver_ip": "130.192.3.21", + "resolver_network_name": "Consortium GARR", + "software_name": "ooniprobe", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://0.th.ooni.org/", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [], + "x_dns_whoami": { + "system_v4": null, + "udp_v4": { + "8.8.4.4:53": null + } + }, + "x_doh": { + "network_events": [], + "queries": [], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.00008, + "t": 0.00008, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00011, + "t": 0.000117, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000147, + "t": 0.000151, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.000122, + "t": 0.005807, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "read", + "proto": "udp", + "t0": 0.00016, + "t": 0.006174, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.006187, + "t": 0.006187, + "transaction_id": 2 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "getaddrinfo", + "failure": "dns_nxdomain_error", + "hostname": "www.example.xyz", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000071, + "t": 0.005592, + "tags": [], + "transaction_id": 1 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.xyz", + "query_type": "AAAA", + "raw_response": "c6KBAwABAAAAAAAAA3d3dwdleGFtcGxlA3h5egAAHAAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000088, + "t": 0.005811, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_nxdomain_error", + "hostname": "www.example.xyz", + "query_type": "A", + "raw_response": "LkmBAwABAAAAAAAAA3d3dwdleGFtcGxlA3h5egAAAQAB", + "rcode": 3, + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000121, + "t": 0.00618, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [], + "tls_handshakes": [], + "x_control_request": { + "http_request": "http://www.example.xyz/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": null, + "x_quic_enabled": false + }, + "control": { + "tcp_connect": {}, + "quic_handshake": {}, + "http_request": { + "body_length": -1, + "discovered_h3_endpoint": "", + "failure": "dns_lookup_error", + "title": "", + "headers": {}, + "status_code": -1 + }, + "http3_request": null, + "dns": { + "failure": "dns_name_error", + "addrs": [] + } + }, + "x_conn_priority_log": [ + { + "msg": "create with []", + "t": 0.011593 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": "dns_nxdomain_error", + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 0, + "x_null_null_flags": 1, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": false + }, + "test_name": "web_connectivity", + "test_runtime": 0.50638, + "test_start_time": "2023-11-27 16:10:04", + "test_version": "0.5.26" +} \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json new file mode 100644 index 0000000000..e98689ff95 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json @@ -0,0 +1,85 @@ +{ + "DNSLookupFailures": { + "1": { + "DNSTransactionIDs": [ + 1 + ], + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "A", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": {} +} \ No newline at end of file From 1eaaac071af3411a63e55edcf4269d41c5c77d63 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 17:55:20 +0100 Subject: [PATCH 29/97] start adding tests for the minipipeline --- internal/minipipeline/analysis.go | 1 - internal/minipipeline/qa_test.go | 78 +++++++++++++++++++ .../httpDiffWithConsistentDNS/analysis.json | 6 +- .../httpDiffWithInconsistentDNS/analysis.json | 6 +- 4 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 internal/minipipeline/qa_test.go diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index 21311dfc5f..c954a23773 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -554,7 +554,6 @@ func (wa *WebAnalysis) ComputeHTTPDiffTitleDifferentLongWords(c *WebObservations for word, score := range words { if (score & (byProbe | byTH)) != (byProbe | byTH) { state[word] = true - break } } diff --git a/internal/minipipeline/qa_test.go b/internal/minipipeline/qa_test.go new file mode 100644 index 0000000000..8cfbdbb175 --- /dev/null +++ b/internal/minipipeline/qa_test.go @@ -0,0 +1,78 @@ +package minipipeline_test + +import ( + "os" + "path/filepath" + "testing" + + "github.com/google/go-cmp/cmp" + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +func testCmpDiffUsingGenericMaps(origLeft, origRight any) string { + rawLeft := must.MarshalJSON(origLeft) + rawRight := must.MarshalJSON(origRight) + var left map[string]any + must.UnmarshalJSON(rawLeft, &left) + var right map[string]any + must.UnmarshalJSON(rawRight, &right) + return cmp.Diff(left, right) +} + +func testMustRunAllWebTestCases(t *testing.T, topdir string) { + t.Run(topdir, func(t *testing.T) { + entries := runtimex.Try1(os.ReadDir(topdir)) + for _, entry := range entries { + if !entry.IsDir() { + continue + } + t.Run(entry.Name(), func(t *testing.T) { + fullpath := filepath.Join(topdir, entry.Name()) + // read the raw measurement from the test case + measurementFile := filepath.Join(fullpath, "measurement.json") + measurementRaw := must.ReadFile(measurementFile) + var measurementData minipipeline.Measurement + must.UnmarshalJSON(measurementRaw, &measurementData) + + // load the expected container from the test case + expectedContainerFile := filepath.Join(fullpath, "observations.json") + expectedContainerRaw := must.ReadFile(expectedContainerFile) + var expectedContainerData minipipeline.WebObservationsContainer + must.UnmarshalJSON(expectedContainerRaw, &expectedContainerData) + + // load the expected analysis from the test case + expectedAnalysisFile := filepath.Join(fullpath, "analysis.json") + expectedAnalysisRaw := must.ReadFile(expectedAnalysisFile) + var expectedAnalysisData minipipeline.WebAnalysis + must.UnmarshalJSON(expectedAnalysisRaw, &expectedAnalysisData) + + // load the measurement into the pipeline + gotContainerData, err := minipipeline.LoadWebMeasurement(&measurementData) + if err != nil { + t.Fatal(err) + } + + // analyze the measurement + gotAnalysisData := minipipeline.AnalyzeWebMeasurement(gotContainerData) + + t.Run("observations", func(t *testing.T) { + if diff := testCmpDiffUsingGenericMaps(&expectedContainerData, gotContainerData); diff != "" { + t.Fatal(diff) + } + }) + + t.Run("analysis", func(t *testing.T) { + if diff := testCmpDiffUsingGenericMaps(&expectedAnalysisData, gotAnalysisData); diff != "" { + t.Fatal(diff) + } + }) + }) + } + }) +} + +func TestQAWeb(t *testing.T) { + testMustRunAllWebTestCases(t, filepath.Join("testdata", "webconnectivity", "generated")) +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json index 819d311e4b..5fd0e06674 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json @@ -6,7 +6,9 @@ "HTTPDiffBodyProportionFactor": 0.12263535551206783, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": { - "access": true + "access": true, + "default": true, + "denied": true }, "HTTPDiffUncommonHeadersIntersection": {}, "HTTPFinalResponses": { @@ -17,4 +19,4 @@ "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, "TCPTransactionsWithUnexpectedHTTPFailures": {}, "TCPTransactionsWithUnexplainedUnexpectedFailures": {} -} \ No newline at end of file +} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json index 819d311e4b..5fd0e06674 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json @@ -6,7 +6,9 @@ "HTTPDiffBodyProportionFactor": 0.12263535551206783, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": { - "access": true + "access": true, + "default": true, + "denied": true }, "HTTPDiffUncommonHeadersIntersection": {}, "HTTPFinalResponses": { @@ -17,4 +19,4 @@ "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, "TCPTransactionsWithUnexpectedHTTPFailures": {}, "TCPTransactionsWithUnexplainedUnexpectedFailures": {} -} \ No newline at end of file +} From df33632373deef70feda802c4446ecca2edb8a1c Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 18:16:57 +0100 Subject: [PATCH 30/97] add tests for the minipipeline command --- .gitignore | 1 + internal/cmd/minipipeline/main.go | 44 +- internal/cmd/minipipeline/main_test.go | 50 + .../cmd/minipipeline/testdata/analysis.json | 23 + .../minipipeline/testdata/measurement.json | 986 ++++++++++++++++++ .../minipipeline/testdata/observations.json | 158 +++ 6 files changed, 1233 insertions(+), 29 deletions(-) create mode 100644 internal/cmd/minipipeline/main_test.go create mode 100644 internal/cmd/minipipeline/testdata/analysis.json create mode 100644 internal/cmd/minipipeline/testdata/measurement.json create mode 100644 internal/cmd/minipipeline/testdata/observations.json diff --git a/.gitignore b/.gitignore index d632bd8b77..a013e69185 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /*.csv /*.deb /*.exe +/*.json /*.jsonl /*.pprof /*.sqlite3 diff --git a/internal/cmd/minipipeline/main.go b/internal/cmd/minipipeline/main.go index dd21eaeadf..4dc738ca60 100644 --- a/internal/cmd/minipipeline/main.go +++ b/internal/cmd/minipipeline/main.go @@ -1,40 +1,26 @@ package main import ( + "fmt" "os" "github.com/ooni/probe-cli/v3/internal/minipipeline" "github.com/ooni/probe-cli/v3/internal/must" - "github.com/ooni/probe-cli/v3/internal/pipeline" + "github.com/ooni/probe-cli/v3/internal/runtimex" ) -func main() { - rawMeasurement := must.ReadFile(os.Args[1]) - var meas pipeline.CanonicalMeasurement - must.UnmarshalJSON(rawMeasurement, &meas) - - container := minipipeline.NewWebObservationsContainer() - container.CreateDNSLookupFailures(meas.TestKeys.Unwrap().Queries...) - container.CreateKnownIPAddresses(meas.TestKeys.Unwrap().Queries...) - container.CreateKnownTCPEndpoints(meas.TestKeys.Unwrap().TCPConnect...) - container.NoteTLSHandshakeResults(meas.TestKeys.Unwrap().TLSHandshakes...) - container.NoteHTTPRoundTripResults(meas.TestKeys.Unwrap().Requests...) - container.NoteControlResults(meas.TestKeys.Unwrap().XControlRequest.Unwrap(), meas.TestKeys.Unwrap().Control.Unwrap()) - - must.WriteFile("observation.json", must.MarshalJSON(container), 0600) - - analysis := &minipipeline.WebAnalysis{} - analysis.ComputeDNSExperimentFailure(container) - analysis.ComputeDNSTransactionsWithBogons(container) - analysis.ComputeDNSTransactionsWithUnexpectedFailures(container) - analysis.ComputeDNSPossiblyInvalidAddrs(container) - analysis.ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(container) - analysis.ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(container) - analysis.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) - analysis.ComputeHTTPDiffBodyProportionFactor(container) - analysis.ComputeHTTPDiffStatusCodeMatch(container) - analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) - analysis.ComputeHTTPDiffTitleDifferentLongWords(container) +var ( + mustWriteFileFn = must.WriteFile + inputs = os.Args[1:] +) - must.WriteFile("analysis.json", must.MarshalJSON(analysis), 0600) +func main() { + for idx, name := range inputs { + var meas minipipeline.Measurement + must.UnmarshalJSON(must.ReadFile(name), &meas) + container := runtimex.Try1(minipipeline.LoadWebMeasurement(&meas)) + mustWriteFileFn(fmt.Sprintf("observations-%010d.json", idx), must.MarshalJSON(container), 0600) + analysis := minipipeline.AnalyzeWebMeasurement(container) + mustWriteFileFn(fmt.Sprintf("analysis-%010d.json", idx), must.MarshalJSON(analysis), 0600) + } } diff --git a/internal/cmd/minipipeline/main_test.go b/internal/cmd/minipipeline/main_test.go new file mode 100644 index 0000000000..80400048e4 --- /dev/null +++ b/internal/cmd/minipipeline/main_test.go @@ -0,0 +1,50 @@ +package main + +import ( + "io/fs" + "path/filepath" + "testing" + + "github.com/google/go-cmp/cmp" + "github.com/ooni/probe-cli/v3/internal/must" +) + +func mustloadfile(filename string) (object map[string]any) { + data := must.ReadFile(filename) + must.UnmarshalJSON(data, &object) + return +} + +func mustloaddata(contentmap map[string][]byte, key string) (object map[string]any) { + data := contentmap[key] + must.UnmarshalJSON(data, &object) + return +} + +func TestMain(t *testing.T) { + // make sure we're reading from the expected input + inputs = []string{filepath.Join("testdata/measurement.json")} + + // make sure we store the expected output + contentmap := make(map[string][]byte) + mustWriteFileFn = func(filename string, content []byte, mode fs.FileMode) { + contentmap[filename] = content + } + + // run the main function + main() + + // make sure the generated observations are good + expectedObservations := mustloadfile(filepath.Join("testdata", "observations.json")) + gotObservations := mustloaddata(contentmap, "observations-0000000000.json") + if diff := cmp.Diff(expectedObservations, gotObservations); diff != "" { + t.Fatal(diff) + } + + // make sure the generated analysis is good + expectedAnalysis := mustloadfile(filepath.Join("testdata", "analysis.json")) + gotAnalysis := mustloaddata(contentmap, "analysis-0000000000.json") + if diff := cmp.Diff(expectedAnalysis, gotAnalysis); diff != "" { + t.Fatal(diff) + } +} diff --git a/internal/cmd/minipipeline/testdata/analysis.json b/internal/cmd/minipipeline/testdata/analysis.json new file mode 100644 index 0000000000..6484ef3121 --- /dev/null +++ b/internal/cmd/minipipeline/testdata/analysis.json @@ -0,0 +1,23 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 1, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "x-drupal-cache": true, + "x-generator": true + }, + "HTTPFinalResponses": { + "4": true + }, + "HTTPFinalResponsesWithTLS": { + "4": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} diff --git a/internal/cmd/minipipeline/testdata/measurement.json b/internal/cmd/minipipeline/testdata/measurement.json new file mode 100644 index 0000000000..3054658250 --- /dev/null +++ b/internal/cmd/minipipeline/testdata/measurement.json @@ -0,0 +1,986 @@ +{ + "annotations": { + "architecture": "arm64", + "engine_name": "ooniprobe-engine", + "engine_version": "3.20.0-alpha", + "go_version": "go1.20.11", + "platform": "macos", + "vcs_modified": "true", + "vcs_revision": "1eaaac071af3411a63e55edcf4269d41c5c77d63", + "vcs_time": "2023-11-27T16:55:20Z", + "vcs_tool": "git" + }, + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://nexa.polito.it/", + "measurement_start_time": "2023-11-27 17:05:00", + "probe_asn": "AS30722", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Vodafone Italia S.p.A.", + "report_id": "20231127T170500Z_webconnectivity_IT_30722_n1_keQcbSW2K4LoWC9c", + "resolver_asn": "AS30722", + "resolver_ip": "91.80.36.88", + "resolver_network_name": "Vodafone Italia S.p.A.", + "software_name": "miniooni", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://1.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.16.171:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.093297, + "t": 0.154834, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.15486, + "t": 0.15486, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 280, + "operation": "write", + "proto": "tcp", + "t0": 0.155095, + "t": 0.15513, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.155134, + "t": 0.18851, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 3957, + "operation": "read", + "proto": "tcp", + "t0": 0.188732, + "t": 0.188772, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 80, + "operation": "write", + "proto": "tcp", + "t0": 0.193892, + "t": 0.193915, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.193924, + "t": 0.193924, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.193968, + "t": 0.193968, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 304, + "operation": "write", + "proto": "tcp", + "t0": 0.194091, + "t": 0.194109, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 158, + "operation": "read", + "proto": "tcp", + "t0": 0.194948, + "t": 0.226114, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 4864, + "operation": "read", + "proto": "tcp", + "t0": 0.226159, + "t": 0.236533, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 3776, + "operation": "read", + "proto": "tcp", + "t0": 0.236932, + "t": 0.236965, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 2880, + "operation": "read", + "proto": "tcp", + "t0": 0.236969, + "t": 0.237599, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 5760, + "operation": "read", + "proto": "tcp", + "t0": 0.237604, + "t": 0.257691, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 4320, + "operation": "read", + "proto": "tcp", + "t0": 0.257839, + "t": 0.268806, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 15698, + "operation": "read", + "proto": "tcp", + "t0": 0.268812, + "t": 0.270366, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.270579, + "t": 0.270579, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.270868, + "t": 0.270917, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.270564, + "t": 0.271008, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 41989, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.271046, + "t": 0.271046, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": [ + { + "address": "91.80.36.88" + } + ], + "udp_v4": { + "8.8.4.4:53": [ + { + "address": "91.80.36.88" + } + ] + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000834, + "t": 0.000834, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.004079, + "t": 0.020861, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.020896, + "t": 0.020896, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 276, + "operation": "write", + "proto": "tcp", + "t0": 0.02106, + "t": 0.021101, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.021114, + "t": 0.054429, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 3856, + "operation": "read", + "proto": "tcp", + "t0": 0.054733, + "t": 0.054765, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.060409, + "t": 0.060486, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.060502, + "t": 0.060502, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.060567, + "t": 0.060596, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 161, + "operation": "write", + "proto": "tcp", + "t0": 0.060688, + "t": 0.060714, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.060728, + "t": 0.060745, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 38, + "operation": "write", + "proto": "tcp", + "t0": 0.060776, + "t": 0.060812, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.060933, + "t": 0.060954, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 93, + "operation": "read", + "proto": "tcp", + "t0": 0.060649, + "t": 0.077923, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.077966, + "t": 0.078012, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 283, + "operation": "read", + "proto": "tcp", + "t0": 0.078024, + "t": 0.089493, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 1182, + "operation": "read", + "proto": "tcp", + "t0": 0.089627, + "t": 0.090785, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "tcp", + "t0": 0.090846, + "t": 0.090883, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.09104, + "t": 0.09104, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.091081, + "t": 0.091123, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.09094, + "t": 0.091199, + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8888", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8844", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.4.4", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.8.8", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "dns.google.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.google", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001062, + "t": 0.002296, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "8.8.4.4", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.004079, + "t": 0.020861, + "tags": [], + "transaction_id": 2 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "8.8.4.4:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "dns.google", + "t0": 0.020896, + "t": 0.060502, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 2 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.0008, + "t": 0.0008, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001301, + "t": 0.001329, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001311, + "t": 0.001371, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 48, + "operation": "read", + "proto": "udp", + "t0": 0.001361, + "t": 0.030029, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 82, + "operation": "read", + "proto": "udp", + "t0": 0.001417, + "t": 0.031817, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.03185, + "t": 0.03185, + "transaction_id": 3 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "9ESBgAABAAEAAAAABG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAVGAAASCwBCr", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.001128, + "t": 0.030047, + "tags": [], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "4dCBgAABAAAAAQAABG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAACowACYIbGVvbmFyZG/AEQRyb290wCx4lj/+AAAqMAAABwgAEnUAAAFRgA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000817, + "t": 0.031832, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "nexa.polito.it.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000639, + "t": 0.032278, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "IHGBgAABAAEAAAABBG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAFRgAASCwBCrAAApAgAAAIAAAZkADAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.001105, + "t": 0.090905, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "zmOBgAABAAAAAQABBG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAAAcIACYIbGVvbmFyZG/AEQRyb290wCx4lj/+AAAqMAAABwgAEnUAAAFRgAAAKQIAAACAAAF3AAwBcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.000872, + "t": 0.091008, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "nexa.polito.it" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "nexa.polito.it", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://nexa.polito.it/" + }, + "response": { + "body": "\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\n \n\n\n\n \n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n
\n
\n \n\n
\n\t\n\t\n\t\t\t\t\t\t
\n\t\t\t\t\"Nexa\n\t\t\t
\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\t
\n
\n\n \n
\n \n
\"RSS
\n
\"Mail\"
\n
\"Communia
\n
\"Nexa
\n
\"Nexa
\n
\"Nexa
\n
\"github
\n
\n\n\n \n
\n
\n\t\t\t\t\t\n\t\t\t \n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
\n \n
\n\t\t\t
\n\t\t\t\n\t\t\t \t\t\t\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\n\n
\n\n \n\t \n\t\t\t\t\t
\n\t\t \n \n\t\t\t\t\n\t\n\t
\n\t\t
\n\n\t\t\t\n\t\t\t\t\t\n\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\n\n\t\t\t\n\t\t\t
\t\t\t\n\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t \n\t\t\t \n\t\t\t\t
\n
\n\n \n
\n \n
\n \n \n \n
\n \n
\n
\n\n\n\n
    \n \t
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    Il nuovo saggio del co-direttore del Centro Nexa Juan Carlo De Martin

    \nData di uscita: 22 settembre 2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\t

    \n\t\t\tevents \t\t\t

    \n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    15 dicembre 2023

    \nTwitter hashtag della conferenza: #nexa2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    L'intervista di Dealogando al co-direttore del Centro Nexa Maurizio Borghi
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    22 novembre 2023

    \nGIACOMO PISANI (Euricse)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    8 novembre 2023

    \nGUGLIELMO TAMBURRINI (Università di Napoli Federico II)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    25 ottobre 2023

    \nLORENZO LAUDADIO (Politecnico di Torino)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    11 ottobre 2023

    \nSTEVEN UMBRELLO (Institute for Ethics and Emerging Technologies)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
\n\n\n\n
\n
\n\n\n\n\n
\n \n

Pages

\n \n \n \n \n
\n\n\n \n
\n
\n \n\t\t\t \n\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\n\t\t\t \n\t\t
\n \n\t\t\n\t\t\t
\n\t\t\t\t\t\t\t\t
\n
\n\n

Upcoming events

\n \n
\n \n
\n \n \n \n
\n
\n

December

13

2023

\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t
\t\t\n\t
\n\t \n\n\n\t\n\t \n\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t\nPer il ciclo di incontri “i Mercoledì di Nexa” (ogni 2° mercoledì del mese) \n167° Mercoledì di Nexa\nInternet fatta a pezzi\nSovranità digitale,...\t\t\n\t
\n\t \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\n

Recent Publications

\n \n
\n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\t\t\t
\n\t\t \n\n\t
\n \n\t\t\t
\n\t\n\n\t\n\t
\n\t\t
\n
\n\n

search

\n \n
\n \n
\n
\n \n \n
\n
\n\n
\n
\n\n\n \n
\n
\n\n

join our community

\n \n
\n \n

Iscriviti alle nostre mailing lists, contattaci, esplora i nostri corsi, controlla le nostre offerte di lavoro, compila il nostro form per essere aggiornato su future opportunità (come bandi per assegni o borse di ricerca).

\n
\n\n\n \n
\n
\n\n

recommended links

\n \n \n\n\n \n
\n\n
\n\t
\t\t\t\t\n\n\t\n\n
\n
\n
\n\n \n
\n \n
\nNexa Center for Internet & Society
\nVia Boggio, 65/a 10138 Torino, Italy
\nPh. +39 011 090 7217 | Fax +39 011 090
\n7216 | email: info [at] nexa [dot] polito
\n[dot] it\n
\n
\nIl Centro Nexa è un centro di ricerca
\ndel Dipartimento di Automatica e
\nInformatica
del Politecnico di Torino.\n
\n
\nTranne dove altrimenti indicato, il
\ncontenuto di questo sito è rilasciato
\nsecondo i termini della licenza Creative
\nCommons Attribuzione 3.0 Unported
. / Unless otherwise noted this
\n
\n\n
\n\n\n \n
\n
\n
\n\n
\n \n\n\n\n\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Cache-Control", + "public, max-age=3600" + ], + [ + "Content-Language", + "en" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Mon, 27 Nov 2023 17:04:59 GMT" + ], + [ + "Etag", + "\"1701103514-0\"" + ], + [ + "Expires", + "Sun, 19 Nov 1978 05:00:00 GMT" + ], + [ + "Last-Modified", + "Mon, 27 Nov 2023 16:45:14 GMT" + ], + [ + "Link", + "; rel=\"canonical\",; rel=\"shortlink\"" + ], + [ + "Server", + "Apache" + ], + [ + "Vary", + "Cookie,Accept-Encoding" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Drupal-Cache", + "HIT" + ], + [ + "X-Frame-Options", + "SAMEORIGIN" + ], + [ + "X-Generator", + "Drupal 7 (http://drupal.org)" + ] + ], + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 17:04:59 GMT", + "Etag": "\"1701103514-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", + "Link": "; rel=\"canonical\",; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + } + }, + "t0": 0.193968, + "t": 0.270579, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "130.192.16.171", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.093297, + "t": 0.154834, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", + "format": "base64" + }, + { + "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", + "format": "base64" + }, + { + "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", + "format": "base64" + } + ], + "server_name": "nexa.polito.it", + "t0": 0.15486, + "t": 0.193924, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://nexa.polito.it/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.16.171:443", + "130.192.16.171:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.16.171:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.16.171:443": { + "server_name": "nexa.polito.it", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 36564, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 17:05:00 GMT", + "Etag": "\"1701103514-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", + "Link": "; rel=\"canonical\",; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "130.192.16.171" + ] + }, + "ip_info": { + "130.192.16.171": { + "asn": 137, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.16.171 Flags:7}]", + "t": 0.091374 + }, + { + "msg": "conn 130.192.16.171:443: granted permission: true", + "t": 0.193943 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 1.417294625, + "test_start_time": "2023-11-27 17:04:58", + "test_version": "0.5.26" +} diff --git a/internal/cmd/minipipeline/testdata/observations.json b/internal/cmd/minipipeline/testdata/observations.json new file mode 100644 index 0000000000..e4c5231ba1 --- /dev/null +++ b/internal/cmd/minipipeline/testdata/observations.json @@ -0,0 +1,158 @@ +{ + "DNSLookupFailures": { + "2": { + "DNSTransactionIDs": [ + 2 + ], + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + "3": { + "DNSTransactionIDs": [ + 3 + ], + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "IPAddress": null, + "IPAddressASN": null, + "IPAddressOrg": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlTCPConnectFailure": null, + "MatchWithControlIPAddress": null, + "MatchWithControlIPAddressASN": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + }, + "KnownTCPEndpoints": { + "4": { + "DNSTransactionIDs": [ + 3, + 1, + 2 + ], + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressOrg": "Consortium GARR", + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.16.171:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "nexa.polito.it", + "HTTPRequestURL": "https://nexa.polito.it/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 36564, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlTCPConnectFailure": "", + "MatchWithControlIPAddress": true, + "MatchWithControlIPAddressASN": true, + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 36564, + "ControlHTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "ControlHTTPResponseTitle": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" + } + } +} From 5ad838769a926ba4a8eb7dbc45a59ad3254b2766 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Mon, 27 Nov 2023 18:27:33 +0100 Subject: [PATCH 31/97] more testing --- internal/minipipeline/qa_test.go | 1 + .../webconnectivity/generated/README.md | 1 + .../testdata/webconnectivity/manual/README.md | 1 + .../manual/youtube/analysis.json | 27 + .../manual/youtube/measurement.json | 4630 +++++++++++++++++ .../manual/youtube/observations.json | 1329 +++++ 6 files changed, 5989 insertions(+) create mode 100644 internal/minipipeline/testdata/webconnectivity/generated/README.md create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/README.md create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json create mode 100644 internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json diff --git a/internal/minipipeline/qa_test.go b/internal/minipipeline/qa_test.go index 8cfbdbb175..3046010b09 100644 --- a/internal/minipipeline/qa_test.go +++ b/internal/minipipeline/qa_test.go @@ -75,4 +75,5 @@ func testMustRunAllWebTestCases(t *testing.T, topdir string) { func TestQAWeb(t *testing.T) { testMustRunAllWebTestCases(t, filepath.Join("testdata", "webconnectivity", "generated")) + testMustRunAllWebTestCases(t, filepath.Join("testdata", "webconnectivity", "manual")) } diff --git a/internal/minipipeline/testdata/webconnectivity/generated/README.md b/internal/minipipeline/testdata/webconnectivity/generated/README.md new file mode 100644 index 0000000000..6baa157870 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/generated/README.md @@ -0,0 +1 @@ +Test cases automatically generated from webconnectivityqa. diff --git a/internal/minipipeline/testdata/webconnectivity/manual/README.md b/internal/minipipeline/testdata/webconnectivity/manual/README.md new file mode 100644 index 0000000000..f7582182c1 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/README.md @@ -0,0 +1 @@ +Manually curated test cases. diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json new file mode 100644 index 0000000000..3b80e9b195 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json @@ -0,0 +1,27 @@ +{ + "DNSExperimentFailure": null, + "DNSTransactionsWithBogons": {}, + "DNSTransactionsWithUnexpectedFailures": {}, + "DNSPossiblyInvalidAddrs": {}, + "HTTPDiffBodyProportionFactor": 0.6327409384828159, + "HTTPDiffStatusCodeMatch": true, + "HTTPDiffTitleDifferentLongWords": {}, + "HTTPDiffUncommonHeadersIntersection": { + "accept-ch": true, + "alt-svc": true, + "cross-origin-opener-policy": true, + "origin-trial": true, + "permissions-policy": true, + "report-to": true + }, + "HTTPFinalResponses": { + "8": true + }, + "HTTPFinalResponsesWithTLS": { + "8": true + }, + "TCPTransactionsWithUnexpectedTCPConnectFailures": {}, + "TCPTransactionsWithUnexpectedTLSHandshakeFailures": {}, + "TCPTransactionsWithUnexpectedHTTPFailures": {}, + "TCPTransactionsWithUnexplainedUnexpectedFailures": {} +} diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json new file mode 100644 index 0000000000..77d74c3691 --- /dev/null +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/measurement.json @@ -0,0 +1,4630 @@ +{ + "annotations": { + "architecture": "arm64", + "engine_name": "ooniprobe-engine", + "engine_version": "3.20.0-alpha", + "go_version": "go1.20.11", + "platform": "macos", + "vcs_modified": "true", + "vcs_revision": "1eaaac071af3411a63e55edcf4269d41c5c77d63", + "vcs_time": "2023-11-27T16:55:20Z", + "vcs_tool": "git" + }, + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://www.youtube.com/", + "measurement_start_time": "2023-11-27 17:00:19", + "probe_asn": "AS30722", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Vodafone Italia S.p.A.", + "report_id": "20231127T170019Z_webconnectivity_IT_30722_n1_jxD6XdPOm17Pnhif", + "resolver_asn": "AS30722", + "resolver_ip": "91.80.36.88", + "resolver_network_name": "Vodafone Italia S.p.A.", + "software_name": "miniooni", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://1.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "142.250.180.142:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.110712, + "t": 0.129648, + "transaction_id": 5 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.110947, + "t": 0.129699, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.129725, + "t": 0.129725, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.12974, + "t": 0.12974, + "transaction_id": 8 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.110833, + "t": 0.129765, + "transaction_id": 13 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.129834, + "t": 0.129834, + "transaction_id": 13 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.130073, + "t": 0.130132, + "transaction_id": 5 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.130115, + "t": 0.130171, + "transaction_id": 8 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.130161, + "t": 0.130224, + "transaction_id": 13 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.11137, + "t": 0.131017, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.131042, + "t": 0.131042, + "transaction_id": 6 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111194, + "t": 0.131048, + "transaction_id": 9 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.131082, + "t": 0.131082, + "transaction_id": 9 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111145, + "t": 0.13115, + "transaction_id": 11 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.13118, + "t": 0.13118, + "transaction_id": 11 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.131381, + "t": 0.131419, + "transaction_id": 9 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.131415, + "t": 0.131467, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.131472, + "t": 0.131529, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111337, + "t": 0.132858, + "transaction_id": 12 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.132883, + "t": 0.132883, + "transaction_id": 12 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111661, + "t": 0.132953, + "transaction_id": 14 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111852, + "t": 0.132959, + "transaction_id": 15 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.132982, + "t": 0.132982, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.133012, + "t": 0.133012, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111739, + "t": 0.133142, + "transaction_id": 10 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.133172, + "t": 0.133172, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133192, + "t": 0.133233, + "transaction_id": 12 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111708, + "t": 0.133287, + "transaction_id": 4 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133275, + "t": 0.13331, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.133317, + "t": 0.133317, + "transaction_id": 4 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133308, + "t": 0.133344, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133464, + "t": 0.1335, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.133622, + "t": 0.133647, + "transaction_id": 4 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.111918, + "t": 0.137368, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.137396, + "t": 0.137396, + "transaction_id": 7 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 0.13769, + "t": 0.137726, + "transaction_id": 7 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.130175, + "t": 0.165604, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 824, + "operation": "read", + "proto": "tcp", + "t0": 0.165933, + "t": 0.165941, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 5369, + "operation": "read", + "proto": "tcp", + "t0": 0.165942, + "t": 0.166729, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.17204, + "t": 0.172133, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.172155, + "t": 0.172155, + "transaction_id": 8 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133318, + "t": 0.172205, + "transaction_id": 14 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.13023, + "t": 0.172207, + "transaction_id": 13 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.130139, + "t": 0.172235, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.172247, + "t": 0.172247, + "transaction_id": 8 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.131424, + "t": 0.17226, + "transaction_id": 9 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133349, + "t": 0.172351, + "transaction_id": 15 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.172356, + "t": 0.172383, + "transaction_id": 8 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 3048, + "operation": "read", + "proto": "tcp", + "t0": 0.172423, + "t": 0.17243, + "transaction_id": 13 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 0.172422, + "t": 0.172454, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 199, + "operation": "write", + "proto": "tcp", + "t0": 0.172465, + "t": 0.17249, + "transaction_id": 8 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.1725, + "t": 0.172543, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.172544, + "t": 0.172571, + "transaction_id": 9 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 2224, + "operation": "read", + "proto": "tcp", + "t0": 0.172578, + "t": 0.172583, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133238, + "t": 0.174773, + "transaction_id": 12 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 3970, + "operation": "read", + "proto": "tcp", + "t0": 0.172585, + "t": 0.174805, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 3145, + "operation": "read", + "proto": "tcp", + "t0": 0.172432, + "t": 0.174805, + "transaction_id": 13 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 3048, + "operation": "read", + "proto": "tcp", + "t0": 0.17503, + "t": 0.175037, + "transaction_id": 12 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.131472, + "t": 0.175542, + "transaction_id": 6 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.176093, + "t": 0.176128, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133505, + "t": 0.177692, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 632, + "operation": "read", + "proto": "tcp", + "t0": 0.177924, + "t": 0.17793, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.131539, + "t": 0.177938, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 0.178104, + "t": 0.178129, + "transaction_id": 11 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.179877, + "t": 0.179904, + "transaction_id": 9 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.179917, + "t": 0.179917, + "transaction_id": 9 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.1799, + "t": 0.179926, + "transaction_id": 5 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.179932, + "t": 0.179932, + "transaction_id": 5 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.13773, + "t": 0.179951, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 5561, + "operation": "read", + "proto": "tcp", + "t0": 0.177932, + "t": 0.179987, + "transaction_id": 10 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.180099, + "t": 0.180131, + "transaction_id": 14 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.180139, + "t": 0.180139, + "transaction_id": 14 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 0.180127, + "t": 0.180157, + "transaction_id": 7 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.180714, + "t": 0.18074, + "transaction_id": 15 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.180747, + "t": 0.180747, + "transaction_id": 15 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.133651, + "t": 0.180795, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 0.180961, + "t": 0.180991, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.180984, + "t": 0.181019, + "transaction_id": 13 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.181026, + "t": 0.181026, + "transaction_id": 13 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 3147, + "operation": "read", + "proto": "tcp", + "t0": 0.175041, + "t": 0.181221, + "transaction_id": 12 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.181431, + "t": 0.181458, + "transaction_id": 6 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.181486, + "t": 0.181486, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.183152, + "t": 0.183177, + "transaction_id": 11 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.183185, + "t": 0.183185, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.184603, + "t": 0.184629, + "transaction_id": 10 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.184642, + "t": 0.184642, + "transaction_id": 10 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.184763, + "t": 0.184779, + "transaction_id": 7 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.184792, + "t": 0.184792, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.185432, + "t": 0.185448, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.185456, + "t": 0.185456, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.186076, + "t": 0.186099, + "transaction_id": 12 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.186106, + "t": 0.186106, + "transaction_id": 12 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.190988, + "t": 0.190998, + "transaction_id": 15 + }, + { + "address": "216.58.205.46:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191025, + "t": 0.191025, + "transaction_id": 15 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191027, + "t": 0.191041, + "transaction_id": 9 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.190955, + "t": 0.191052, + "transaction_id": 5 + }, + { + "address": "216.58.209.46:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191068, + "t": 0.191068, + "transaction_id": 9 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191067, + "t": 0.191088, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 93, + "operation": "read", + "proto": "tcp", + "t0": 0.172489, + "t": 0.191099, + "transaction_id": 8 + }, + { + "address": "142.251.209.46:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191111, + "t": 0.191111, + "transaction_id": 14 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.191109, + "t": 0.191121, + "transaction_id": 8 + }, + { + "address": "142.250.180.142:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191143, + "t": 0.191143, + "transaction_id": 5 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191132, + "t": 0.191157, + "transaction_id": 13 + }, + { + "address": "[2a00:1450:4002:416::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191181, + "t": 0.191181, + "transaction_id": 13 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.191602, + "t": 0.191618, + "transaction_id": 6 + }, + { + "address": "216.58.204.142:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.191641, + "t": 0.191641, + "transaction_id": 6 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.193444, + "t": 0.193518, + "transaction_id": 11 + }, + { + "address": "[2a00:1450:4002:402::200e]:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.193553, + "t": 0.193553, + "transaction_id": 11 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.194856, + "t": 0.194882, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.194881, + "t": 0.194898, + "transaction_id": 10 + }, + { + "address": "142.250.180.174:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.194903, + "t": 0.194903, + "transaction_id": 7 + }, + { + "address": "[2a00:1450:4002:809::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.194929, + "t": 0.194929, + "transaction_id": 10 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.195589, + "t": 0.195608, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:414::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.195636, + "t": 0.195636, + "transaction_id": 4 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.196247, + "t": 0.196266, + "transaction_id": 12 + }, + { + "address": "[2a00:1450:4002:403::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.196291, + "t": 0.196291, + "transaction_id": 12 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 6862, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.2299, + "t": 0.2299, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.191128, + "t": 0.238112, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4495, + "operation": "read", + "proto": "tcp", + "t0": 0.238128, + "t": 0.238902, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.239047, + "t": 0.239948, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4090, + "operation": "read", + "proto": "tcp", + "t0": 0.239955, + "t": 0.240879, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.240919, + "t": 0.240941, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 5600, + "operation": "read", + "proto": "tcp", + "t0": 0.240913, + "t": 0.27029, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.270348, + "t": 0.271486, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.271505, + "t": 0.273039, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.273062, + "t": 0.273282, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.273294, + "t": 0.274585, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.274667, + "t": 0.274707, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.274736, + "t": 0.274774, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.274647, + "t": 0.275651, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2800, + "operation": "read", + "proto": "tcp", + "t0": 0.275671, + "t": 0.277262, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.277277, + "t": 0.278647, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 8192, + "operation": "read", + "proto": "tcp", + "t0": 0.278659, + "t": 0.27935, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 208, + "operation": "read", + "proto": "tcp", + "t0": 0.279426, + "t": 0.279453, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.279469, + "t": 0.27951, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.279528, + "t": 0.279558, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.279458, + "t": 0.280472, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.28049, + "t": 0.281124, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2306, + "operation": "read", + "proto": "tcp", + "t0": 0.281136, + "t": 0.281883, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 494, + "operation": "read", + "proto": "tcp", + "t0": 0.281895, + "t": 0.281922, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.281932, + "t": 0.284438, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.284454, + "t": 0.285307, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3706, + "operation": "read", + "proto": "tcp", + "t0": 0.28532, + "t": 0.286508, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3294, + "operation": "read", + "proto": "tcp", + "t0": 0.286525, + "t": 0.286543, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.286581, + "t": 0.286601, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.286635, + "t": 0.286652, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3706, + "operation": "read", + "proto": "tcp", + "t0": 0.286569, + "t": 0.287932, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 494, + "operation": "read", + "proto": "tcp", + "t0": 0.287954, + "t": 0.287983, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.28799, + "t": 0.289209, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2306, + "operation": "read", + "proto": "tcp", + "t0": 0.289222, + "t": 0.29087, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3294, + "operation": "read", + "proto": "tcp", + "t0": 0.290879, + "t": 0.290892, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.290902, + "t": 0.290924, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.290954, + "t": 0.290979, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.290998, + "t": 0.291014, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.290943, + "t": 0.292142, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2800, + "operation": "read", + "proto": "tcp", + "t0": 0.29216, + "t": 0.292693, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.292703, + "t": 0.293306, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3420, + "operation": "read", + "proto": "tcp", + "t0": 0.293322, + "t": 0.294783, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 2180, + "operation": "read", + "proto": "tcp", + "t0": 0.294792, + "t": 0.294811, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.294819, + "t": 0.295107, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 3420, + "operation": "read", + "proto": "tcp", + "t0": 0.295114, + "t": 0.296149, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 780, + "operation": "read", + "proto": "tcp", + "t0": 0.296158, + "t": 0.296176, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.296206, + "t": 0.296234, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 35, + "operation": "write", + "proto": "tcp", + "t0": 0.296253, + "t": 0.296272, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1400, + "operation": "read", + "proto": "tcp", + "t0": 0.296195, + "t": 0.301087, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 4200, + "operation": "read", + "proto": "tcp", + "t0": 0.3011, + "t": 0.301832, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 620, + "operation": "read", + "proto": "tcp", + "t0": 0.301854, + "t": 0.303128, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 7618, + "operation": "read", + "proto": "tcp", + "t0": 0.303136, + "t": 0.303141, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 7000, + "operation": "read", + "proto": "tcp", + "t0": 0.303157, + "t": 0.303164, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 1562, + "operation": "read", + "proto": "tcp", + "t0": 0.303215, + "t": 0.30324, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 382309, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.880968, + "t": 0.880968, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 382309, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.021149, + "t": 1.021149, + "transaction_id": 8 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 1.043186, + "t": 1.043186, + "transaction_id": 8 + }, + { + "address": "142.251.209.14:443", + "failure": null, + "num_bytes": 561130, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.044015, + "t": 1.044015, + "transaction_id": 8 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095913, + "t": 1.218617, + "transaction_id": 20 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.218727, + "t": 1.218727, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.219124, + "t": 1.219209, + "transaction_id": 20 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095816, + "t": 1.222128, + "transaction_id": 24 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.222163, + "t": 1.222163, + "transaction_id": 24 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.222493, + "t": 1.222548, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096169, + "t": 1.223685, + "transaction_id": 21 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.223726, + "t": 1.223726, + "transaction_id": 21 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095829, + "t": 1.223881, + "transaction_id": 16 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.223918, + "t": 1.223918, + "transaction_id": 16 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.224119, + "t": 1.224187, + "transaction_id": 21 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.22423, + "t": 1.224274, + "transaction_id": 16 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096267, + "t": 1.224323, + "transaction_id": 17 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096127, + "t": 1.224341, + "transaction_id": 22 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.224351, + "t": 1.224351, + "transaction_id": 17 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.224377, + "t": 1.224377, + "transaction_id": 22 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.22464, + "t": 1.224689, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096254, + "t": 1.224741, + "transaction_id": 18 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.224762, + "t": 1.224762, + "transaction_id": 18 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.224876, + "t": 1.224919, + "transaction_id": 22 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.095932, + "t": 1.224968, + "transaction_id": 19 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.225018, + "t": 1.225018, + "transaction_id": 19 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.225044, + "t": 1.22508, + "transaction_id": 18 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 1.096281, + "t": 1.2251319999999999, + "transaction_id": 23 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 1.225152, + "t": 1.225152, + "transaction_id": 23 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.225349, + "t": 1.225428, + "transaction_id": 19 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 281, + "operation": "write", + "proto": "tcp", + "t0": 1.225702, + "t": 1.225751, + "transaction_id": 23 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.21922, + "t": 1.3642210000000001, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 1.364797, + "t": 1.364844, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.372578, + "t": 1.372621, + "transaction_id": 20 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.372647, + "t": 1.372647, + "transaction_id": 20 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.225757, + "t": 1.372681, + "transaction_id": 23 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.2249240000000001, + "t": 1.372686, + "transaction_id": 22 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.2242790000000001, + "t": 1.3726880000000001, + "transaction_id": 16 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.225084, + "t": 1.3726880000000001, + "transaction_id": 18 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.372906, + "t": 1.372928, + "transaction_id": 16 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.372918, + "t": 1.372942, + "transaction_id": 23 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.372961, + "t": 1.373004, + "transaction_id": 22 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.373046, + "t": 1.373067, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.224693, + "t": 1.3739430000000001, + "transaction_id": 17 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.225432, + "t": 1.373944, + "transaction_id": 19 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.222553, + "t": 1.3739460000000001, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 1.224193, + "t": 1.374024, + "transaction_id": 21 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 6193, + "operation": "read", + "proto": "tcp", + "t0": 1.374122, + "t": 1.374142, + "transaction_id": 17 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 6195, + "operation": "read", + "proto": "tcp", + "t0": 1.3741349999999999, + "t": 1.374156, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.3742, + "t": 1.374221, + "transaction_id": 21 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 6194, + "operation": "read", + "proto": "tcp", + "t0": 1.374235, + "t": 1.374308, + "transaction_id": 19 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.376978, + "t": 1.376978, + "transaction_id": 17 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.379372, + "t": 1.379418, + "transaction_id": 22 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.379432, + "t": 1.379432, + "transaction_id": 22 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.37964, + "t": 1.379677, + "transaction_id": 16 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.379689, + "t": 1.379689, + "transaction_id": 16 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.37991, + "t": 1.379931, + "transaction_id": 23 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.379939, + "t": 1.379939, + "transaction_id": 23 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.381249, + "t": 1.381271, + "transaction_id": 24 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.381278, + "t": 1.381278, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.381708, + "t": 1.381744, + "transaction_id": 17 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.381757, + "t": 1.381757, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.38189, + "t": 1.3819270000000001, + "transaction_id": 18 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.381942, + "t": 1.381942, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.382057, + "t": 1.382087, + "transaction_id": 21 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.382094, + "t": 1.382094, + "transaction_id": 21 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.382798, + "t": 1.382798, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.382776, + "t": 1.382801, + "transaction_id": 20 + }, + { + "address": "[2607:f8b0:400b:807::200e]:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.38285, + "t": 1.38285, + "transaction_id": 20 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 1.384042, + "t": 1.384071, + "transaction_id": 19 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 1.3840810000000001, + "t": 1.3840810000000001, + "transaction_id": 19 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.389751, + "t": 1.389766, + "transaction_id": 16 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.3897599999999999, + "t": 1.38978, + "transaction_id": 22 + }, + { + "address": "142.251.32.78:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.389799, + "t": 1.389799, + "transaction_id": 16 + }, + { + "address": "142.251.41.78:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.389808, + "t": 1.389808, + "transaction_id": 22 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.390004, + "t": 1.390016, + "transaction_id": 23 + }, + { + "address": "142.251.33.174:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.390033, + "t": 1.390033, + "transaction_id": 23 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.391485, + "t": 1.3915009999999999, + "transaction_id": 24 + }, + { + "address": "142.251.41.46:443", + "failure": null, + "num_bytes": 6771, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.391519, + "t": 1.391519, + "transaction_id": 24 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.39185, + "t": 1.391869, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:803::200e]:443", + "failure": null, + "num_bytes": 6769, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.391887, + "t": 1.391887, + "transaction_id": 17 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.392004, + "t": 1.392017, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:80f::200e]:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.39204, + "t": 1.39204, + "transaction_id": 18 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.3921510000000001, + "t": 1.3921649999999999, + "transaction_id": 21 + }, + { + "address": "[2607:f8b0:400b:80c::200e]:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.392183, + "t": 1.392183, + "transaction_id": 21 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 1.394353, + "t": 1.394371, + "transaction_id": 19 + }, + { + "address": "172.217.1.14:443", + "failure": null, + "num_bytes": 6770, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 1.3943889999999999, + "t": 1.3943889999999999, + "transaction_id": 19 + } + ], + "x_dns_whoami": { + "system_v4": [ + { + "address": "91.80.36.88" + } + ], + "udp_v4": { + "8.8.4.4:53": [ + { + "address": "91.80.36.88" + } + ] + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000425, + "t": 0.000425, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.025882, + "t": 0.051755, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.051792, + "t": 0.051792, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 279, + "operation": "write", + "proto": "tcp", + "t0": 0.051978, + "t": 0.052052, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.052067, + "t": 0.078002, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 2926, + "operation": "read", + "proto": "tcp", + "t0": 0.078278, + "t": 0.078283, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 80, + "operation": "write", + "proto": "tcp", + "t0": 0.080889, + "t": 0.08093, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.08096, + "t": 0.08096, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.081057, + "t": 0.081078, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 164, + "operation": "write", + "proto": "tcp", + "t0": 0.081181, + "t": 0.081202, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.081211, + "t": 0.08123, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 38, + "operation": "write", + "proto": "tcp", + "t0": 0.081243, + "t": 0.081265, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.081269, + "t": 0.081286, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 542, + "operation": "read", + "proto": "tcp", + "t0": 0.081128, + "t": 0.107252, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 626, + "operation": "read", + "proto": "tcp", + "t0": 0.107313, + "t": 0.108977, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.109048, + "t": 0.109089, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.10966, + "t": 0.10966, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.109708, + "t": 0.109755, + "transaction_id": 2 + }, + { + "address": "9.9.9.9:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.109223, + "t": 0.109867, + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "AAAA", + "ipv6": "2620:fe::9", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "AAAA", + "ipv6": "2620:fe::fe", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "9.9.9.9", + "ttl": null + }, + { + "asn": 19281, + "as_org_name": "Quad9", + "answer_type": "A", + "ipv4": "149.112.112.112", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "dns.quad9.net.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.quad9.net", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000647, + "t": 0.024963, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "9.9.9.9", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.025882, + "t": 0.051755, + "tags": [], + "transaction_id": 2 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "9.9.9.9:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIGyDCCBk6gAwIBAgIQDQsh8YVJ+5rl2I/Z0i4MlzAKBggqhkjOPQQDAzBWMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMTAwLgYDVQQDEydEaWdpQ2VydCBUTFMgSHlicmlkIEVDQyBTSEEzODQgMjAyMCBDQTEwHhcNMjMwNzMxMDAwMDAwWhcNMjQwODA2MjM1OTU5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTERMA8GA1UEBxMIQmVya2VsZXkxDjAMBgNVBAoTBVF1YWQ5MRQwEgYDVQQDDAsqLnF1YWQ5Lm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH2L1x0DhQ0YJbM0HCmhJ9SsASVIiqDx6gK52FEsCGqsclbs+j2moJ9JCVWOrP65cxdcAvt4zCSRlG9DI4kOHWajggT3MIIE8zAfBgNVHSMEGDAWgBQKvAgpF4ylOW16Ds4zxy6z7fvDejAdBgNVHQ4EFgQUf6kSpdfGi0gCxz0qRW5AHkBg9JcwggGNBgNVHREEggGEMIIBgIILKi5xdWFkOS5uZXSCCXF1YWQ5Lm5ldIcECQkJCYcECQkJCocECQkJC4cECQkJDIcECQkJDYcECQkJDocECQkJD4cElXBwCYcElXBwCocElXBwC4cElXBwDIcElXBwDYcElXBwDocElXBwD4cElXBwcIcQJiAA/gAAAAAAAAAAAAAACYcQJiAA/gAAAAAAAAAAAAAAEIcQJiAA/gAAAAAAAAAAAAAAEYcQJiAA/gAAAAAAAAAAAAAAEocQJiAA/gAAAAAAAAAAAAAAE4cQJiAA/gAAAAAAAAAAAAAAFIcQJiAA/gAAAAAAAAAAAAAAFYcQJiAA/gAAAAAAAAAAAAAA/ocQJiAA/gAAAAAAAAAAAP4ACYcQJiAA/gAAAAAAAAAAAP4AEIcQJiAA/gAAAAAAAAAAAP4AEYcQJiAA/gAAAAAAAAAAAP4AEocQJiAA/gAAAAAAAAAAAP4AE4cQJiAA/gAAAAAAAAAAAP4AFIcQJiAA/gAAAAAAAAAAAP4AFTAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMIGbBgNVHR8EgZMwgZAwRqBEoEKGQGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwRqBEoEKGQGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0h5YnJpZEVDQ1NIQTM4NDIwMjBDQTEtMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMIGFBggrBgEFBQcBAQR5MHcwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBPBggrBgEFBQcwAoZDaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VExTSHlicmlkRUNDU0hBMzg0MjAyMENBMS0xLmNydDAJBgNVHRMEAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlGcR+1mwAAAYmtrLxjAAAEAwBHMEUCIQCAWtmgTRnZsqjxZ7jdiDq0EEfxBB4kMj7oaZPv+URihQIgUJxBXliHw3ic/24+0NilFj/WfEcV1kNRARUhXS6xn08AdwBIsONr2qZHNA/lagL6nTDrHFIBy1bdLIHZu7+rOdiEcwAAAYmtrLxLAAAEAwBIMEYCIQClQbGksPNEGkRsO930WOdpYDBhFWVD44nw9ks9uyawJAIhAPypE9SPFDDkOgrOw+K++guz486lzdjaAfVzdyO6sw80AHUA2ra/az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sAAAGJray8FwAABAMARjBEAiBMmvofeflmsV3JoyFVid5GiJaPHkH9fDWkS93eP9fgEQIgfkTwCbSFNKnF47riYP4MJow7haBO+pFwRW5WAEC1AQQwCgYIKoZIzj0EAwMDaAAwZQIwOOsRrmNqg61CQTVH/6I6W1ZKb+5efJZpgZLVhCirpay7lyiuNyC1QkF6jfTAh+nGAjEAoRSNqC4pY/1GUJ3ygEjSOkUKlFnpXSxYIxJz9yJ43z05faF/uL+mrpAV9GXi2cpt", + "format": "base64" + }, + { + "data": "MIIEFzCCAv+gAwIBAgIQB/LzXIeod6967+lHmTUlvTANBgkqhkiG9w0BAQwFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaMFYxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMDAuBgNVBAMTJ0RpZ2lDZXJ0IFRMUyBIeWJyaWQgRUNDIFNIQTM4NCAyMDIwIENBMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMEbxppbmNmkKaDp1AS12+umsmxVwP/tmMZJLwYnUcu/cMEFesOxnYeJuq20ExfJqLSDyLiQ0cx0NTY8g3KwtdD3ImnI8YDEe0CPz2iHJlw5ifFNkU3aiYvkA8ND5b8vc6OCAYIwggF+MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAq8CCkXjKU5bXoOzjPHLrPt+8N6MB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwCATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG9w0BAQwFAAOCAQEAR1mBf9QbH7Bx9phdGLqYR5iwfnYr6v8ai6wms0KNMeZK6BnQ79oU59cUkqGS8qcuLa/7Hfb7U7CKP/zYFgrpsC62pQsYkDUmotr2qLcy/JUjS8ZFucTP5Hzu5sn4kL1y45nDHQsFfGqXbbKrAjbYwrwsAZI/BKOLdRHHuSm8EdCGupK8JvllyDfNJvaGEwwEqonleLHBTnm8dqMLUeTF0J5q/hosVq4GNiejcxwIfZMy0MJEGdqN9A57HSgDKwmKdsp33Id6rHtSJlWncg+d0ohP/rEhxRqhqjn1VtvChMQ1H3Dau0bwhr9kAMQ+959GG50jBbl9s08PqUU643QwmA==", + "format": "base64" + } + ], + "server_name": "dns.quad9.net", + "t0": 0.051792, + "t": 0.08096, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 2 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000384, + "t": 0.000384, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.000874, + "t": 0.000891, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 33, + "operation": "write", + "proto": "udp", + "t0": 0.00104, + "t": 0.00106, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 179, + "operation": "read", + "proto": "udp", + "t0": 0.000899, + "t": 0.019911, + "transaction_id": 1 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 163, + "operation": "read", + "proto": "udp", + "t0": 0.001073, + "t": 0.022453, + "transaction_id": 1 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.023203, + "t": 0.023203, + "transaction_id": 1 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:403::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:414::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "AAAA", + "raw_response": "5zmBgAABAAUAAAAAA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAAmgAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAABsAECoAFFBAAgQCAAAAAAAAIA7ALQAcAAEAAAAbABAqABRQQAIEAwAAAAAAACAOwC0AHAABAAAAGwAQKgAUUEACBBQAAAAAAAAgDsAtABwAAQAAABsAECoAFFBAAgQWAAAAAAAAIA4=", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000409, + "t": 0.019946, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "A", + "raw_response": "GlGBgAABAAcAAAAAA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAAAmgAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAACoABNg6zS7ALQABAAEAAAAqAASO+rSOwC0AAQABAAAAKgAEjvq0rsAtAAEAAQAAACoABI770Q7ALQABAAEAAAAqAASO+9EuwC0AAQABAAAAKgAE2DrMjg==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000911, + "t": 0.022486, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:403::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:414::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000477, + "t": 0.023412, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:402::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:809::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:414::200e", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2a00:1450:4002:416::200e", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "AAAA", + "raw_response": "YDGBgAABAAUAAAABA3d3dwd5b3V0dWJlA2NvbQAAHAABwAwABQABAAAABQAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtABwAAQAAAEEAECoAFFBAAgQCAAAAAAAAIA7ALQAcAAEAAABBABAqABRQQAIICQAAAAAAACAOwC0AHAABAAAAQQAQKgAUUEACBBQAAAAAAAAgDsAtABwAAQAAAEEAECoAFFBAAgQWAAAAAAAAIA4AACkE0AAAgAAAAA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000444, + "t": 0.109346, + "tags": [], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.14", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.251.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.209.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.204.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "216.58.205.46", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.142", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "142.250.180.174", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "youtube-ui.l.google.com.", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "www.youtube.com", + "query_type": "A", + "raw_response": "evyBgAABAAgAAAABA3d3dwd5b3V0dWJlA2NvbQAAAQABwAwABQABAAAABQAWCnlvdXR1YmUtdWkBbAZnb29nbGXAGMAtAAEAAQAAAG8ABI770Q7ALQABAAEAAABvAASO+9EuwC0AAQABAAAAbwAE2DrRLsAtAAEAAQAAAG8ABNg6zI7ALQABAAEAAABvAATYOs0uwC0AAQABAAAAbwAEjvq0jsAtAAEAAQAAAG8ABI76tK4AACkE0AAAgAAAAA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.quad9.net/dns-query", + "t0": 0.000939, + "t": 0.109379, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "142.251.209.14:443", + "alpn": "h2", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "www.youtube.com" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "www.youtube.com", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://www.youtube.com/" + }, + "response": { + "body": "YouTube
AboutPressCopyrightContact usCreatorsAdvertiseDevelopersTermsPrivacyPolicy & SafetyHow YouTube worksTest new features
© 2023 Google LLC
\n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n
\n
\n \n\n
\n\t\n\t\n\t\t\t\t\t\t
\n\t\t\t\t\"Nexa\n\t\t\t
\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\t
\n
\n\n \n
\n \n
\"RSS
\n
\"Mail\"
\n
\"Communia
\n
\"Nexa
\n
\"Nexa
\n
\"Nexa
\n
\"github
\n
\n\n\n \n
\n
\n\t\t\t\t\t\n\t\t\t \n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
\n \n
\n\t\t\t
\n\t\t\t\n\t\t\t \t\t\t\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\n\n
\n\n \n\t \n\t\t\t\t\t
\n\t\t \n \n\t\t\t\t\n\t\n\t
\n\t\t
\n\n\t\t\t\n\t\t\t\t\t\n\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\n\n\t\t\t\n\t\t\t
\t\t\t\n\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t \n\t\t\t \n\t\t\t\t
\n
\n\n \n
\n \n
\n \n \n \n
\n \n
\n
\n\n\n\n
    \n \t
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    Il nuovo saggio del co-direttore del Centro Nexa Juan Carlo De Martin

    \nData di uscita: 22 settembre 2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\t

    \n\t\t\tevents \t\t\t

    \n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    15 dicembre 2023

    \nTwitter hashtag della conferenza: #nexa2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    L'intervista di Dealogando al co-direttore del Centro Nexa Maurizio Borghi
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    22 novembre 2023

    \nGIACOMO PISANI (Euricse)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    8 novembre 2023

    \nGUGLIELMO TAMBURRINI (Università di Napoli Federico II)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    25 ottobre 2023

    \nLORENZO LAUDADIO (Politecnico di Torino)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    11 ottobre 2023

    \nSTEVEN UMBRELLO (Institute for Ethics and Emerging Technologies)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
\n\n\n\n
\n
\n\n\n\n\n
\n \n

Pages

\n \n \n \n \n
\n\n\n \n
\n
\n \n\t\t\t \n\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\n\t\t\t \n\t\t
\n \n\t\t\n\t\t\t
\n\t\t\t\t\t\t\t\t
\n
\n\n

Upcoming events

\n \n
\n \n
\n \n \n \n
\n
\n

December

13

2023

\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t
\t\t\n\t
\n\t \n\n\n\t\n\t \n\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t\nPer il ciclo di incontri “i Mercoledì di Nexa” (ogni 2° mercoledì del mese) \n167° Mercoledì di Nexa\nInternet fatta a pezzi\nSovranità digitale,...\t\t\n\t
\n\t \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\n

Recent Publications

\n \n
\n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\t\t\t
\n\t\t \n\n\t
\n \n\t\t\t
\n\t\n\n\t\n\t
\n\t\t
\n
\n\n

search

\n \n
\n \n
\n
\n \n \n
\n
\n\n
\n
\n\n\n \n
\n
\n\n

join our community

\n \n
\n \n

Iscriviti alle nostre mailing lists, contattaci, esplora i nostri corsi, controlla le nostre offerte di lavoro, compila il nostro form per essere aggiornato su future opportunità (come bandi per assegni o borse di ricerca).

\n
\n\n\n \n
\n
\n\n

recommended links

\n \n \n\n\n \n
\n\n
\n\t
\t\t\t\t\n\n\t\n\n
\n
\n
\n\n \n
\n \n
\nNexa Center for Internet & Society
\nVia Boggio, 65/a 10138 Torino, Italy
\nPh. +39 011 090 7217 | Fax +39 011 090
\n7216 | email: info [at] nexa [dot] polito
\n[dot] it\n
\n
\nIl Centro Nexa è un centro di ricerca
\ndel Dipartimento di Automatica e
\nInformatica
del Politecnico di Torino.\n
\n
\nTranne dove altrimenti indicato, il
\ncontenuto di questo sito è rilasciato
\nsecondo i termini della licenza Creative
\nCommons Attribuzione 3.0 Unported
. / Unless otherwise noted this
\n
\n\n
\n\n\n \n
\n
\n
\n\n
\n \n\n\n\n\n", - "body_is_truncated": false, - "code": 200, - "headers_list": [ - [ - "Cache-Control", - "public, max-age=3600" - ], - [ - "Content-Language", - "en" - ], - [ - "Content-Type", - "text/html; charset=utf-8" - ], - [ - "Date", - "Mon, 27 Nov 2023 17:04:59 GMT" - ], - [ - "Etag", - "\"1701103514-0\"" - ], - [ - "Expires", - "Sun, 19 Nov 1978 05:00:00 GMT" - ], - [ - "Last-Modified", - "Mon, 27 Nov 2023 16:45:14 GMT" - ], - [ - "Link", - "; rel=\"canonical\",; rel=\"shortlink\"" - ], - [ - "Server", - "Apache" - ], - [ - "Vary", - "Cookie,Accept-Encoding" - ], - [ - "X-Content-Type-Options", - "nosniff" - ], - [ - "X-Content-Type-Options", - "nosniff" - ], - [ - "X-Drupal-Cache", - "HIT" - ], - [ - "X-Frame-Options", - "SAMEORIGIN" - ], - [ - "X-Generator", - "Drupal 7 (http://drupal.org)" - ] - ], - "headers": { - "Cache-Control": "public, max-age=3600", - "Content-Language": "en", - "Content-Type": "text/html; charset=utf-8", - "Date": "Mon, 27 Nov 2023 17:04:59 GMT", - "Etag": "\"1701103514-0\"", - "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", - "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", - "Link": "; rel=\"canonical\",; rel=\"shortlink\"", - "Server": "Apache", - "Vary": "Cookie,Accept-Encoding", - "X-Content-Type-Options": "nosniff", - "X-Drupal-Cache": "HIT", - "X-Frame-Options": "SAMEORIGIN", - "X-Generator": "Drupal 7 (http://drupal.org)" - } - }, - "t0": 0.193968, - "t": 0.270579, - "tags": [], - "transaction_id": 4 - } - ], - "tcp_connect": [ - { - "ip": "130.192.16.171", - "port": 443, - "status": { - "failure": null, - "success": true - }, - "t0": 0.093297, - "t": 0.154834, - "tags": [], - "transaction_id": 4 - } - ], - "tls_handshakes": [ - { - "network": "tcp", - "address": "130.192.16.171:443", - "cipher_suite": "TLS_AES_256_GCM_SHA384", - "failure": null, - "negotiated_protocol": "http/1.1", - "no_tls_verify": false, - "peer_certificates": [ - { - "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", - "format": "base64" - }, - { - "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", - "format": "base64" - }, - { - "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", - "format": "base64" - } - ], - "server_name": "nexa.polito.it", - "t0": 0.15486, - "t": 0.193924, - "tags": [], - "tls_version": "TLSv1.3", - "transaction_id": 4 - } - ], - "x_control_request": { - "http_request": "https://nexa.polito.it/", - "http_request_headers": { - "Accept": [ - "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" - ], - "Accept-Language": [ - "en-US,en;q=0.9" - ], - "User-Agent": [ - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" - ] - }, - "tcp_connect": [ - "130.192.16.171:443", - "130.192.16.171:80" - ], - "x_quic_enabled": false - }, - "control": { - "tcp_connect": { - "130.192.16.171:443": { - "status": true, - "failure": null - } - }, - "tls_handshake": { - "130.192.16.171:443": { - "server_name": "nexa.polito.it", - "status": true, - "failure": null - } - }, - "quic_handshake": {}, - "http_request": { - "body_length": 36564, - "discovered_h3_endpoint": "", - "failure": null, - "title": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", - "headers": { - "Cache-Control": "public, max-age=3600", - "Content-Language": "en", - "Content-Type": "text/html; charset=utf-8", - "Date": "Mon, 27 Nov 2023 17:05:00 GMT", - "Etag": "\"1701103514-0\"", - "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", - "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", - "Link": "; rel=\"canonical\",; rel=\"shortlink\"", - "Server": "Apache", - "Vary": "Cookie,Accept-Encoding", - "X-Content-Type-Options": "nosniff", - "X-Drupal-Cache": "HIT", - "X-Frame-Options": "SAMEORIGIN", - "X-Generator": "Drupal 7 (http://drupal.org)" - }, - "status_code": 200 - }, - "http3_request": null, - "dns": { - "failure": null, - "addrs": [ - "130.192.16.171" - ] - }, - "ip_info": { - "130.192.16.171": { - "asn": 137, - "flags": 11 - } - } - }, - "x_conn_priority_log": [ - { - "msg": "create with [{Addr:130.192.16.171 Flags:7}]", - "t": 0.091374 - }, - { - "msg": "conn 130.192.16.171:443: granted permission: true", - "t": 0.193943 - } - ], - "control_failure": null, - "x_dns_flags": 0, - "dns_experiment_failure": null, - "dns_consistency": "consistent", - "http_experiment_failure": null, - "x_blocking_flags": 32, - "x_null_null_flags": 0, - "body_length_match": true, - "headers_match": true, - "status_code_match": true, - "title_match": true, - "blocking": false, - "accessible": true - }, - "test_name": "web_connectivity", - "test_runtime": 1.417294625, - "test_start_time": "2023-11-27 17:04:58", - "test_version": "0.5.26" + "annotations": { + "architecture": "arm64", + "engine_name": "ooniprobe-engine", + "engine_version": "3.20.0-alpha", + "go_version": "go1.20.11", + "platform": "macos", + "vcs_modified": "true", + "vcs_revision": "56f1659d1bd8b2095aaf81ecf15f78be911913fb", + "vcs_time": "2023-11-30T14:34:27Z", + "vcs_tool": "git" + }, + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "http://nexa.polito.it/", + "measurement_start_time": "2023-11-30 14:43:43", + "probe_asn": "AS30722", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Vodafone Italia S.p.A.", + "report_id": "20231130T144343Z_webconnectivity_IT_30722_n1_BYmIfX4M2K2IUYo8", + "resolver_asn": "AS30722", + "resolver_ip": "91.80.36.88", + "resolver_network_name": "Vodafone Italia S.p.A.", + "software_name": "miniooni", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://1.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.16.171:80", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.118294, + "t": 0.167065, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "address": "130.192.16.171:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.118012, + "t": 0.167065, + "transaction_id": 5, + "tags": [ + "depth=0", + "fetch_body=false" + ] + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.167227, + "t": 0.167227, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.193609, + "t": 0.193609, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "address": "130.192.16.171:80", + "failure": null, + "num_bytes": 419, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.193865, + "t": 0.193865, + "transaction_id": 4, + "tags": [ + "depth=0", + "fetch_body=true" + ] + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 4533, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.204838, + "t": 0.204838, + "transaction_id": 5, + "tags": [ + "depth=0", + "fetch_body=false" + ] + }, + { + "address": "130.192.16.171:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.193827, + "t": 0.21994, + "transaction_id": 6, + "tags": [ + "depth=1", + "fetch_body=true" + ] + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.251752, + "t": 0.251752, + "transaction_id": 6, + "tags": [ + "depth=1", + "fetch_body=true" + ] + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.314948, + "t": 0.314948, + "transaction_id": 6, + "tags": [ + "depth=1", + "fetch_body=true" + ] + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 41989, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.315279, + "t": 0.315279, + "transaction_id": 6, + "tags": [ + "depth=1", + "fetch_body=true" + ] + } + ], + "x_dns_whoami": { + "system_v4": [ + { + "address": "91.80.36.88" + } + ], + "udp_v4": { + "8.8.4.4:53": [ + { + "address": "91.80.36.88" + } + ] + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.001804, + "t": 0.001804, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.025474, + "t": 0.043461, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.043509, + "t": 0.043509, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 276, + "operation": "write", + "proto": "tcp", + "t0": 0.043738, + "t": 0.04378, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.043787, + "t": 0.077223, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 3856, + "operation": "read", + "proto": "tcp", + "t0": 0.077638, + "t": 0.077685, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.085561, + "t": 0.085646, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.085672, + "t": 0.085672, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.085765, + "t": 0.085787, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 161, + "operation": "write", + "proto": "tcp", + "t0": 0.08587, + "t": 0.08589, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.085903, + "t": 0.085924, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 38, + "operation": "write", + "proto": "tcp", + "t0": 0.085939, + "t": 0.085975, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.086182, + "t": 0.086214, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 93, + "operation": "read", + "proto": "tcp", + "t0": 0.085855, + "t": 0.102438, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.102489, + "t": 0.102523, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 938, + "operation": "read", + "proto": "tcp", + "t0": 0.102539, + "t": 0.115604, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "tcp", + "t0": 0.115864, + "t": 0.115925, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 530, + "operation": "read", + "proto": "tcp", + "t0": 0.11598, + "t": 0.116716, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.116846, + "t": 0.116846, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.116889, + "t": 0.116935, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.116755, + "t": 0.11703, + "transaction_id": 3, + "tags": [ + "depth=0" + ] + } + ], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8888", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8844", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.4.4", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.8.8", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "dns.google.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.google", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.00199, + "t": 0.02471, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "8.8.4.4", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.025474, + "t": 0.043461, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "8.8.4.4:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "dns.google", + "t0": 0.043509, + "t": 0.085672, + "tags": [ + "depth=0" + ], + "tls_version": "TLSv1.3", + "transaction_id": 3 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000848, + "t": 0.000848, + "transaction_id": 2, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001086, + "t": 0.00114, + "transaction_id": 2, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001312, + "t": 0.001336, + "transaction_id": 2, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 82, + "operation": "read", + "proto": "udp", + "t0": 0.001193, + "t": 0.028898, + "transaction_id": 2, + "tags": [ + "depth=0" + ] + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 48, + "operation": "read", + "proto": "udp", + "t0": 0.001348, + "t": 0.03163, + "transaction_id": 2, + "tags": [ + "depth=0" + ] + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.031932, + "t": 0.031932, + "transaction_id": 2, + "tags": [ + "depth=0" + ] + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "ITiBgAABAAAAAQAABG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAACowACYIbGVvbmFyZG/AEQRyb290wCx4lkEpAAAqMAAABwgAEnUAAAFRgA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000865, + "t": 0.028949, + "tags": [ + "depth=0" + ], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "+p2BgAABAAEAAAAABG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAVGAAASCwBCr", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.001207, + "t": 0.031652, + "tags": [ + "depth=0" + ], + "transaction_id": 2 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "nexa.polito.it.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000429, + "t": 0.032567, + "tags": [ + "depth=0" + ], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "p4SBgAABAAEAAAABBG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAFRgAASCwBCrAAApAgAAAIAAAZkADAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.003084, + "t": 0.11599, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "f/iBgAABAAAAAQABBG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAAAcIACYIbGVvbmFyZG/AEQRyb290wCx4lkEpAAAqMAAABwgAEnUAAAFRgAAAKQIAAACAAAF3AAwBcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.001834, + "t": 0.116796, + "tags": [ + "depth=0" + ], + "transaction_id": 3 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "nexa.polito.it" + ], + [ + "Referer", + "http://nexa.polito.it/" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "nexa.polito.it", + "Referer": "http://nexa.polito.it/", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://nexa.polito.it/" + }, + "response": { + "body": "\u003c!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML+RDFa 1.0//EN\"\n \"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd\"\u003e\n\u003chtml xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" version=\"XHTML+RDFa 1.0\" dir=\"ltr\"\n xmlns:fb=\"https://ogp.me/ns/fb#\"\n xmlns:og=\"https://ogp.me/ns#\"\u003e\n\n\u003chead profile=\"http://www.w3.org/1999/xhtml/vocab\"\u003e\n \u003cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /\u003e\n\u003clink rel=\"shortcut icon\" href=\"https://nexa.polito.it/nexafiles/contented7_favicon.ico\" type=\"image/vnd.microsoft.icon\" /\u003e\n\u003cmeta name=\"generator\" content=\"Drupal 7 (http://drupal.org)\" /\u003e\n\u003clink rel=\"canonical\" href=\"https://nexa.polito.it/\" /\u003e\n\u003clink rel=\"shortlink\" href=\"https://nexa.polito.it/\" /\u003e\n\u003cmeta property=\"og:type\" content=\"website\" /\u003e\n\u003cmeta property=\"og:url\" content=\"https://nexa.polito.it/\" /\u003e\n\u003cmeta property=\"og:title\" content=\"Nexa Center for Internet \u0026amp; Society\" /\u003e\n\u003cmeta property=\"og:description\" content=\"Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\" /\u003e\n\u003cmeta name=\"twitter:card\" content=\"summary\" /\u003e\n\u003cmeta name=\"twitter:site\" content=\"@nexacenter\" /\u003e\n\u003cmeta name=\"twitter:site:id\" content=\"49607008\" /\u003e\n\u003cmeta name=\"twitter:url\" content=\"https://nexa.polito.it/\" /\u003e\n\u003cmeta name=\"twitter:title\" content=\"Nexa Center for Internet \u0026amp; Society\" /\u003e\n\u003cmeta name=\"twitter:description\" content=\"Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\" /\u003e\n \u003ctitle\u003eNexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\u003c/title\u003e\n \u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_xE-rWrJf-fncB6ztZfd2huxqgxu4WO-qwma6Xer30m4.css\" media=\"all\" /\u003e\n\u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_02kNM7E_d_TVOJ_Q4TPhaP-wbrvOWbuPMtkSrtZvmPY.css\" media=\"all\" /\u003e\n\u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_eukJACdIvUI5veT0PNo-PXBs0I50kokcOb26hO1mxFI.css\" media=\"all\" /\u003e\n\u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_6qqbOWA0So6vmSTtkqcBCrZ3iKRASVZ5qG1Yqwq8HC0.css\" media=\"screen\" /\u003e\n \u003cscript type=\"text/javascript\" src=\"//code.jquery.com/jquery-1.12.4.min.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nwindow.jQuery || document.write(\"\u003cscript src='/sites/all/modules/jquery_update/replace/jquery/1.12/jquery.min.js'\u003e\\x3C/script\u003e\")\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_GOikDsJOX04Aww72M-XK1hkq4qiL_1XgGsRdkL0XlDo.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_TVTqjz8JHRb2KK9hlzuk0YsjzD013dKyYX_OTz-2VXU.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_vPOVD62vJ5lGBWdrLaM_m7mkR4eP_IG7R7jSWx1CnOk.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nvar _paq = _paq || [];(function(){var u=((\"https:\" == document.location.protocol) ? \"https://analytics.nexacenter.org/\" : \"http://analytics.nexacenter.org/\");_paq.push([\"setSiteId\", \"3\"]);_paq.push([\"setTrackerUrl\", u+\"matomo.php\"]);_paq.push([\"setDoNotTrack\", 1]);_paq.push([\"trackPageView\"]);_paq.push([\"setIgnoreClasses\", [\"no-tracking\",\"colorbox\"]]);_paq.push([\"enableLinkTracking\"]);var d=document,g=d.createElement(\"script\"),s=d.getElementsByTagName(\"script\")[0];g.type=\"text/javascript\";g.defer=true;g.async=true;g.src=u+\"matomo.js\";s.parentNode.insertBefore(g,s);})();\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_tzAVab462cyAtlJ1OeA_JccnC5qSOjMMH5CRQ43Ea-8.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\njQuery.extend(Drupal.settings, {\"basePath\":\"\\/\",\"pathPrefix\":\"\",\"setHasJsCookie\":0,\"ajaxPageState\":{\"theme\":\"nexad7\",\"theme_token\":\"PVVZnk1KCxUsfX1pkxau7l9eaXFvdUaP2z-S1tIIXNk\",\"js\":{\"0\":1,\"1\":1,\"sites\\/all\\/modules\\/eu_cookie_compliance\\/js\\/eu_cookie_compliance.min.js\":1,\"\\/\\/code.jquery.com\\/jquery-1.12.4.min.js\":1,\"2\":1,\"misc\\/jquery-extend-3.4.0.js\":1,\"misc\\/jquery-html-prefilter-3.5.0-backport.js\":1,\"misc\\/jquery.once.js\":1,\"misc\\/drupal.js\":1,\"sites\\/all\\/modules\\/jquery_update\\/js\\/jquery_browser.js\":1,\"sites\\/all\\/modules\\/eu_cookie_compliance\\/js\\/jquery.cookie-1.4.1.min.js\":1,\"sites\\/all\\/modules\\/lightbox2\\/js\\/lightbox.js\":1,\"sites\\/all\\/modules\\/matomo\\/matomo.js\":1,\"3\":1,\"sites\\/nexa.polito.it\\/themes\\/nexad7\\/js\\/scripts.js\":1},\"css\":{\"modules\\/system\\/system.base.css\":1,\"modules\\/system\\/system.menus.css\":1,\"modules\\/system\\/system.messages.css\":1,\"modules\\/system\\/system.theme.css\":1,\"modules\\/aggregator\\/aggregator.css\":1,\"modules\\/book\\/book.css\":1,\"modules\\/comment\\/comment.css\":1,\"sites\\/all\\/modules\\/date\\/date_repeat_field\\/date_repeat_field.css\":1,\"modules\\/field\\/theme\\/field.css\":1,\"modules\\/node\\/node.css\":1,\"modules\\/search\\/search.css\":1,\"modules\\/user\\/user.css\":1,\"sites\\/all\\/modules\\/calendar\\/css\\/calendar_multiday.css\":1,\"sites\\/all\\/modules\\/views\\/css\\/views.css\":1,\"sites\\/all\\/modules\\/ctools\\/css\\/ctools.css\":1,\"sites\\/all\\/modules\\/lightbox2\\/css\\/lightbox.css\":1,\"sites\\/all\\/modules\\/oembed\\/oembed.base.css\":1,\"sites\\/all\\/modules\\/oembed\\/oembed.theme.css\":1,\"sites\\/all\\/modules\\/eu_cookie_compliance\\/css\\/eu_cookie_compliance.css\":1,\"public:\\/\\/ctools\\/css\\/0043c8a0cdcd6cba153c028452466f3f.css\":1,\"sites\\/nexa.polito.it\\/themes\\/nexad7\\/style.css\":1}},\"lightbox2\":{\"rtl\":0,\"file_path\":\"\\/(\\\\w\\\\w\\/)public:\\/\",\"default_image\":\"\\/sites\\/all\\/modules\\/lightbox2\\/images\\/brokenimage.jpg\",\"border_size\":10,\"font_color\":\"000\",\"box_color\":\"fff\",\"top_position\":\"\",\"overlay_opacity\":\"0.8\",\"overlay_color\":\"000\",\"disable_close_click\":1,\"resize_sequence\":0,\"resize_speed\":400,\"fade_in_speed\":400,\"slide_down_speed\":600,\"use_alt_layout\":0,\"disable_resize\":0,\"disable_zoom\":0,\"force_show_nav\":0,\"show_caption\":0,\"loop_items\":1,\"node_link_text\":\"View Image Details\",\"node_link_target\":0,\"image_count\":\"Image !current of !total\",\"video_count\":\"Video !current of !total\",\"page_count\":\"Page !current of !total\",\"lite_press_x_close\":\"press \\u003Ca href=\\u0022#\\u0022 onclick=\\u0022hideLightbox(); return FALSE;\\u0022\\u003E\\u003Ckbd\\u003Ex\\u003C\\/kbd\\u003E\\u003C\\/a\\u003E to close\",\"download_link_text\":\"\",\"enable_login\":false,\"enable_contact\":false,\"keys_close\":\"c x 27\",\"keys_previous\":\"p 37\",\"keys_next\":\"n 39\",\"keys_zoom\":\"z\",\"keys_play_pause\":\"32\",\"display_image_size\":\"original\",\"image_node_sizes\":\"()\",\"trigger_lightbox_classes\":\"\",\"trigger_lightbox_group_classes\":\"\",\"trigger_slideshow_classes\":\"\",\"trigger_lightframe_classes\":\"\",\"trigger_lightframe_group_classes\":\"\",\"custom_class_handler\":0,\"custom_trigger_classes\":\"\",\"disable_for_gallery_lists\":1,\"disable_for_acidfree_gallery_lists\":true,\"enable_acidfree_videos\":true,\"slideshow_interval\":5000,\"slideshow_automatic_start\":true,\"slideshow_automatic_exit\":true,\"show_play_pause\":true,\"pause_on_next_click\":false,\"pause_on_previous_click\":true,\"loop_slides\":false,\"iframe_width\":600,\"iframe_height\":400,\"iframe_border\":1,\"enable_video\":0,\"useragent\":\"EyeMonIT Uptime Bot Mozilla\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\/537.36 (KHTML, like Gecko) Chrome\\/74.0.3729.169 Safari\\/537.36\"},\"themepath\":\"\\/sites\\/nexa.polito.it\\/themes\\/nexad7\",\"populatemenu\":\"https:\\/\\/nexa.polito.it\\/modules\\/populatemenu\",\"eu_cookie_compliance\":{\"cookie_policy_version\":\"1.0.0\",\"popup_enabled\":1,\"popup_agreed_enabled\":0,\"popup_hide_agreed\":0,\"popup_clicking_confirmation\":false,\"popup_scrolling_confirmation\":false,\"popup_html_info\":\"\\u003Cdiv class=\\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--opt-in\\u0022\\u003E\\n \\u003Cdiv class=\\u0022popup-content info\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Ch2\\u003EQuesto sito utilizza i cookies, ma nessun dato di navigazione viene raccolto senza il tuo consenso.\\u003C\\/h2\\u003E\\n\\u003Cp\\u003ENon utilizziamo servizi di terze parti per l\\u0027analisi dei dati ed anonimizziamo i dati raccolti.\\u003C\\/p\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022find-more-button eu-cookie-compliance-more-button\\u0022\\u003EPrivacy Policy\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\n \\u003Cdiv id=\\u0022popup-buttons\\u0022 class=\\u0022\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022agree-button eu-cookie-compliance-secondary-button\\u0022\\u003EOK, Accetto\\u003C\\/button\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022decline-button eu-cookie-compliance-default-button\\u0022 \\u003ENo, grazie\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\",\"use_mobile_message\":false,\"mobile_popup_html_info\":\"\\u003Cdiv class=\\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--opt-in\\u0022\\u003E\\n \\u003Cdiv class=\\u0022popup-content info\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022find-more-button eu-cookie-compliance-more-button\\u0022\\u003EPrivacy Policy\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\n \\u003Cdiv id=\\u0022popup-buttons\\u0022 class=\\u0022\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022agree-button eu-cookie-compliance-secondary-button\\u0022\\u003EOK, Accetto\\u003C\\/button\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022decline-button eu-cookie-compliance-default-button\\u0022 \\u003ENo, grazie\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\\n\",\"mobile_breakpoint\":\"768\",\"popup_html_agreed\":\"\\u003Cdiv\\u003E\\n \\u003Cdiv class=\\u0022popup-content agreed\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Ch2\\u003EThank you for accepting cookies\\u003C\\/h2\\u003E\\n\\u003Cp\\u003EYou can now hide this message or find out more about cookies.\\u003C\\/p\\u003E\\n \\u003C\\/div\\u003E\\n \\u003Cdiv id=\\u0022popup-buttons\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022hide-popup-button eu-cookie-compliance-hide-button\\u0022\\u003EHide\\u003C\\/button\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022find-more-button eu-cookie-compliance-more-button-thank-you\\u0022 \\u003EMore info\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\",\"popup_use_bare_css\":false,\"popup_height\":\"auto\",\"popup_width\":\"100%\",\"popup_delay\":1000,\"popup_link\":\"\\/privacy\",\"popup_link_new_window\":0,\"popup_position\":null,\"fixed_top_position\":false,\"popup_language\":\"en\",\"store_consent\":false,\"better_support_for_screen_readers\":0,\"reload_page\":1,\"domain\":\"\",\"domain_all_sites\":0,\"popup_eu_only_js\":0,\"cookie_lifetime\":\"100\",\"cookie_session\":false,\"disagree_do_not_show_popup\":0,\"method\":\"opt_in\",\"allowed_cookies\":\"has_js\\r\\ncookie-agreed\",\"withdraw_markup\":\"\\u003Cbutton type=\\u0022button\\u0022 class=\\u0022eu-cookie-withdraw-tab\\u0022\\u003EPrivacy settings\\u003C\\/button\\u003E\\n\\u003Cdiv class=\\u0022eu-cookie-withdraw-banner\\u0022\\u003E\\n \\u003Cdiv class=\\u0022popup-content info\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Ch2\\u003EWe use cookies on this site to enhance your user experience\\u003C\\/h2\\u003E\\n\\u003Cp\\u003EYou have given your consent for us to set cookies.\\u003C\\/p\\u003E\\n \\u003C\\/div\\u003E\\n \\u003Cdiv id=\\u0022popup-buttons\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022eu-cookie-withdraw-button\\u0022\\u003EWithdraw consent\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\\n\",\"withdraw_enabled\":false,\"withdraw_button_on_info_popup\":0,\"cookie_categories\":[],\"cookie_categories_details\":[],\"enable_save_preferences_button\":1,\"cookie_name\":\"\",\"cookie_value_disagreed\":\"0\",\"cookie_value_agreed_show_thank_you\":\"1\",\"cookie_value_agreed\":\"2\",\"containing_element\":\"body\",\"automatic_cookies_removal\":1,\"close_button_action\":\"close_banner\"},\"matomo\":{\"trackMailto\":1},\"urlIsAjaxTrusted\":{\"\\/\":true}});\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003c/head\u003e\n\u003cbody class=\"html front not-logged-in no-sidebars page-frontpage2\" \u003e\n \u003cdiv id=\"skip-link\"\u003e\n \u003ca href=\"#main-content\" class=\"element-invisible element-focusable\"\u003eSkip to main content\u003c/a\u003e\n \u003c/div\u003e\n \n\n\n\n\n \u003cdiv id=\"wrapper\"\u003e\n \u003cdiv id=\"container\" class=\"clear-block\"\u003e\u003c!-- begin container --\u003e\n \n\n \u003cdiv id=\"header\"\u003e\n\t\n\t\n\t\t\t\t\t\t\u003cdiv id=\"logo\"\u003e\n\t\t\t\t\u003ca href=\"/\" title=\"Nexa Center for Internet \u0026amp; Society\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/logo.png\" alt=\"Nexa Center for Internet \u0026amp; Society\" /\u003e\u003c/a\u003e\n\t\t\t\u003c/div\u003e\t\t\t\n\t\t\t\n\t\t\t\u003cdiv id=\"slogan-floater\"\u003e\u003c!-- begin slogan-floater --\u003e\n\t\t\t\t\t \u003cdiv class=\"region region-social-share\"\u003e\n \u003cdiv id=\"block-block-4\" class=\"block block-block\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"feeds-header feed\"\u003e\u003ca href=\"/feed\" title=\"RSS Feed\"\u003e\u003cimg src=\"/nexafiles/feed.png\" alt=\"RSS Logo\" border=\"0\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header mail\"\u003e\u003ca href=\"/mailing-lists\" title=\"Nexa Mailing Lists\"\u003e\u003cimg src=\"/nexafiles/mail.png\" alt=\"Mail\" border=\"0\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header fb\"\u003e\u003ca href=\"http://facebook.com/nexa.center\" title=\"Nexa Facebook\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/fb.png\" border=\"0\" alt=\"Communia Facebook page\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header tweet\"\u003e\u003ca href=\"http://twitter.com/nexacenter\" title=\"Nexa Twitter\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/tw.png\" border=\"0\" alt=\"Nexa twitter\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header youtube\"\u003e\u003ca href=\"http://www.youtube.com/user/NexaCenter\" title=\"Nexa YouTube\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/you_tube.png\" border=\"0\" alt=\"Nexa youtube\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header flickr\"\u003e\u003ca href=\"https://www.instagram.com/nexa_center/\" title=\"Nexa Instagram\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/flickr2.png\" border=\"0\" alt=\"Nexa Instagram\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header github\"\u003e\u003ca href=\"https://github.com/nexacenter/\" title=\"Github Feed\"\u003e\u003cimg src=\"/nexafiles/github.png\" alt=\"github Logo\" border=\"0\" /\u003e\u003c/a\u003e\u003c/div\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\t\t\t\t\n\t\t\t\u003c!--\t\u003ch1 class='site-name'\u003e\u003ca href=\"/\" title=\"Nexa Center for Internet \u0026amp; Society\"\u003eNexa Center for Internet \u0026amp; Society\u003c/a\u003e\u003c/h1\u003e\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t--\u003e \n\t\t\t\u003c/div\u003e\u003c!-- end slogan-floater --\u003e\n\n\t\t\t\u003cdiv id=\"header-region\" class=\"clear-block\"\u003e \n\t\t\t\t \u003cdiv class=\"region region-header\"\u003e\n \u003cdiv id=\"block-system-main-menu\" class=\"block block-system block-menu\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenu headerMainMenuHome\"\u003e\n \n \u003cul class=\"menu\"\u003e\u003cli class=\"first collapsed\"\u003e\u003ca href=\"/get-involved\" title=\"\"\u003eGet Involved\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"leaf\"\u003e\u003ca href=\"/donate\" title=\"\"\u003eDonate\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"leaf\"\u003e\u003ca href=\"/contatti\" title=\"\"\u003eContacts\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/newsroom\" title=\"\"\u003eNewsroom\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/events\" title=\"\"\u003eEvents\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"leaf\"\u003e\u003ca href=\"/teaching\"\u003eTeaching\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/publications\" title=\"\"\u003ePublications\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/research\"\u003eResearch\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/people\" title=\"People\"\u003ePeople\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"last collapsed\"\u003e\u003ca href=\"/about\"\u003eAbout\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e \u003c/div\u003e\n\n\n\t\u003cdiv class=\"ghostHeaderMenuItem\"\u003e\u003c/div\u003e\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t \t\t\t\n\t\t\t\u003cdiv id=\"sub-heading-home-statement\"\u003e\n\t\t\t\t\u003ch2 id=\"nexa-statement-heading\"\u003e\u003c!-- STATEMENT --\u003e\u003c/h2\u003e \n\t\t\t\t\u003cdiv id=\"goAway\"\u003e\u003c/div\u003e\n\t\t\t\u003c/div\u003e\n\t\t\t\t\n\n \u003c/div\u003e \u003c!-- /#header --\u003e\n\n \n\t \n\t\t\t\t\t\u003cdiv id=\"main-content-block\"\u003e\n\t\t \n \n\t\t\t\t\n\t\n\t\u003cdiv id=\"center\"\u003e\u003c!-- begin center --\u003e \n\t\t\u003cdiv id=\"squeeze\"\u003e\u003c!-- begin squeeze --\u003e\n\n\t\t\t\n\t\t\t\t\t\n\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\n\n\t\t\t\n\t\t\t\u003cdiv class=\"tabs\"\u003e\u003c/div\u003e\t\t\t\n\t\t\t \n\t\t\t\t\t\t\t\u003cdiv class=\"clear-block\"\u003e\n\n\t\t\t\t \n\t\t\t \n\t\t\t\t \u003cdiv class=\"region region-content\"\u003e\n \u003cdiv id=\"block-system-main\" class=\"block block-system\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"view view-frontpage2 view-id-frontpage2 view-display-id-page_1 view-dom-id-6807e5671e7646065affd0abf37216ef\"\u003e\n \n \n \n \u003cdiv class=\"view-content\"\u003e\n \n\u003cdiv class=\"item-list\"\u003e\n\u003cdiv class=\"view-content-frontpage2\"\u003e\n\n\n\n \u003cul\u003e\n \t \u003cli class=\"v\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1807\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\u003ch2 class=\"nexa-news\"\u003e\n\t\t\tnews \t\t\t\u003c/h2\u003e\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/contro-lo-smartphone-web-ok.jpg?itok=9x-BvgLK\" width=\"88\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/contro-lo-smartphone\"\u003eContro lo smartphone. Per una tecnologia più democratica\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003eIl nuovo saggio del co-direttore del Centro Nexa Juan Carlo De Martin\u003cbr /\u003e\u003cbr /\u003e\nData di uscita: 22 settembre 2023\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/contro-lo-smartphone\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"i\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1829\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\t\u003ch2 class=\"nexa-event\"\u003e\n\t\t\tevents \t\t\t\u003c/h2\u003e\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social-1.png?itok=vlrGaAJf\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/conf2023\"\u003eConferenza Nexa su Internet \u0026amp; Società 2023\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e15 dicembre 2023\u003cbr /\u003e\u003cbr /\u003e\nTwitter hashtag della conferenza: \u003ca href=\"https://twitter.com/hashtag/nexa2023?src=hashtag_click\"\u003e#nexa2023\u003c/a\u003e\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/conf2023\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"e\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1830\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\u003ch2 class=\"nexa-news\"\u003e\n\t\t\tnews \t\t\t\u003c/h2\u003e\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/mborghi23_1.jpg?itok=uKC3DqJo\" width=\"108\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/intervista-Borghi-Dealogando\"\u003eDigital Services Act, Borghi: “Bavaglio al web? La censura c’era già ma i rimedi sono inefficaci”\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003eL'intervista di Dealogando al co-direttore del Centro Nexa Maurizio Borghi\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/intervista-Borghi-Dealogando\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"w\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1809\"\u003e\n\t\t\n\t\t\t\n\t\t\t\t\t\u003ch2 class=\"lunch-seminar\"\u003e\n\t\t\tlunch seminar \t\t\t\u003c/h2\u003e\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social-lunch109.png?itok=bzGwi-Du\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/lunch-109\"\u003e109° Nexa Lunch Seminar - Piattaforme digitali e autodeterminazione. Relazioni sociali, lavoro e diritti al tempo della \u0026quot;governamentalità algoritmica\u0026quot;\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e22 novembre 2023\u003cbr /\u003e\u003cbr /\u003e\nGIACOMO PISANI (Euricse)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/lunch-109\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"s\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1771\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t\u003ch2 class=\"nexa-wednesday\"\u003e\n\t\t\tmercoled\u0026igrave; di nexa \t\t\t\u003c/h2\u003e\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social-tamburrini1.png?itok=RnnaEtE2\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/mercoledi-166\"\u003e166° Mercoledì di Nexa - Etica del digitale ed euristiche mentali\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e8 novembre 2023\u003cbr /\u003e\u003cbr /\u003e\nGUGLIELMO TAMBURRINI (Università di Napoli Federico II)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/mercoledi-166\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"-\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1808\"\u003e\n\t\t\n\t\t\t\n\t\t\t\t\t\u003ch2 class=\"lunch-seminar\"\u003e\n\t\t\tlunch seminar \t\t\t\u003c/h2\u003e\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social108.png?itok=F8A01vnp\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/lunch-108\"\u003e108° Nexa Lunch Seminar - Analisi e report di trasferimenti di dati personali verso domini extra-EEA\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e25 ottobre 2023\u003cbr /\u003e\u003cbr /\u003e\nLORENZO LAUDADIO (Politecnico di Torino)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/lunch-108\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"r\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1773\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t\u003ch2 class=\"nexa-wednesday\"\u003e\n\t\t\tmercoled\u0026igrave; di nexa \t\t\t\u003c/h2\u003e\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/ig_1_0.png?itok=fjPQ1peJ\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/mercoledi-165\"\u003e165° Mercoledì di Nexa - Oggetti Buoni: Progettare tecnologie per i valori umani\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e11 ottobre 2023\u003cbr /\u003e\u003cbr /\u003e\nSTEVEN UMBRELLO (Institute for Ethics and Emerging Technologies)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/mercoledi-165\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003c/ul\u003e\n\n\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\n\n \u003c/div\u003e\n \n \u003ch2 class=\"element-invisible\"\u003ePages\u003c/h2\u003e\u003cdiv class=\"item-list\"\u003e\u003cul class=\"pager\"\u003e\u003cli class=\"pager-current first\"\u003e1\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 2\" href=\"/frontpage2?page=1\"\u003e2\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 3\" href=\"/frontpage2?page=2\"\u003e3\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 4\" href=\"/frontpage2?page=3\"\u003e4\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 5\" href=\"/frontpage2?page=4\"\u003e5\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 6\" href=\"/frontpage2?page=5\"\u003e6\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 7\" href=\"/frontpage2?page=6\"\u003e7\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 8\" href=\"/frontpage2?page=7\"\u003e8\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 9\" href=\"/frontpage2?page=8\"\u003e9\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-ellipsis\"\u003e…\u003c/li\u003e\n\u003cli class=\"pager-next\"\u003e\u003ca title=\"Go to next page\" href=\"/frontpage2?page=1\"\u003enext ›\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-last last\"\u003e\u003ca title=\"Go to last page\" href=\"/frontpage2?page=70\"\u003elast »\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e \n \n \n \n \n\u003c/div\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n \n\t\t\t \n\t\t\t\t\u003cdiv id=\"about-footer\" class=\"clear-block\"\u003e\n\t\t\t\t\t\t\t\t\t\u003c/div\u003e\n\t\t\t\t\n\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\n\t\t\t \n\t\t\u003c/div\u003e\u003c!-- end squeeze --\u003e\n \n\t\t\u003c!-- begin small_sidebar --\u003e\n\t\t\t\u003cdiv id=\"sidebar-right\" class=\"sidebar\"\u003e\n\t\t\t\t\t\t\t\t \u003cdiv class=\"region region-small-sidebar\"\u003e\n \u003cdiv id=\"block-multiblock-3\" class=\"block block-multiblock block-views block-views-upcoming_events-block_1-instance\"\u003e\n\n \u003ch2\u003eUpcoming events\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"view view-upcoming-events view-id-upcoming_events view-display-id-block_1 upcoming-events view-dom-id-32590febeccd7118463c59952ac4da2f\"\u003e\n \n \n \n \u003cdiv class=\"view-content\"\u003e\n \u003cdiv class=\"views-row views-row-1 views-row-odd views-row-first views-row-last\"\u003e\n \u003cdiv class=\"dateBox\"\u003e\u003cdiv class=\"dateBoxInside\"\u003e\u003cp\u003eDecember\u003c/p\u003e\u003cp\u003e13\u003c/p\u003e\u003cp\u003e2023\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\n\n\t\u003cdiv class=\"views-field-field-luogo\"\u003e\n\n\n\t\t\t\t \n\t\t\n\t\t\t\u003cdiv class=\"views-field-field-luogo-value\"\u003e\u003c/div\u003e\t\t\n\t\u003c/div\u003e\n\t \n\n\n\t\u003cdiv class=\"views-field-title event-box-title\"\u003e\n\n\n\t\t\t\t \n\t\t\n\t\t\t\u003cspan class=\"field-content\"\u003e\u003ca href=\"/mercoledi-167\"\u003e167° Mercoledì di Nexa - Internet fatta a pezzi. Sovranità digitale, nazionalismi e big tech\u003c/a\u003e\u003c/span\u003e\t\t\n\t\u003c/div\u003e\n\t \n\n\n\t\u003cdiv class=\"views-field-body\"\u003e\n\n\n\t\t\t\t \n\t\t\n\t\t\t\u003cspan class=\"field-content\"\u003e\nPer il ciclo di incontri “i Mercoledì di Nexa” (ogni 2° mercoledì del mese) \n167° Mercoledì di Nexa\nInternet fatta a pezzi\nSovranità digitale,...\u003c/span\u003e\t\t\n\t\u003c/div\u003e\n\t \n \u003c/div\u003e\n \u003c/div\u003e\n \n \n \n \n \n \n\u003c/div\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-views-publications-block-1\" class=\"block block-views\"\u003e\n\n \u003ch2\u003eRecent Publications\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"view view-Publications view-id-Publications view-display-id-block_1 view-dom-id-58e06d72edaccd704776118b8811e38b\"\u003e\n \n \n \n \u003cdiv class=\"view-content\"\u003e\n \u003cdiv class=\"item-list\"\u003e \u003cul\u003e \u003cli class=\"views-row views-row-1 views-row-odd views-row-first\"\u003e \n \u003cdiv class=\"views-field-field-authors pubblications-block\"\u003e\n \u003cdiv class=\"field-content\"\u003e\u003cdiv class=\"field-content\"\u003eJuan Carlos De Martin\u003c/div\u003e\u003c/div\u003e\n \u003c/div\u003e\n \n \u003cdiv class=\"views-field-title pubblications-block\"\u003e\n \u003cspan class=\"field-content\"\u003e\u003cspan class=\"field-content\"\u003e\u003ca href=\"/Juan-Carlos-De-Martin-contro-lo-smartphone\"\u003eContro lo smartphone. Per una tecnologia più democratica\u003c/a\u003e\u003c/span\u003e\u003c/span\u003e\n \u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"views-row views-row-2 views-row-even\"\u003e \n \u003cdiv class=\"views-field-field-authors pubblications-block\"\u003e\n \u003cdiv class=\"field-content\"\u003e\u003cdiv class=\"field-content\"\u003eThis report was mainly curated by Giovanni Garifo, Giacomo Conti and Anita Botta, with the contributions of the Nexa Staff, Directors and Community\u003c/div\u003e\u003c/div\u003e\n \u003c/div\u003e\n \n \u003cdiv class=\"views-field-title pubblications-block\"\u003e\n \u003cspan class=\"field-content\"\u003e\u003cspan class=\"field-content\"\u003e\u003ca href=\"/2023-annual-report\"\u003eNexa Center Annual Report 2023\u003c/a\u003e\u003c/span\u003e\u003c/span\u003e\n \u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"views-row views-row-3 views-row-odd views-row-last\"\u003e \n \u003cdiv class=\"views-field-field-authors pubblications-block\"\u003e\n \u003cdiv class=\"field-content\"\u003e\u003cdiv class=\"field-content\"\u003eJuan Carlos De Martin, Marco Ricolfi\u003c/div\u003e\u003c/div\u003e\n \u003c/div\u003e\n \n \u003cdiv class=\"views-field-title pubblications-block\"\u003e\n \u003cspan class=\"field-content\"\u003e\u003cspan class=\"field-content\"\u003e\u003ca href=\"/experience-Nexa-Center\"\u003eThe first 15 years of the Nexa Center for Internet and Society\u003c/a\u003e\u003c/span\u003e\u003c/span\u003e\n \u003c/div\u003e\n\u003c/li\u003e\n \u003c/ul\u003e\u003c/div\u003e \u003c/div\u003e\n \n \n \n \n \n \n\u003c/div\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\t\t\u003c/div\u003e\n\t\t\u003c!-- end small_sidebar --\u003e \n\n\t\u003c/div\u003e\u003c!-- end center --\u003e\n \n\t\t\t\u003c/div\u003e \u003c!-- /.main-content-block --\u003e\n\t\n\n\t\n\t\u003cdiv id=\"sidebar-left\" class=\"sidebar\"\u003e\u003c!-- begin sidebar-left --\u003e\n\t\t \u003cdiv class=\"region region-main-sidebar\"\u003e\n \u003cdiv id=\"block-search-form\" class=\"block block-search\"\u003e\n\n \u003ch2\u003esearch\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cform action=\"/\" method=\"post\" id=\"search-block-form\" accept-charset=\"UTF-8\"\u003e\u003cdiv\u003e\u003cdiv class=\"container-inline\"\u003e\n \u003cdiv class=\"form-item form-type-textfield form-item-search-block-form\"\u003e\n \u003clabel class=\"element-invisible\" for=\"edit-search-block-form--2\"\u003eSearch \u003c/label\u003e\n \u003cinput title=\"Enter the terms you wish to search for.\" type=\"text\" id=\"edit-search-block-form--2\" name=\"search_block_form\" value=\"\" size=\"15\" maxlength=\"128\" class=\"form-text\" /\u003e\n\u003c/div\u003e\n\u003cdiv class=\"form-actions form-wrapper\" id=\"edit-actions\"\u003e\u003cinput type=\"submit\" id=\"edit-submit\" name=\"op\" value=\"Search\" class=\"form-submit\" /\u003e\u003c/div\u003e\u003cinput type=\"hidden\" name=\"form_build_id\" value=\"form-jyIPOew0RZy84PhzRFAw-dm-TaTMpnpjCThYR3olBLk\" /\u003e\n\u003cinput type=\"hidden\" name=\"form_id\" value=\"search_block_form\" /\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/form\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-block-6\" class=\"block block-block\"\u003e\n\n \u003ch2\u003ejoin our community\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cp\u003eIscriviti alle nostre \u003ca href=\"/mailing-lists\"\u003emailing lists\u003c/a\u003e, \u003ca href=\"/contact\"\u003econtattaci\u003c/a\u003e, esplora i nostri \u003ca href=\"/teaching\"\u003ecorsi\u003c/a\u003e, controlla le nostre \u003ca href=\"/job-openings\"\u003eofferte di lavoro\u003c/a\u003e, compila il nostro \u003ca href=\"/know-about-you\"\u003eform\u003c/a\u003e per essere aggiornato su future opportunità (come bandi per assegni o borse di ricerca).\u003c/p\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-block-12\" class=\"block block-block\"\u003e\n\n \u003ch2\u003erecommended links\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cp\u003ereadings \u0026amp; links -- \u003ca href=\"/recommended-readings\"\u003eletture selezionate per comprendere Internet\u003c/a\u003e\u003c/p\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-block-8\" class=\"block block-block\"\u003e\n\n \u003ch2\u003eproject keywords\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdl\u003e\n\u003cdd\u003e\u003ca href=\"/psi\"\u003epublic sector innovation\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/open-culture\"\u003epublic domain, the commons and open access\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/internet-monitoring\"\u003einternet monitoring and analysis\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/internet-and-democracy\"\u003efundamental rights online \u0026amp; digital citizenship\u003c/a\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c!--\u003cdl\u003e\u003cdd\u003e\u003ca href=\"anonimity-open-wifi\"\u003eanonimity online\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/biennaledemocrazia\"\u003einternet e democrazia\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"http://communia-project.eu\"\u003ecommunia EU thematic network\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"http://creativecommons.it/\"\u003ecreative commons italia\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/webgeography\"\u003eweb geography\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/neubot\"\u003enetwork neutrality bot (NeuBot)\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"http://selili.polito.it/\"\u003eservizio licenze libere\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"universita-aperta\"\u003euniversity and democracy\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/cloud-computing\"\u003ecloud computing\u003c/a\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003cp\u003e--\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\u003c/div\u003e\u003c!-- end sidebar-left --\u003e\t\t\t\t\n\n\t\n\n \u003cdiv id=\"footer\"\u003e\n \u003cdiv class=\"region region-footer\"\u003e\n \u003cdiv id=\"block-block-15\" class=\"block block-block\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"footer-box\" id=\"footer-first\"\u003e\nNexa Center for Internet \u0026amp; Society\u003cbr /\u003e\n\u003ca href=\"/contacts\"\u003eVia Boggio, 65/a\u003c/a\u003e 10138 Torino, Italy\u003cbr /\u003e\nPh. +39 011 090 7217 | Fax +39 011 090\u003cbr /\u003e\n7216 | email: info [at] nexa [dot] polito\u003cbr /\u003e\n[dot] it\n\u003c/div\u003e\n\u003cdiv class=\"footer-box\" id=\"footer-second\"\u003e\nIl Centro Nexa è un centro di ricerca\u003cbr /\u003e\ndel \u003ca href=\"http://www.dauin.polito.it\"\u003eDipartimento di Automatica e\u003cbr /\u003e\nInformatica\u003c/a\u003e del \u003ca href=\"http://www.polito.it\"\u003ePolitecnico di Torino\u003c/a\u003e.\n\u003c/div\u003e\n\u003cdiv class=\"footer-box\" id=\"footer-third\"\u003e\n\u003cem\u003eTranne dove \u003ca href=\"/credits\"\u003ealtrimenti indicato\u003c/a\u003e, il\u003cbr /\u003e\ncontenuto di questo sito è rilasciato\u003cbr /\u003e\nsecondo i termini della \u003ca rel=\"licenza\" href=\"http://creativecommons.org/licenses/by/3.0/deed.it\"\u003elicenza Creative\u003cbr /\u003e\nCommons Attribuzione 3.0 Unported\u003c/a\u003e. / Unless otherwise noted this\u003c/em\u003e\n\u003c/div\u003e\n\u003cdiv class=\"footer-box\" id=\"footer-fourth\"\u003e\n\u003cem\u003esite and its contents are licensed\u003cbr /\u003e\nunder the \u003c/em\u003e\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by/3.0/\"\u003eCreative Commons Attribution 3.0 Unported License\u003c/a\u003e.\n\u003cp\u003e\u003ca href=\"/credits\"\u003eCredits\u003c/a\u003e \u003ca class=\"creative-commons\" rel=\"license\" href=\"http://creativecommons.org/licenses/by/3.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by/3.0/88x31.png\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/privacy\"\u003ePolicy sull'utilizzo dei cookie\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e \u003c!-- /#footer --\u003e\n\n \u003c/div\u003e\u003c/div\u003e \u003c!-- /#wrapper, /#container --\u003e\n \u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nwindow.euCookieComplianceLoadScripts = function(category) {}\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nwindow.eu_cookie_compliance_cookie_name = \"\";\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_b5uBqrfPrs_UEmgBeVFSOcXgjdijNE3mS-ZnwQ0jdnU.js\"\u003e\u003c/script\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Cache-Control", + "public, max-age=3600" + ], + [ + "Content-Language", + "en" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Thu, 30 Nov 2023 14:43:42 GMT" + ], + [ + "Etag", + "\"1701352574-0\"" + ], + [ + "Expires", + "Sun, 19 Nov 1978 05:00:00 GMT" + ], + [ + "Last-Modified", + "Thu, 30 Nov 2023 13:56:14 GMT" + ], + [ + "Link", + "\u003chttps://nexa.polito.it/\u003e; rel=\"canonical\",\u003chttps://nexa.polito.it/\u003e; rel=\"shortlink\"" + ], + [ + "Server", + "Apache" + ], + [ + "Vary", + "Cookie,Accept-Encoding" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Drupal-Cache", + "HIT" + ], + [ + "X-Frame-Options", + "SAMEORIGIN" + ], + [ + "X-Generator", + "Drupal 7 (http://drupal.org)" + ] + ], + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 30 Nov 2023 14:43:42 GMT", + "Etag": "\"1701352574-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Thu, 30 Nov 2023 13:56:14 GMT", + "Link": "\u003chttps://nexa.polito.it/\u003e; rel=\"canonical\",\u003chttps://nexa.polito.it/\u003e; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + } + }, + "t0": 0.251752, + "t": 0.314948, + "tags": [ + "depth=1", + "fetch_body=true" + ], + "transaction_id": 6 + }, + { + "network": "tcp", + "address": "130.192.16.171:80", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "nexa.polito.it" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "nexa.polito.it", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "http://nexa.polito.it/" + }, + "response": { + "body": "\u003c!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\"\u003e\n\u003chtml\u003e\u003chead\u003e\n\u003ctitle\u003e301 Moved Permanently\u003c/title\u003e\n\u003c/head\u003e\u003cbody\u003e\n\u003ch1\u003eMoved Permanently\u003c/h1\u003e\n\u003cp\u003eThe document has moved \u003ca href=\"https://nexa.polito.it/\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003c/body\u003e\u003c/html\u003e\n", + "body_is_truncated": false, + "code": 301, + "headers_list": [ + [ + "Content-Length", + "231" + ], + [ + "Content-Type", + "text/html; charset=iso-8859-1" + ], + [ + "Date", + "Thu, 30 Nov 2023 14:43:42 GMT" + ], + [ + "Location", + "https://nexa.polito.it/" + ], + [ + "Server", + "Apache" + ] + ], + "headers": { + "Content-Length": "231", + "Content-Type": "text/html; charset=iso-8859-1", + "Date": "Thu, 30 Nov 2023 14:43:42 GMT", + "Location": "https://nexa.polito.it/", + "Server": "Apache" + } + }, + "t0": 0.167227, + "t": 0.193609, + "tags": [ + "depth=0", + "fetch_body=true" + ], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "130.192.16.171", + "port": 443, + "status": { + "blocked": false, + "failure": null, + "success": true + }, + "t0": 0.118012, + "t": 0.167065, + "tags": [ + "depth=0", + "fetch_body=false" + ], + "transaction_id": 5 + }, + { + "ip": "130.192.16.171", + "port": 80, + "status": { + "blocked": false, + "failure": null, + "success": true + }, + "t0": 0.118294, + "t": 0.167065, + "tags": [ + "depth=0", + "fetch_body=true" + ], + "transaction_id": 4 + }, + { + "ip": "130.192.16.171", + "port": 443, + "status": { + "blocked": false, + "failure": null, + "success": true + }, + "t0": 0.193827, + "t": 0.21994, + "tags": [ + "depth=1", + "fetch_body=true" + ], + "transaction_id": 6 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", + "format": "base64" + }, + { + "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", + "format": "base64" + }, + { + "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", + "format": "base64" + } + ], + "server_name": "nexa.polito.it", + "t0": 0.16714, + "t": 0.204679, + "tags": [ + "depth=0", + "fetch_body=false" + ], + "tls_version": "TLSv1.3", + "transaction_id": 5 + }, + { + "network": "tcp", + "address": "130.192.16.171:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", + "format": "base64" + }, + { + "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", + "format": "base64" + }, + { + "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", + "format": "base64" + } + ], + "server_name": "nexa.polito.it", + "t0": 0.219982, + "t": 0.251655, + "tags": [ + "depth=1", + "fetch_body=true" + ], + "tls_version": "TLSv1.3", + "transaction_id": 6 + } + ], + "x_control_request": { + "http_request": "http://nexa.polito.it/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.16.171:443", + "130.192.16.171:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.16.171:443": { + "status": true, + "failure": null + }, + "130.192.16.171:80": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.16.171:443": { + "server_name": "nexa.polito.it", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 36564, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Thu, 30 Nov 2023 14:43:43 GMT", + "Etag": "\"1701352574-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Thu, 30 Nov 2023 13:56:14 GMT", + "Link": "\u003chttps://nexa.polito.it/\u003e; rel=\"canonical\",\u003chttps://nexa.polito.it/\u003e; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "130.192.16.171" + ] + }, + "ip_info": { + "130.192.16.171": { + "asn": 137, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.16.171 Flags:7}]", + "t": 0.117228 + }, + { + "msg": "conn 130.192.16.171:80: granted permission: true", + "t": 0.167115 + }, + { + "msg": "create with [{Addr:130.192.16.171 Flags:7}]", + "t": 0.193762 + }, + { + "msg": "conn 130.192.16.171:443: granted permission: true", + "t": 0.251689 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": null, + "headers_match": null, + "status_code_match": null, + "title_match": null, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 1.648913625, + "test_start_time": "2023-11-30 14:43:42", + "test_version": "0.5.26" } diff --git a/internal/cmd/minipipeline/testdata/observations.json b/internal/cmd/minipipeline/testdata/observations.json index 642f0b4900..2551edd3c5 100644 --- a/internal/cmd/minipipeline/testdata/observations.json +++ b/internal/cmd/minipipeline/testdata/observations.json @@ -1,7 +1,12 @@ { "DNSLookupFailures": [ { - "DNSTransactionID": 3, + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "dns_no_answer", "DNSQueryType": "AAAA", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,7 +45,12 @@ "ControlHTTPResponseTitle": null }, { - "DNSTransactionID": 2, + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "dns_no_answer", "DNSQueryType": "AAAA", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -85,7 +91,12 @@ ], "DNSLookupSuccesses": [ { - "DNSTransactionID": 3, + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": "A", @@ -112,8 +123,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -128,6 +137,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", @@ -155,8 +169,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -171,7 +183,12 @@ "ControlHTTPResponseTitle": null }, { - "DNSTransactionID": 2, + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": "A", @@ -198,8 +215,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -216,7 +231,12 @@ ], "KnownTCPEndpoints": { "4": { - "DNSTransactionID": 3, + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 2, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": null, @@ -229,6 +249,134 @@ "IPAddressBogon": false, "EndpointTransactionID": 4, "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.16.171:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://nexa.polito.it/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 301, + "HTTPResponseBodyLength": 231, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Content-Type": true, + "Date": true, + "Location": true, + "Server": true + }, + "HTTPResponseLocation": "https://nexa.polito.it/", + "HTTPResponseTitle": "301 Moved Permanently", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "130.192.16.171" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 36564, + "ControlHTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" + }, + "5": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.16.171" + ], + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.16.171:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "nexa.polito.it", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "130.192.16.171" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 36564, + "ControlHTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" + }, + "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.16.171" + ], + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", "EndpointPort": "443", "EndpointAddress": "130.192.16.171:443", "TCPConnectFailure": "", @@ -258,8 +406,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", "HTTPResponseIsFinal": true, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/cmd/minipipeline/testdata/observations_classic.json b/internal/cmd/minipipeline/testdata/observations_classic.json index 1f271e99be..17213de023 100644 --- a/internal/cmd/minipipeline/testdata/observations_classic.json +++ b/internal/cmd/minipipeline/testdata/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,7 +50,12 @@ ], "KnownTCPEndpoints": { "4": { - "DNSTransactionID": 3, + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 2, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": null, @@ -60,6 +68,134 @@ "IPAddressBogon": false, "EndpointTransactionID": 4, "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.16.171:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://nexa.polito.it/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 301, + "HTTPResponseBodyLength": 231, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Content-Type": true, + "Date": true, + "Location": true, + "Server": true + }, + "HTTPResponseLocation": "https://nexa.polito.it/", + "HTTPResponseTitle": "301 Moved Permanently", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "130.192.16.171" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 36564, + "ControlHTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" + }, + "5": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.16.171" + ], + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.16.171:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "nexa.polito.it", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "nexa.polito.it", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "130.192.16.171" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 36564, + "ControlHTTPResponseHeadersKeys": { + "Cache-Control": true, + "Content-Language": true, + "Content-Type": true, + "Date": true, + "Etag": true, + "Expires": true, + "Last-Modified": true, + "Link": true, + "Server": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Drupal-Cache": true, + "X-Frame-Options": true, + "X-Generator": true + }, + "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" + }, + "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "nexa.polito.it", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.16.171" + ], + "IPAddress": "130.192.16.171", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", "EndpointPort": "443", "EndpointAddress": "130.192.16.171:443", "TCPConnectFailure": "", @@ -89,8 +225,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", "HTTPResponseIsFinal": true, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index 488fcac2cc..7aea141828 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -9,13 +9,15 @@ import ( // NewLinearWebAnalysis constructs a slice containing all the observations. // -// We sort the observations in descending order by: +// We sort the observations as follows: // -// 1. the [WebObservationType]; +// 1. by descending TagDepth; // -// 2. the Failure (with successful results sorting before failing results); +// 2. with TagDepth being equal, by descending [WebObservationType]; // -// 3. the TransactionID. +// 3. with [WebObservationType], by ascending failure string; +// +// 4. with failure string being equal, by descending TransactionID. func NewLinearWebAnalysis(input *WebObservationsContainer) (output []*WebObservation) { // fill in all the observations output = append(output, input.DNSLookupFailures...) @@ -27,12 +29,36 @@ func NewLinearWebAnalysis(input *WebObservationsContainer) (output []*WebObserva // sort in descending order sort.SliceStable(output, func(i, j int) bool { left, right := output[i], output[j] + + // Sort by descending depth. + // + // We use -1 as the default value such that observations with undefined + // TagDepth sort at the end of the generated list. + if left.TagDepth.UnwrapOr(-1) > right.TagDepth.UnwrapOr(-1) { + return true + } else if left.TagDepth.UnwrapOr(-1) < right.TagDepth.UnwrapOr(-1) { + return false + } + + // Sort by descending type if depth is equal. if left.Type > right.Type { return true + } else if left.Type < right.Type { + return false } - if !left.Failure.IsNone() && !right.Failure.IsNone() && left.Failure.Unwrap() == "" && right.Failure.Unwrap() != "" { + + // With equal type, sort by failure ascending so the empty string is first. + // + // We use an nonempty failure value so that observations with undefined + // failures sort at the end of the group within the list. + const defaultFailureValue = "unknown_failure" + if left.Failure.UnwrapOr(defaultFailureValue) > right.Failure.UnwrapOr(defaultFailureValue) { return true + } else if left.Failure.UnwrapOr(defaultFailureValue) < right.Failure.UnwrapOr(defaultFailureValue) { + return false } + + // If failure is equal, sort by descending transaction ID. return left.TransactionID > right.TransactionID }) diff --git a/internal/minipipeline/observation.go b/internal/minipipeline/observation.go index e45f51093e..90c5dfed55 100644 --- a/internal/minipipeline/observation.go +++ b/internal/minipipeline/observation.go @@ -85,6 +85,16 @@ type WebObservation struct { // expands when we ingest more data types. We use these three fields for // linearizing and sorting all the observations in NewLinearAnalysis. + // TagDepth is the value of the depth= tag. We use this tag + // in Web Connectivity LTE to know the current redirect depth. We start + // from zero for the first set of requests and increement this value + // every time we follow a redirect. (Because just one transaction + // is allowed to fetch the body and follow redirects, everything should + // work as intended and it's possible to use this tag to group related + // DNS lookups and endpoints operations, which can then be further break + // down using the transaction ID to isolate transactions.) + TagDepth optional.Value[int64] + // Type is the observation type. Type WebObservationType @@ -95,6 +105,12 @@ type WebObservation struct { // TransactionID is the DNS or endpoint TransactionID. TransactionID int64 + // TagFetchBody is the value of the fetch_body= tag. We use this tag + // in Web Connectivity LTE to indicate that the current transaction will + // attempt to fetch the webpage body. (Potentially, more than one transaction + // tries fetching the body and only one will actually do it.) + TagFetchBody optional.Value[bool] + // The following fields are optional.Some when you process the DNS // lookup events contained inside an OONI measurement: @@ -201,24 +217,6 @@ type WebObservation struct { // HTTPResponseIsFinal is true if the status code is 2xx, 4xx, or 5xx. HTTPResponseIsFinal optional.Value[bool] - // The following fields are extracted from tags (if available): - - // TagDepth is the value of the depth= tag. We use this tag - // in Web Connectivity LTE to know the current redirect depth. We start - // from zero for the first set of requests and increement this value - // every time we follow a redirect. (Because just one transaction - // is allowed to fetch the body and follow redirects, everything should - // work as intended and it's possible to use this tag to group related - // DNS lookups and endpoints operations, which can then be further break - // down using the transaction ID to isolate transactions.) - TagDepth optional.Value[int64] - - // TagFetchBody is the value of the fetch_body= tag. We use this tag - // in Web Connectivity LTE to indicate that the current transaction will - // attempt to fetch the webpage body. (Potentially, more than one transaction - // tries fetching the body and only one will actually do it.) - TagFetchBody optional.Value[bool] - // The following fields are optional.Some when you process the control information // contained inside a measurement and there's information available: diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json index e5548f7301..b8427ac597 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json @@ -33,5 +33,189 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_certificate", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_certificate", + "TLSServerName": "expired.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_invalid_certificate", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json index 1b6a4239fa..0858e6db2c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json @@ -31,5 +31,99 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_certificate", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_certificate", + "TLSServerName": "expired.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_invalid_certificate", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "expired.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "expired.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json index 5673325432..bfd189d023 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_certificate", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json index 95bdfacba1..231d074383 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_certificate", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json index 7d816b0890..6b08266692 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json @@ -35,5 +35,279 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "untrusted-root.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json index 1b6a4239fa..e614dd6c94 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json @@ -31,5 +31,99 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "untrusted-root.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "untrusted-root.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "untrusted-root.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json index eb5743877a..fd35d5fbf2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -85,6 +91,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -112,8 +123,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -128,6 +137,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -155,8 +169,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -171,6 +183,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -198,8 +215,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -216,6 +231,11 @@ ], "KnownTCPEndpoints": { "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -243,8 +263,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json index f355b029e4..21e4735926 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json index 8e461d4b0e..07b194bb78 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json @@ -36,5 +36,248 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json index 004ce85c1e..33bcc569d6 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json @@ -31,5 +31,104 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_unknown_authority", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_unknown_authority", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json index 04af571446..454139af4b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -180,6 +192,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -210,8 +227,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json index 79460d68cb..b817aa1ea8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_unknown_authority", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json index e5548f7301..689156d884 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json @@ -33,5 +33,189 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_hostname", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_hostname", + "TLSServerName": "wrong.host.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_invalid_hostname", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json index 1b6a4239fa..69bc54221d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json @@ -31,5 +31,99 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_hostname", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "104.154.89.105:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "ssl_invalid_hostname", + "TLSServerName": "wrong.host.badssl.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "ssl_invalid_hostname", + "ControlHTTPFailure": "unknown_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "wrong.host.badssl.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "104.154.89.105" + ], + "IPAddress": "104.154.89.105", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "wrong.host.badssl.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "104.154.89.105" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json index d8556378cb..b73d50c04f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_hostname", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json index 1f2cb7ddbe..82140b35c8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "ssl_invalid_hostname", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json index 666644b6e2..951d70ad48 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json @@ -29,5 +29,186 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": "https://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json index 666644b6e2..e81958fab7 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json @@ -29,5 +29,100 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": "https://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json index baac735c39..e911149233 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -42,6 +45,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -69,8 +77,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -126,6 +135,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -158,8 +172,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json index b158d8a38f..2fad8ff6a9 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -45,6 +48,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -77,8 +85,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json index 39e3c4ec65..2a8eb82241 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json @@ -29,5 +29,230 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json index 39e3c4ec65..5670101c17 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json @@ -29,5 +29,144 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json index 05612f013f..bf843ee0a3 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -42,6 +45,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -69,8 +77,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -126,6 +135,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -158,8 +172,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -172,6 +184,11 @@ "ControlHTTPResponseTitle": null }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -199,8 +216,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json index f65f42f640..59586d03b2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -45,6 +48,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -77,8 +85,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -91,6 +97,11 @@ "ControlHTTPResponseTitle": null }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -118,8 +129,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json index b29cb58957..fc7f9aa90c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json @@ -36,5 +36,197 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "android_dns_cache_no_data", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "android_dns_cache_no_data", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json index 2f68abaeb4..4100206c56 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json @@ -29,5 +29,51 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "android_dns_cache_no_data", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "android_dns_cache_no_data", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json index 3a8cd67722..a3e5d76d71 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "android_dns_cache_no_data", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "android_dns_cache_no_data", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -85,6 +91,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -112,8 +123,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -130,6 +139,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -162,8 +176,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json index e553ea5665..3f2955bdce 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "android_dns_cache_no_data", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "android_dns_cache_no_data", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json index 6acbdbb813..b4d7aa8467 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json @@ -38,5 +38,250 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "10.10.34.35" + ], + "IPAddress": "10.10.34.35", + "IPAddressASN": null, + "IPAddressBogon": true, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "10.10.34.35:443", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "10.10.34.35" + ], + "IPAddress": "10.10.34.35", + "IPAddressASN": null, + "IPAddressBogon": true, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json index b0e437e950..d41151a7d8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json @@ -31,5 +31,104 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "10.10.34.35" + ], + "IPAddress": "10.10.34.35", + "IPAddressASN": null, + "IPAddressBogon": true, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "10.10.34.35:443", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "10.10.34.35" + ], + "IPAddress": "10.10.34.35", + "IPAddressASN": null, + "IPAddressBogon": true, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json index 3f687b3ca3..363755a843 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -164,8 +178,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -185,6 +197,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -212,8 +229,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json index 6683e1b153..f3019e1a97 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "4": { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json index c13f4069c1..71cd54b05c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json @@ -36,5 +36,197 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json index c7c8e85137..9ff4f9febe 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json @@ -29,5 +29,51 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json index 43ccbfad9e..dedae2a914 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -85,6 +91,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -112,8 +123,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -130,6 +139,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -162,8 +176,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json index 3b10fb2f2b..884871cf1a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json index 0709b9e1f1..c47a5a77af 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json @@ -37,5 +37,248 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json index 3ebece0faa..cfceb4ac62 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json @@ -34,5 +34,109 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json index 69fe55f9bb..576bcf302e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -164,8 +178,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -185,6 +197,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -210,8 +227,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json index 83cf0b6c6b..db06f18799 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,8 +87,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json index 3e326ceb99..e2fa3b20e1 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json @@ -36,5 +36,347 @@ "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": false, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 1, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": true, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json index 84cf4d403b..b2b87fcded 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json @@ -33,5 +33,159 @@ "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json index 6e1eee7974..f14a76c7f6 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -163,8 +177,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -184,6 +196,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -211,8 +228,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -232,6 +247,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "5": { + "TagDepth": 0, + "Type": 1, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -257,8 +277,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -278,6 +296,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": false, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -303,8 +326,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json index ce6acbb7c4..ae9c3c1c4d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -78,8 +86,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -99,6 +105,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -126,8 +137,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json index dc9955aca9..327b35a82b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json @@ -35,5 +35,245 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "connection_reset", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json index d724331e61..62620c5282 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json @@ -33,5 +33,155 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "connection_reset", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json index e8251a5ca0..62faf73a2f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -180,6 +192,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -207,8 +224,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json index d971599eb9..f93ee12123 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -95,6 +101,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -122,8 +133,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json index 1cf0d95020..d6f9cab4c2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json @@ -37,5 +37,245 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {} + "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json index d777dfada8..88e24f9876 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json @@ -36,5 +36,155 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {} + "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json index 7ed6e5b777..2e34363d60 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -180,6 +192,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -207,8 +224,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json index 60094bb742..0d90633778 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -95,6 +101,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -122,8 +133,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json index 875c9ee456..9482897809 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json @@ -38,5 +38,343 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {} + "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": false, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 1, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": true, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json index 1a620e123c..f0375051f9 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json @@ -35,5 +35,155 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {} + "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "130.192.182.17:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 188, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": {}, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Access Denied", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json index fad3b1cd3a..6408cb2bbf 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -180,6 +192,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -207,8 +224,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -228,6 +243,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "5": { + "TagDepth": 0, + "Type": 1, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -253,8 +273,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -274,6 +292,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": false, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -299,8 +322,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json index a294ff2e19..cff1cf7c46 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -95,6 +101,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -122,8 +133,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json index a643dfc3b6..2a7e03ffbf 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json @@ -40,5 +40,426 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json index 5e51334e8b..8f7fd07ec6 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json @@ -38,5 +38,250 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json index 2eec0a429c..f18349bbf4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +135,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -153,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -169,6 +181,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -196,8 +213,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -253,6 +271,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -284,8 +307,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -305,6 +326,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -332,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -351,6 +375,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -378,8 +407,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json index 3470d4cfca..aa63c4735d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -186,6 +198,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,8 +230,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json index 550f85e6c9..03c49661cb 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json @@ -37,5 +37,377 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json index 10823f59f0..3a86a4bd64 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json @@ -36,5 +36,201 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json index 96dc2ad323..174064ff92 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +135,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -153,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -169,6 +181,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -196,8 +213,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -253,6 +271,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -284,8 +307,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -305,6 +326,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -332,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json index 62393c0976..49a5952399 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json index 4cd9d6e7e4..ad905b1f3d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json @@ -39,5 +39,426 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "connection_reset", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json index 8b99fb0b86..09dc3697a3 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json @@ -38,5 +38,250 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "connection_reset", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json index 198acee0ae..fc51fb2e11 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +135,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -153,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -169,6 +181,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -196,8 +213,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -253,6 +271,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -284,8 +307,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -305,6 +326,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -332,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -351,6 +375,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -378,8 +407,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json index 56487d3809..4b116042b6 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -186,6 +198,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,8 +230,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json index 72e20888ca..6a26239552 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json @@ -37,5 +37,377 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json index 96728b6fe6..62e720104f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json @@ -35,5 +35,201 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json index 85a038c63b..5a4cd1c070 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +135,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -153,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -169,6 +181,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -196,8 +213,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -253,6 +271,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -284,8 +307,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -305,6 +326,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -332,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json index 2352158021..dd503dd9cf 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json index 4cd9d6e7e4..41c9b1857a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json @@ -39,5 +39,426 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 3, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "eof_error", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json index c96863bccf..7c3f75185c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json @@ -37,5 +37,250 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 3, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "eof_error", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json index ace6a89799..157cb0370a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +135,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -153,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -169,6 +181,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -196,8 +213,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -253,6 +271,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -284,8 +307,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -305,6 +326,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -332,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -351,6 +375,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -378,8 +407,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json index 77913f61c8..1c72ead02d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -186,6 +198,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,8 +230,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json index 72e20888ca..3c2619b176 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json @@ -37,5 +37,377 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json index 111da85674..a21c0db4c3 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json @@ -35,5 +35,201 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "eof_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json index d54c9cc976..a28c3f83a4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +135,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -153,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -169,6 +181,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -196,8 +213,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -253,6 +271,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -284,8 +307,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -305,6 +326,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -332,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json index ccfc81ba91..bfdaf8fb3f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 2, + "Failure": "eof_error", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json index e5548f7301..5a4e56a278 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json @@ -33,5 +33,324 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json index afc64a4fc0..a46cb1667e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json @@ -32,5 +32,150 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json index 97e8ec1c94..4a4343b388 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -81,6 +87,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -106,8 +117,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -120,6 +129,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -145,8 +159,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -161,6 +173,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -188,8 +205,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -204,6 +219,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -231,8 +251,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -249,6 +267,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -280,8 +303,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json index 2acc0a9e21..37790b9a13 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -42,6 +45,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -69,8 +77,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -118,8 +129,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json index 4cd9d6e7e4..37269129e4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json @@ -39,5 +39,426 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 3, + "Failure": "generic_timeout_error", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "generic_timeout_error", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 4, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json index 98ae3617cc..cb1daf3333 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json @@ -37,5 +37,250 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 3, + "Failure": "generic_timeout_error", + "TransactionID": 6, + "TagFetchBody": true, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "generic_timeout_error", + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": false, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/32447", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "http://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json index 4972baef8d..f95af7ec5e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -83,6 +89,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -110,8 +121,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +135,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -153,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -169,6 +181,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -196,8 +213,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -253,6 +271,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -284,8 +307,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -305,6 +326,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "generic_timeout_error", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -332,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -351,6 +375,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -378,8 +407,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json index b535259486..17a9c4214c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 1, + "Type": 3, + "Failure": "generic_timeout_error", + "TransactionID": 6, + "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -186,6 +198,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,8 +230,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json index ca480158d8..50d8d57c47 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json @@ -39,5 +39,467 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": true, + "DNSTransactionID": 6, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 6, + "TagFetchBody": null, + "DNSTransactionID": 6, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 5, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json index 58e20057a0..5de31a5d89 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json @@ -35,5 +35,201 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": true, + "DNSTransactionID": 6, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "generic_timeout_error", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 6, + "TagFetchBody": null, + "DNSTransactionID": 6, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": null, + "ControlDNSLookupFailure": null, + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "67.199.248.11:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "bit.ly", + "HTTPRequestURL": "https://bit.ly/21645", + "HTTPFailure": "", + "HTTPResponseStatusCode": 308, + "HTTPResponseBodyLength": 0, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Content-Length": true, + "Date": true, + "Location": true + }, + "HTTPResponseLocation": "https://www.example.com/", + "HTTPResponseTitle": "", + "HTTPResponseIsFinal": false, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "bit.ly", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "67.199.248.11" + ], + "IPAddress": "67.199.248.11", + "IPAddressASN": 396982, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "bit.ly", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "67.199.248.11" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json index b2efd97836..8c37ec82f6 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -42,6 +45,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -67,8 +75,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -83,6 +89,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -108,8 +119,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -124,6 +133,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -151,8 +165,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -167,6 +179,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -194,8 +211,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -210,6 +225,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -237,8 +257,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -253,6 +271,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 6, + "TagFetchBody": null, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -280,8 +303,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -294,6 +315,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -321,8 +347,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -337,6 +361,11 @@ ], "KnownTCPEndpoints": { "4": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -368,8 +397,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -389,6 +416,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": true, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -416,8 +448,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json index 9ac8f44278..249ce08bc7 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,6 +48,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 1, + "Type": 0, + "Failure": null, + "TransactionID": 6, + "TagFetchBody": null, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -72,8 +80,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -88,6 +94,11 @@ ], "KnownTCPEndpoints": { "4": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -119,8 +130,6 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -140,6 +149,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { + "TagDepth": 1, + "Type": 2, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": true, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -167,8 +181,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 1, - "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json index d63d09e3ea..c803499768 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json @@ -36,5 +36,250 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json index f0625a400a..e9a3e2bcfb 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json @@ -35,5 +35,160 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json index 5bdef978fa..beeda76365 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -164,8 +178,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -185,6 +197,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -212,8 +229,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json index abfdc65502..14cea28e1a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,8 +87,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -100,6 +106,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -127,8 +138,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json index 4496414f98..42af099ae9 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json @@ -36,5 +36,199 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json index 8fcbe6e0e8..39b1897e1d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json @@ -35,5 +35,109 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.com", + "HTTPRequestURL": "https://www.example.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json index c5cfba694e..d832cd67be 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -164,8 +178,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json index 134ad2a2f5..45644f7c97 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,8 +87,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json index eae46dca1c..829268b281 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json @@ -37,5 +37,194 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json index 70c88127fa..4834650903 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json @@ -35,5 +35,104 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json index 30e810ce69..9189280bb8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json index 34a160b44f..e0ea430de1 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json index 19f9b9903a..18deb73629 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json @@ -40,5 +40,348 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - } + }, + "Linear": [ + { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": true, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "93.184.216.34:80", + "TCPConnectFailure": "", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": "http://www.example.org/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 1533, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "Default Web Page", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": false, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.example.org", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "83.224.65.41" + ], + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "83.224.65.41:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "connection_refused_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "83.224.65.41" + ], + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "83.224.65.41:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "83.224.65.41" + ], + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "83.224.65.41" + ], + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json index 46471903c7..e06631a172 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json @@ -35,5 +35,155 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 4, + "TagFetchBody": false, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "83.224.65.41" + ], + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "83.224.65.41:443", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "connection_refused_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "83.224.65.41" + ], + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "83.224.65.41:80", + "TCPConnectFailure": "connection_refused", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.org", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "83.224.65.41" + ], + "IPAddress": "83.224.65.41", + "IPAddressASN": 30722, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.org", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json index 12d700428b..e1c57db04a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -180,6 +192,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -207,8 +224,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -228,6 +243,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "5": { + "TagDepth": 0, + "Type": 3, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -258,8 +278,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -279,6 +297,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { + "TagDepth": 0, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": false, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -304,8 +327,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json index 8b9fdf03df..5ed79f2a0d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -95,6 +101,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 1, + "Failure": "connection_refused", + "TransactionID": 4, + "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -122,8 +133,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": false, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json index 3d61ae2ee2..fac91f9fa5 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json @@ -37,5 +37,194 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json index aa697ed462..0dc1856a4d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json @@ -35,5 +35,104 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "93.184.216.34" + ], + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json index b2fb2037cc..7d522afbe3 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json index 6f45bf3b84..ea64df80d5 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json index c4688925ca..6eb34f46ea 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json @@ -39,5 +39,243 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 4, + "TagFetchBody": true, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "93.184.216.34", + "IPAddressASN": 15133, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "93.184.216.34:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "dns_no_answer", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json index ed5aac554e..e9259e05cc 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json @@ -35,5 +35,104 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, + "DNSTransactionID": 1, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": 3, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "130.192.182.17:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "connection_reset", + "TLSServerName": "www.example.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 1533, + "ControlHTTPResponseHeadersKeys": { + "Alt-Svc": true, + "Content-Length": true, + "Content-Type": true, + "Date": true + }, + "ControlHTTPResponseTitle": "Default Web Page" + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "130.192.182.17" + ], + "IPAddress": "130.192.182.17", + "IPAddressASN": 137, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "93.184.216.34" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json index 792e640e6a..6043a34d91 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_no_answer", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -44,6 +47,11 @@ ], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -71,8 +79,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -87,6 +93,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -114,8 +125,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,6 +141,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -159,8 +173,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -180,6 +192,11 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 4, + "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -205,8 +222,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json index c3b6b5e445..eb4b1b91d9 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": 0, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -29,8 +34,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,6 +50,11 @@ ], "KnownTCPEndpoints": { "3": { + "TagDepth": 0, + "Type": 2, + "Failure": "connection_reset", + "TransactionID": 3, + "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -74,8 +82,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json index 1cf6020403..12555fba19 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json @@ -30,5 +30,133 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json index e1c62c21ff..2e1d95798b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json @@ -29,5 +29,49 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.example.xyz", + "DNSLookupFailure": "dns_nxdomain_error", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": null, + "IPAddress": null, + "IPAddressASN": null, + "IPAddressBogon": null, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.example.xyz", + "ControlDNSLookupFailure": "dns_name_error", + "ControlDNSResolvedAddrs": null, + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json index 6bdf151ac2..4b5f63e86b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, @@ -40,6 +43,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -65,8 +73,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, @@ -79,6 +85,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -104,8 +115,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json index d7856cc886..e3aa85dd8e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json @@ -1,6 +1,11 @@ { "DNSLookupFailures": [ { + "TagDepth": 0, + "Type": 0, + "Failure": "dns_nxdomain_error", + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -26,8 +31,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": 0, - "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json index 83db5f8d03..63fe38cd03 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json @@ -34,5 +34,1031 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 11, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "8.8.4.4:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 10, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 10, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "8.8.8.8:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 9, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2001:4860:4860::8844]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2001:4860:4860::8888]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "timed_out", + "TransactionID": 6, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "8.8.8.8:80", + "TCPConnectFailure": "timed_out", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "8.8.4.4:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "[2001:4860:4860::8844]:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "[2001:4860:4860::8888]:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json index 83db5f8d03..5f89a69554 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json @@ -34,5 +34,631 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null + "HTTPFinalResponseDiffUncommonHeadersIntersection": null, + "Linear": [ + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 11, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "8.8.4.4:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 10, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 10, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "8.8.8.8:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 9, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2001:4860:4860::8844]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2001:4860:4860::8888]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "dns.google", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "timed_out", + "TransactionID": 6, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "8.8.8.8:80", + "TCPConnectFailure": "timed_out", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "8.8.4.4:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "[2001:4860:4860::8844]:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "80", + "EndpointAddress": "[2001:4860:4860::8888]:80", + "TCPConnectFailure": "generic_timeout_error", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": "generic_timeout_error", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "generic_timeout_error", + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8844", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "2001:4860:4860::8888", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.4.4", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "dns.google", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "IPAddress": "8.8.8.8", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "dns.google", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "2001:4860:4860::8844", + "2001:4860:4860::8888", + "8.8.4.4", + "8.8.8.8" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json index f93f556bbd..67e7172206 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -32,8 +37,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -51,6 +54,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -81,8 +89,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -100,6 +106,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -130,8 +141,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,6 +158,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -179,8 +193,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -198,6 +210,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -226,8 +243,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -245,6 +260,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -273,8 +293,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -292,6 +310,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -320,8 +343,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -339,6 +360,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -367,8 +393,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -386,6 +410,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -414,8 +443,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -433,6 +460,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -461,8 +493,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -480,6 +510,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -508,8 +543,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -527,6 +560,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -555,8 +593,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -576,6 +612,11 @@ ], "KnownTCPEndpoints": { "10": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 10, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -606,8 +647,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -625,6 +664,11 @@ "ControlHTTPResponseTitle": null }, "11": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -655,8 +699,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -674,6 +716,11 @@ "ControlHTTPResponseTitle": null }, "4": { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -704,8 +751,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -723,6 +768,11 @@ "ControlHTTPResponseTitle": null }, "5": { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -753,8 +803,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -772,6 +820,11 @@ "ControlHTTPResponseTitle": null }, "6": { + "TagDepth": null, + "Type": 1, + "Failure": "timed_out", + "TransactionID": 6, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -802,8 +855,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -821,6 +872,11 @@ "ControlHTTPResponseTitle": null }, "7": { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -851,8 +907,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -870,6 +924,11 @@ "ControlHTTPResponseTitle": null }, "8": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -900,8 +959,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -919,6 +976,11 @@ "ControlHTTPResponseTitle": null }, "9": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -949,8 +1011,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json index 7d572f5cbb..1c81e17075 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -32,8 +37,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -51,6 +54,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -81,8 +89,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -100,6 +106,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -130,8 +141,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,6 +158,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -179,8 +193,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -200,6 +212,11 @@ ], "KnownTCPEndpoints": { "10": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 10, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -230,8 +247,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -249,6 +264,11 @@ "ControlHTTPResponseTitle": null }, "11": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -279,8 +299,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -298,6 +316,11 @@ "ControlHTTPResponseTitle": null }, "4": { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -328,8 +351,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -347,6 +368,11 @@ "ControlHTTPResponseTitle": null }, "5": { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -377,8 +403,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -396,6 +420,11 @@ "ControlHTTPResponseTitle": null }, "6": { + "TagDepth": null, + "Type": 1, + "Failure": "timed_out", + "TransactionID": 6, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -426,8 +455,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -445,6 +472,11 @@ "ControlHTTPResponseTitle": null }, "7": { + "TagDepth": null, + "Type": 1, + "Failure": "generic_timeout_error", + "TransactionID": 7, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -475,8 +507,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -494,6 +524,11 @@ "ControlHTTPResponseTitle": null }, "8": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -524,8 +559,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -543,6 +576,11 @@ "ControlHTTPResponseTitle": null }, "9": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -573,8 +611,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json index 7724e8dfdf..334e6f8ee9 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json @@ -36,5 +36,4750 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - } + }, + "Linear": [ + { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": "https://www.youtube.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 524264, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "YouTube", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 32, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "216.58.212.206", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 32, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.212.206:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 31, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "172.217.169.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 31, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.217.169.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 30, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "216.58.201.110", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 30, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.201.110:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 29, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.250.179.238", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 29, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.179.238:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 28, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.250.200.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 28, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.200.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 27, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.250.178.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 27, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.178.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 26, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "216.58.204.78", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 26, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.204.78:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 25, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.250.200.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 25, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.200.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 23, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "172.217.16.238", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 23, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.217.16.238:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 22, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.250.187.238", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 22, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.187.238:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 21, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.250.187.206", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 21, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.187.206:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 20, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.250.180.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 20, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 19, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "172.217.169.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 19, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.217.169.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 14, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.204.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 13, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 9, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.174:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.205.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 34, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2a00:1450:4009:816::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 34, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:816::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 33, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2a00:1450:4009:826::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 33, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:826::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 24, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2a00:1450:4009:80b::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 24, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:80b::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 18, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2a00:1450:4009:827::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 18, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4009:827::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 17, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 17, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:403::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 16, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 16, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:416::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 15, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 15, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:414::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 12, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 12, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:411::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 11, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:809::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 11, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:809::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 10, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 10, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:402::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 7, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:410::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:410::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:410::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:809::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:410::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json index 7724e8dfdf..1489df952c 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json @@ -36,5 +36,1628 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - } + }, + "Linear": [ + { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": "https://www.youtube.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 524264, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "YouTube", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 14, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.204.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 13, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 9, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.174:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.205.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 16, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 16, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:416::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 15, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 15, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:414::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 12, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 12, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:411::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 10, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:410::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 10, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:402::200e]:443", + "TCPConnectFailure": "host_unreachable", + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 850205, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:411::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:411::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.250.178.14", + "142.250.179.238", + "142.250.180.14", + "142.250.187.206", + "142.250.187.238", + "142.250.200.14", + "142.250.200.46", + "172.217.16.238", + "172.217.169.14", + "172.217.169.46", + "216.58.201.110", + "216.58.204.78", + "216.58.212.206", + "2a00:1450:4009:80b::200e", + "2a00:1450:4009:816::200e", + "2a00:1450:4009:826::200e", + "2a00:1450:4009:827::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json index 28fdb4bb92..be9681fa0a 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -32,8 +37,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -64,6 +67,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -94,8 +102,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -126,6 +132,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -156,8 +167,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -188,6 +197,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -218,8 +232,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -250,6 +262,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -283,8 +300,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -315,6 +330,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -348,8 +368,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -380,6 +398,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -413,8 +436,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -445,6 +466,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -478,8 +504,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -510,6 +534,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -543,8 +572,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -575,6 +602,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -608,8 +640,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -640,6 +670,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -673,8 +708,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -705,6 +738,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -741,8 +779,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -773,6 +809,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -809,8 +850,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -841,6 +880,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -877,8 +921,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -909,6 +951,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -945,8 +992,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -977,6 +1022,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1013,8 +1063,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1045,6 +1093,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1081,8 +1134,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1113,6 +1164,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1149,8 +1205,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1181,6 +1235,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1217,8 +1276,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1249,6 +1306,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1285,8 +1347,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1317,6 +1377,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1353,8 +1418,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1385,6 +1448,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1417,8 +1485,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1449,6 +1515,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1481,8 +1552,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1513,6 +1582,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1545,8 +1619,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1577,6 +1649,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1609,8 +1686,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1641,6 +1716,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1673,8 +1753,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1705,6 +1783,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1737,8 +1820,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1769,6 +1850,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1799,8 +1885,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1831,6 +1915,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1861,8 +1950,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1893,6 +1980,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1923,8 +2015,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1955,6 +2045,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1985,8 +2080,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2019,6 +2112,11 @@ ], "KnownTCPEndpoints": { "10": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 10, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2049,8 +2147,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2102,6 +2198,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "11": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 11, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2132,8 +2233,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2185,6 +2284,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 12, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2221,8 +2325,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2274,6 +2376,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2307,8 +2414,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2360,6 +2465,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2393,8 +2503,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2446,6 +2554,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 15, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2482,8 +2595,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2535,6 +2646,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "16": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 16, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2565,8 +2681,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2618,6 +2732,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "17": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 17, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2648,8 +2767,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2701,6 +2818,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "18": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 18, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2726,8 +2848,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2779,6 +2899,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "19": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 19, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2804,8 +2929,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2857,6 +2980,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "20": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 20, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2882,8 +3010,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2935,6 +3061,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "21": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 21, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2960,8 +3091,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3013,6 +3142,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "22": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 22, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3038,8 +3172,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3091,6 +3223,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "23": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 23, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3116,8 +3253,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3169,6 +3304,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "24": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 24, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3194,8 +3334,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3247,6 +3385,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "25": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 25, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3272,8 +3415,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3325,6 +3466,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "26": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 26, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3350,8 +3496,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3403,6 +3547,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "27": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 27, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3428,8 +3577,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3481,6 +3628,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "28": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 28, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3506,8 +3658,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3559,6 +3709,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "29": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 29, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3584,8 +3739,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3637,6 +3790,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "30": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 30, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3662,8 +3820,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3715,6 +3871,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "31": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 31, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3740,8 +3901,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3793,6 +3952,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "32": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 32, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3818,8 +3982,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3871,6 +4033,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "33": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 33, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3896,8 +4063,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3949,6 +4114,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "34": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 34, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3974,8 +4144,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4027,6 +4195,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4060,8 +4233,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4113,6 +4284,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4146,8 +4322,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4199,6 +4373,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "6": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4232,8 +4411,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4285,6 +4462,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "7": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 7, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4315,8 +4497,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4368,6 +4548,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4422,8 +4607,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4475,6 +4658,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "9": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4508,8 +4696,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json index 283823ce61..a6da5de6dd 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -38,8 +43,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -70,6 +73,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -106,8 +114,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -138,6 +144,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -174,8 +185,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -206,6 +215,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -242,8 +256,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -274,6 +286,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -310,8 +327,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -342,6 +357,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -378,8 +398,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -410,6 +428,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -446,8 +469,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -478,6 +499,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -514,8 +540,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -546,6 +570,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -582,8 +611,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -614,6 +641,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -650,8 +682,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -684,6 +714,11 @@ ], "KnownTCPEndpoints": { "10": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 10, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -714,8 +749,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -767,6 +800,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 12, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -803,8 +841,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -856,6 +892,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -889,8 +930,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -942,6 +981,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -975,8 +1019,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1028,6 +1070,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 15, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1064,8 +1111,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1117,6 +1162,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "16": { + "TagDepth": null, + "Type": 1, + "Failure": "host_unreachable", + "TransactionID": 16, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1147,8 +1197,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1200,6 +1248,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1233,8 +1286,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1286,6 +1337,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1319,8 +1375,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1372,6 +1426,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1426,8 +1485,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1479,6 +1536,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "9": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1512,8 +1574,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json index c2a3e61512..9ad9521aa9 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json @@ -37,5 +37,3517 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - } + }, + "Linear": [ + { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": "https://www.youtube.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 524298, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "YouTube", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 24, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.251.41.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 24, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.41.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 23, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.251.33.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 23, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.33.174:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 22, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.251.41.78", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 22, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.41.78:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 21, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2607:f8b0:400b:80c::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 21, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2607:f8b0:400b:80c::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 20, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2607:f8b0:400b:807::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 20, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2607:f8b0:400b:807::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 19, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "172.217.1.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 19, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "172.217.1.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 18, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2607:f8b0:400b:80f::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 18, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2607:f8b0:400b:80f::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 17, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "2607:f8b0:400b:803::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 17, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2607:f8b0:400b:803::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 16, + "TagFetchBody": null, + "DNSTransactionID": null, + "DNSDomain": null, + "DNSLookupFailure": null, + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": null, + "IPAddress": "142.251.32.78", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 16, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.32.78:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 15, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 15, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.205.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 14, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 13, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:416::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 12, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 12, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:403::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 11, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:402::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 10, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:809::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 10, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:809::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 9, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 7, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.174:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.204.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:414::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e", + "2a00:1450:4002:809::200e" + ], + "IPAddress": "2a00:1450:4002:809::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, + "DNSTransactionID": 2, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "doh", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "216.58.209.46" + ], + "IPAddress": "216.58.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "AAAA", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "A", + "DNSEngine": "udp", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json index 696c5516e4..3eadbc088f 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json @@ -36,5 +36,1460 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - } + }, + "Linear": [ + { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 8, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.14:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": "https://www.youtube.com/", + "HTTPFailure": "", + "HTTPResponseStatusCode": 200, + "HTTPResponseBodyLength": 524298, + "HTTPResponseBodyIsTruncated": false, + "HTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "HTTPResponseLocation": null, + "HTTPResponseTitle": "YouTube", + "HTTPResponseIsFinal": true, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 15, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 15, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.205.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 14, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.251.209.46:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 13, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:416::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 12, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 12, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:403::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 11, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:402::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 7, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 7, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.174:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 6, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "216.58.204.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 5, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "142.250.180.142:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, + "DNSTransactionID": 1, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": null, + "DNSEngine": null, + "DNSResolvedAddrs": [ + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": 4, + "EndpointProto": "tcp", + "EndpointPort": "443", + "EndpointAddress": "[2a00:1450:4002:414::200e]:443", + "TCPConnectFailure": "", + "TLSHandshakeFailure": "", + "TLSServerName": "www.youtube.com", + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": "", + "ControlTLSHandshakeFailure": "", + "ControlHTTPFailure": "", + "ControlHTTPResponseStatusCode": 200, + "ControlHTTPResponseBodyLength": 828614, + "ControlHTTPResponseHeadersKeys": { + "Accept-Ch": true, + "Accept-Ranges": true, + "Alt-Svc": true, + "Cache-Control": true, + "Content-Security-Policy-Report-Only": true, + "Content-Type": true, + "Cross-Origin-Opener-Policy": true, + "Date": true, + "Expires": true, + "Origin-Trial": true, + "P3p": true, + "Permissions-Policy": true, + "Pragma": true, + "Report-To": true, + "Server": true, + "Set-Cookie": true, + "Strict-Transport-Security": true, + "Vary": true, + "X-Content-Type-Options": true, + "X-Frame-Options": true, + "X-Xss-Protection": true + }, + "ControlHTTPResponseTitle": "YouTube" + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.250.180.174", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.14", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "142.251.209.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.204.142", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "216.58.205.46", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:402::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:403::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:414::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + }, + { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, + "DNSTransactionID": 3, + "DNSDomain": "www.youtube.com", + "DNSLookupFailure": "", + "DNSQueryType": "ANY", + "DNSEngine": "getaddrinfo", + "DNSResolvedAddrs": [ + "142.250.180.142", + "142.250.180.174", + "142.251.209.14", + "142.251.209.46", + "216.58.204.142", + "216.58.205.46", + "2a00:1450:4002:402::200e", + "2a00:1450:4002:403::200e", + "2a00:1450:4002:414::200e", + "2a00:1450:4002:416::200e" + ], + "IPAddress": "2a00:1450:4002:416::200e", + "IPAddressASN": 15169, + "IPAddressBogon": false, + "EndpointTransactionID": null, + "EndpointProto": null, + "EndpointPort": null, + "EndpointAddress": null, + "TCPConnectFailure": null, + "TLSHandshakeFailure": null, + "TLSServerName": null, + "HTTPRequestURL": null, + "HTTPFailure": null, + "HTTPResponseStatusCode": null, + "HTTPResponseBodyLength": null, + "HTTPResponseBodyIsTruncated": null, + "HTTPResponseHeadersKeys": null, + "HTTPResponseLocation": null, + "HTTPResponseTitle": null, + "HTTPResponseIsFinal": null, + "ControlDNSDomain": "www.youtube.com", + "ControlDNSLookupFailure": "", + "ControlDNSResolvedAddrs": [ + "142.251.32.78", + "142.251.33.174", + "142.251.41.46", + "142.251.41.78", + "172.217.1.14", + "2607:f8b0:400b:803::200e", + "2607:f8b0:400b:807::200e", + "2607:f8b0:400b:80c::200e", + "2607:f8b0:400b:80f::200e" + ], + "ControlTCPConnectFailure": null, + "ControlTLSHandshakeFailure": null, + "ControlHTTPFailure": null, + "ControlHTTPResponseStatusCode": null, + "ControlHTTPResponseBodyLength": null, + "ControlHTTPResponseHeadersKeys": null, + "ControlHTTPResponseTitle": null + } + ] } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json index 4851892c47..52a07b5415 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -32,8 +37,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -56,6 +59,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -86,8 +94,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -110,6 +116,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -140,8 +151,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -164,6 +173,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -194,8 +208,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -218,6 +230,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -250,8 +267,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -274,6 +289,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -306,8 +326,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -330,6 +348,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -362,8 +385,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -386,6 +407,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -418,8 +444,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -442,6 +466,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -474,8 +503,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -498,6 +525,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 1, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -530,8 +562,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -554,6 +584,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -590,8 +625,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -614,6 +647,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -650,8 +688,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -674,6 +710,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -710,8 +751,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -734,6 +773,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -770,8 +814,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -794,6 +836,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -830,8 +877,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -854,6 +899,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -890,8 +940,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -914,6 +962,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -950,8 +1003,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -974,6 +1025,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1010,8 +1066,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1034,6 +1088,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1070,8 +1129,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1094,6 +1151,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1130,8 +1192,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1154,6 +1214,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1184,8 +1249,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1208,6 +1271,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1238,8 +1306,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1262,6 +1328,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1292,8 +1363,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1316,6 +1385,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1346,8 +1420,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1370,6 +1442,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1403,8 +1480,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1427,6 +1502,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1460,8 +1540,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1484,6 +1562,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1517,8 +1600,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1541,6 +1622,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1574,8 +1660,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1598,6 +1682,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1631,8 +1720,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1655,6 +1742,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1688,8 +1780,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1712,6 +1802,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 2, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1745,8 +1840,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1771,6 +1864,11 @@ ], "KnownTCPEndpoints": { "10": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 10, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1801,8 +1899,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1847,6 +1943,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "11": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1877,8 +1978,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1923,6 +2022,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 12, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1953,8 +2057,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1999,6 +2101,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2029,8 +2136,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2075,6 +2180,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2107,8 +2217,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2153,6 +2261,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 15, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2185,8 +2298,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2231,6 +2342,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "16": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 16, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2256,8 +2372,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2302,6 +2416,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "17": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 17, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2327,8 +2446,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2373,6 +2490,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "18": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 18, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2398,8 +2520,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2444,6 +2564,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "19": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 19, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2469,8 +2594,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2515,6 +2638,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "20": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 20, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2540,8 +2668,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2586,6 +2712,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "21": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 21, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2611,8 +2742,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2657,6 +2786,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "22": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 22, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2682,8 +2816,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2728,6 +2860,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "23": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 23, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2753,8 +2890,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2799,6 +2934,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "24": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 24, + "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2824,8 +2964,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2870,6 +3008,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2900,8 +3043,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2946,6 +3087,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2978,8 +3124,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3024,6 +3168,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "6": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3056,8 +3205,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3102,6 +3249,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "7": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 7, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3134,8 +3286,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3180,6 +3330,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3233,8 +3388,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3279,6 +3432,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "9": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 9, + "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3312,8 +3470,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json index 30dcf9c7bf..ddd4167bcc 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json @@ -2,6 +2,11 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -38,8 +43,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -62,6 +65,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -98,8 +106,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -122,6 +128,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -158,8 +169,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -182,6 +191,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -218,8 +232,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -242,6 +254,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -278,8 +295,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -302,6 +317,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -338,8 +358,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -362,6 +380,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -398,8 +421,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -422,6 +443,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -458,8 +484,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -482,6 +506,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -518,8 +547,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -542,6 +569,11 @@ "ControlHTTPResponseTitle": null }, { + "TagDepth": null, + "Type": 0, + "Failure": null, + "TransactionID": 3, + "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -578,8 +610,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -604,6 +634,11 @@ ], "KnownTCPEndpoints": { "11": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 11, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -634,8 +669,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -680,6 +713,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 12, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -710,8 +748,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -756,6 +792,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 13, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -786,8 +827,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -832,6 +871,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 14, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -864,8 +908,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -910,6 +952,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 15, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -942,8 +989,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -988,6 +1033,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 4, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1018,8 +1068,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1064,6 +1112,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 5, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1096,8 +1149,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1142,6 +1193,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "6": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 6, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1174,8 +1230,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1220,6 +1274,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "7": { + "TagDepth": null, + "Type": 2, + "Failure": "", + "TransactionID": 7, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1252,8 +1311,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1298,6 +1355,11 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { + "TagDepth": null, + "Type": 3, + "Failure": "", + "TransactionID": 8, + "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1351,8 +1413,6 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, - "TagDepth": null, - "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/testingx/fakefill.go b/internal/testingx/fakefill.go index 1adea3e98d..62a9b4922d 100644 --- a/internal/testingx/fakefill.go +++ b/internal/testingx/fakefill.go @@ -68,6 +68,13 @@ func (ff *FakeFiller) getRandomInt64() int64 { return rnd.Int63() } +func (ff *FakeFiller) getRandomInt8() int64 { + defer ff.mu.Unlock() + ff.mu.Lock() + rnd := ff.getRandLocked() + return rnd.Int63n(255) +} + func (ff *FakeFiller) getRandomBool() bool { defer ff.mu.Unlock() ff.mu.Lock() @@ -96,6 +103,8 @@ func (ff *FakeFiller) doFill(v reflect.Value) { v.SetString(ff.getRandomString()) case reflect.Int64: v.SetInt(ff.getRandomInt64()) + case reflect.Int8: + v.SetInt(ff.getRandomInt8()) case reflect.Bool: v.SetBool(ff.getRandomBool()) case reflect.Struct: From 280d5f36ab7364748a027ecc0590f95666f42ebb Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 18:00:03 +0100 Subject: [PATCH 84/97] x --- internal/minipipeline/analysis.go | 40 +++++++++++++++++++------------ 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index 7aea141828..cbc181ddaa 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -15,9 +15,31 @@ import ( // // 2. with TagDepth being equal, by descending [WebObservationType]; // -// 3. with [WebObservationType], by ascending failure string; +// 3. with [WebObservationType] being equal, by ascending failure string; // -// 4. with failure string being equal, by descending TransactionID. +// This means that you divide the list in groups like this: +// +// +------------+------------+------------+------------+ +// | TagDepth=3 | TagDepth=2 | TagDepth=1 | TagDepth=0 | +// +------------+------------+------------+------------+ +// +// Where TagDepth=3 is the last redirect and TagDepth=0 is the initial request. +// +// Each group is further divided as follows: +// +// +------+-----+-----+-----+ +// | HTTP | TLS | TCP | DNS | +// +------+-----+-----+-----+ +// +// Where each group may be empty. The first non-empty group is about the +// operation that failed for the current TagDepth. +// +// Within each group, successes sort before failures because the empty +// string has priority over nøn-empty strings. +// +// So, when walking the list from index 0 to index N, you encounter the +// latest redirects first, you observe the more complex operations first, +// and you see errors before failures. func NewLinearWebAnalysis(input *WebObservationsContainer) (output []*WebObservation) { // fill in all the observations output = append(output, input.DNSLookupFailures...) @@ -30,8 +52,6 @@ func NewLinearWebAnalysis(input *WebObservationsContainer) (output []*WebObserva sort.SliceStable(output, func(i, j int) bool { left, right := output[i], output[j] - // Sort by descending depth. - // // We use -1 as the default value such that observations with undefined // TagDepth sort at the end of the generated list. if left.TagDepth.UnwrapOr(-1) > right.TagDepth.UnwrapOr(-1) { @@ -40,26 +60,16 @@ func NewLinearWebAnalysis(input *WebObservationsContainer) (output []*WebObserva return false } - // Sort by descending type if depth is equal. if left.Type > right.Type { return true } else if left.Type < right.Type { return false } - // With equal type, sort by failure ascending so the empty string is first. - // // We use an nonempty failure value so that observations with undefined // failures sort at the end of the group within the list. const defaultFailureValue = "unknown_failure" - if left.Failure.UnwrapOr(defaultFailureValue) > right.Failure.UnwrapOr(defaultFailureValue) { - return true - } else if left.Failure.UnwrapOr(defaultFailureValue) < right.Failure.UnwrapOr(defaultFailureValue) { - return false - } - - // If failure is equal, sort by descending transaction ID. - return left.TransactionID > right.TransactionID + return left.Failure.UnwrapOr(defaultFailureValue) > right.Failure.UnwrapOr(defaultFailureValue) }) return From eca31f0e1f3cfae87656efa324d60dfc379681e0 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 18:00:40 +0100 Subject: [PATCH 85/97] x --- internal/minipipeline/analysis.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index cbc181ddaa..09d4d6fb01 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -7,9 +7,10 @@ import ( "github.com/ooni/probe-cli/v3/internal/runtimex" ) -// NewLinearWebAnalysis constructs a slice containing all the observations. +// NewLinearWebAnalysis constructs a slice containing all the observations +// contained inside the given [*WebObservationsContainer]. // -// We sort the observations as follows: +// We sort the returned list as follows: // // 1. by descending TagDepth; // From 041186cb77197d66f0641cf7c08b6029d3888622 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 18:25:55 +0100 Subject: [PATCH 86/97] x --- .../cmd/minipipeline/testdata/analysis.json | 444 +- .../testdata/analysis_classic.json | 263 +- .../minipipeline/testdata/measurement.json | 2176 ++++---- .../minipipeline/testdata/observations.json | 180 +- .../testdata/observations_classic.json | 144 +- .../analysis.json | 186 +- .../analysis_classic.json | 96 +- .../observations.json | 28 +- .../observations_classic.json | 14 +- .../analysis.json | 276 +- .../analysis_classic.json | 96 +- .../observations.json | 42 +- .../observations_classic.json | 14 +- .../analysis.json | 245 +- .../analysis_classic.json | 101 +- .../observations.json | 35 +- .../observations_classic.json | 14 +- .../badSSLWithWrongServerName/analysis.json | 186 +- .../analysis_classic.json | 96 +- .../observations.json | 28 +- .../observations_classic.json | 14 +- .../analysis.json | 183 +- .../analysis_classic.json | 97 +- .../observations.json | 28 +- .../observations_classic.json | 14 +- .../analysis.json | 227 +- .../analysis_classic.json | 141 +- .../observations.json | 35 +- .../observations_classic.json | 21 +- .../analysis.json | 194 +- .../analysis_classic.json | 48 +- .../observations.json | 28 +- .../observations_classic.json | 7 +- .../generated/dnsBlockingBOGON/analysis.json | 247 +- .../dnsBlockingBOGON/analysis_classic.json | 101 +- .../dnsBlockingBOGON/observations.json | 35 +- .../observations_classic.json | 14 +- .../dnsBlockingNXDOMAIN/analysis.json | 194 +- .../dnsBlockingNXDOMAIN/analysis_classic.json | 48 +- .../dnsBlockingNXDOMAIN/observations.json | 28 +- .../observations_classic.json | 7 +- .../analysis.json | 245 +- .../analysis_classic.json | 106 +- .../observations.json | 35 +- .../observations_classic.json | 14 +- .../analysis.json | 344 +- .../analysis_classic.json | 156 +- .../observations.json | 49 +- .../observations_classic.json | 21 +- .../httpBlockingConnectionReset/analysis.json | 242 +- .../analysis_classic.json | 152 +- .../observations.json | 35 +- .../observations_classic.json | 21 +- .../httpDiffWithConsistentDNS/analysis.json | 242 +- .../analysis_classic.json | 152 +- .../observations.json | 35 +- .../observations_classic.json | 21 +- .../httpDiffWithInconsistentDNS/analysis.json | 340 +- .../analysis_classic.json | 152 +- .../observations.json | 49 +- .../observations_classic.json | 21 +- .../analysis.json | 423 +- .../analysis_classic.json | 247 +- .../observations.json | 63 +- .../observations_classic.json | 35 +- .../analysis.json | 374 +- .../analysis_classic.json | 198 +- .../observations.json | 56 +- .../observations_classic.json | 28 +- .../analysis.json | 423 +- .../analysis_classic.json | 247 +- .../observations.json | 63 +- .../observations_classic.json | 35 +- .../analysis.json | 374 +- .../analysis_classic.json | 198 +- .../observations.json | 56 +- .../observations_classic.json | 28 +- .../analysis.json | 423 +- .../analysis_classic.json | 247 +- .../observations.json | 63 +- .../observations_classic.json | 35 +- .../analysis.json | 374 +- .../analysis_classic.json | 198 +- .../observations.json | 56 +- .../observations_classic.json | 28 +- .../analysis.json | 321 +- .../analysis_classic.json | 147 +- .../observations.json | 49 +- .../observations_classic.json | 21 +- .../analysis.json | 423 +- .../analysis_classic.json | 247 +- .../observations.json | 63 +- .../observations_classic.json | 35 +- .../analysis.json | 464 +- .../analysis_classic.json | 198 +- .../observations.json | 70 +- .../observations_classic.json | 28 +- .../generated/successWithHTTP/analysis.json | 247 +- .../successWithHTTP/analysis_classic.json | 157 +- .../successWithHTTP/observations.json | 35 +- .../successWithHTTP/observations_classic.json | 21 +- .../generated/successWithHTTPS/analysis.json | 196 +- .../successWithHTTPS/analysis_classic.json | 106 +- .../successWithHTTPS/observations.json | 28 +- .../observations_classic.json | 14 +- .../tcpBlockingConnectTimeout/analysis.json | 191 +- .../analysis_classic.json | 101 +- .../observations.json | 28 +- .../observations_classic.json | 14 +- .../analysis.json | 345 +- .../analysis_classic.json | 152 +- .../observations.json | 49 +- .../observations_classic.json | 21 +- .../analysis.json | 191 +- .../analysis_classic.json | 101 +- .../observations.json | 28 +- .../observations_classic.json | 14 +- .../analysis.json | 240 +- .../analysis_classic.json | 101 +- .../observations.json | 35 +- .../observations_classic.json | 14 +- .../websiteDownNXDOMAIN/analysis.json | 130 +- .../websiteDownNXDOMAIN/analysis_classic.json | 46 +- .../websiteDownNXDOMAIN/observations.json | 21 +- .../observations_classic.json | 7 +- .../manual/dnsgoogle80/analysis.json | 1028 +--- .../manual/dnsgoogle80/analysis_classic.json | 628 +-- .../manual/dnsgoogle80/observations.json | 140 +- .../dnsgoogle80/observations_classic.json | 84 +- .../manual/noipv6/analysis.json | 4747 +---------------- .../manual/noipv6/analysis_classic.json | 1625 +----- .../manual/noipv6/observations.json | 434 +- .../manual/noipv6/observations_classic.json | 140 +- .../manual/youtube/analysis.json | 3514 +----------- .../manual/youtube/analysis_classic.json | 1457 +---- .../manual/youtube/observations.json | 364 +- .../manual/youtube/observations_classic.json | 140 +- internal/testingx/fakefill.go | 9 - 138 files changed, 1979 insertions(+), 30109 deletions(-) diff --git a/internal/cmd/minipipeline/testdata/analysis.json b/internal/cmd/minipipeline/testdata/analysis.json index 9760f71ef7..c0e361316a 100644 --- a/internal/cmd/minipipeline/testdata/analysis.json +++ b/internal/cmd/minipipeline/testdata/analysis.json @@ -1,16 +1,10 @@ { "DNSLookupSuccessWithInvalidAddresses": [], "DNSLookupSuccessWithValidAddress": [ - 1, - 2, 3 ], "DNSLookupSuccessWithInvalidAddressesClassic": [], - "DNSLookupSuccessWithValidAddressClassic": [ - 1, - 2, - 3 - ], + "DNSLookupSuccessWithValidAddressClassic": [], "DNSLookupUnexpectedFailure": [], "DNSExperimentFailure": null, "DNSLookupExpectedFailure": [], @@ -29,7 +23,7 @@ "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], "HTTPFinalResponseSuccessTLSWithoutControl": null, - "HTTPFinalResponseSuccessTLSWithControl": 6, + "HTTPFinalResponseSuccessTLSWithControl": 4, "HTTPFinalResponseSuccessTCPWithoutControl": null, "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPFinalResponseDiffBodyProportionFactor": 1, @@ -38,437 +32,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "x-drupal-cache": true, "x-generator": true - }, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.16.171:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "nexa.polito.it", - "HTTPRequestURL": "https://nexa.polito.it/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 36564, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.16.171:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://nexa.polito.it/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 301, - "HTTPResponseBodyLength": 231, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Content-Type": true, - "Date": true, - "Location": true, - "Server": true - }, - "HTTPResponseLocation": "https://nexa.polito.it/", - "HTTPResponseTitle": "301 Moved Permanently", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.16.171:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "nexa.polito.it", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/cmd/minipipeline/testdata/analysis_classic.json b/internal/cmd/minipipeline/testdata/analysis_classic.json index e69d2f4133..c0e361316a 100644 --- a/internal/cmd/minipipeline/testdata/analysis_classic.json +++ b/internal/cmd/minipipeline/testdata/analysis_classic.json @@ -1,13 +1,10 @@ { "DNSLookupSuccessWithInvalidAddresses": [], "DNSLookupSuccessWithValidAddress": [ - 1, - 2 + 3 ], "DNSLookupSuccessWithInvalidAddressesClassic": [], - "DNSLookupSuccessWithValidAddressClassic": [ - 1 - ], + "DNSLookupSuccessWithValidAddressClassic": [], "DNSLookupUnexpectedFailure": [], "DNSExperimentFailure": null, "DNSLookupExpectedFailure": [], @@ -26,7 +23,7 @@ "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], "HTTPFinalResponseSuccessTLSWithoutControl": null, - "HTTPFinalResponseSuccessTLSWithControl": 6, + "HTTPFinalResponseSuccessTLSWithControl": 4, "HTTPFinalResponseSuccessTCPWithoutControl": null, "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPFinalResponseDiffBodyProportionFactor": 1, @@ -35,257 +32,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "x-drupal-cache": true, "x-generator": true - }, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.16.171:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "nexa.polito.it", - "HTTPRequestURL": "https://nexa.polito.it/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 36564, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.16.171:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://nexa.polito.it/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 301, - "HTTPResponseBodyLength": 231, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Content-Type": true, - "Date": true, - "Location": true, - "Server": true - }, - "HTTPResponseLocation": "https://nexa.polito.it/", - "HTTPResponseTitle": "301 Moved Permanently", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.16.171:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "nexa.polito.it", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/cmd/minipipeline/testdata/measurement.json b/internal/cmd/minipipeline/testdata/measurement.json index 78908d41f9..3054658250 100644 --- a/internal/cmd/minipipeline/testdata/measurement.json +++ b/internal/cmd/minipipeline/testdata/measurement.json @@ -1,1194 +1,986 @@ { - "annotations": { - "architecture": "arm64", - "engine_name": "ooniprobe-engine", - "engine_version": "3.20.0-alpha", - "go_version": "go1.20.11", - "platform": "macos", - "vcs_modified": "true", - "vcs_revision": "56f1659d1bd8b2095aaf81ecf15f78be911913fb", - "vcs_time": "2023-11-30T14:34:27Z", - "vcs_tool": "git" - }, - "data_format_version": "0.2.0", - "extensions": { - "dnst": 0, - "httpt": 0, - "netevents": 0, - "tcpconnect": 0, - "tlshandshake": 0, - "tunnel": 0 - }, - "input": "http://nexa.polito.it/", - "measurement_start_time": "2023-11-30 14:43:43", - "probe_asn": "AS30722", - "probe_cc": "IT", - "probe_ip": "127.0.0.1", - "probe_network_name": "Vodafone Italia S.p.A.", - "report_id": "20231130T144343Z_webconnectivity_IT_30722_n1_BYmIfX4M2K2IUYo8", - "resolver_asn": "AS30722", - "resolver_ip": "91.80.36.88", - "resolver_network_name": "Vodafone Italia S.p.A.", - "software_name": "miniooni", - "software_version": "3.20.0-alpha", - "test_helpers": { - "backend": { - "address": "https://1.th.ooni.org", - "type": "https" - } - }, - "test_keys": { - "agent": "redirect", - "client_resolver": "", - "retries": null, - "socksproxy": null, - "network_events": [ - { - "address": "130.192.16.171:80", - "failure": null, - "operation": "connect", - "proto": "tcp", - "t0": 0.118294, - "t": 0.167065, - "transaction_id": 4, - "tags": [ - "depth=0", - "fetch_body=true" - ] - }, - { - "address": "130.192.16.171:443", - "failure": null, - "operation": "connect", - "proto": "tcp", - "t0": 0.118012, - "t": 0.167065, - "transaction_id": 5, - "tags": [ - "depth=0", - "fetch_body=false" - ] - }, - { - "failure": null, - "operation": "http_transaction_start", - "t0": 0.167227, - "t": 0.167227, - "transaction_id": 4, - "tags": [ - "depth=0", - "fetch_body=true" - ] - }, - { - "failure": null, - "operation": "http_transaction_done", - "t0": 0.193609, - "t": 0.193609, - "transaction_id": 4, - "tags": [ - "depth=0", - "fetch_body=true" - ] - }, - { - "address": "130.192.16.171:80", - "failure": null, - "num_bytes": 419, - "operation": "bytes_received_cumulative", - "proto": "tcp", - "t0": 0.193865, - "t": 0.193865, - "transaction_id": 4, - "tags": [ - "depth=0", - "fetch_body=true" - ] - }, - { - "address": "130.192.16.171:443", - "failure": null, - "num_bytes": 4533, - "operation": "bytes_received_cumulative", - "proto": "tcp", - "t0": 0.204838, - "t": 0.204838, - "transaction_id": 5, - "tags": [ - "depth=0", - "fetch_body=false" - ] - }, - { - "address": "130.192.16.171:443", - "failure": null, - "operation": "connect", - "proto": "tcp", - "t0": 0.193827, - "t": 0.21994, - "transaction_id": 6, - "tags": [ - "depth=1", - "fetch_body=true" - ] - }, - { - "failure": null, - "operation": "http_transaction_start", - "t0": 0.251752, - "t": 0.251752, - "transaction_id": 6, - "tags": [ - "depth=1", - "fetch_body=true" - ] - }, - { - "failure": null, - "operation": "http_transaction_done", - "t0": 0.314948, - "t": 0.314948, - "transaction_id": 6, - "tags": [ - "depth=1", - "fetch_body=true" - ] - }, - { - "address": "130.192.16.171:443", - "failure": null, - "num_bytes": 41989, - "operation": "bytes_received_cumulative", - "proto": "tcp", - "t0": 0.315279, - "t": 0.315279, - "transaction_id": 6, - "tags": [ - "depth=1", - "fetch_body=true" - ] - } - ], - "x_dns_whoami": { - "system_v4": [ - { - "address": "91.80.36.88" - } - ], - "udp_v4": { - "8.8.4.4:53": [ - { - "address": "91.80.36.88" - } - ] - } - }, - "x_doh": { - "network_events": [ - { - "failure": null, - "operation": "resolve_start", - "t0": 0.001804, - "t": 0.001804, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "operation": "connect", - "proto": "tcp", - "t0": 0.025474, - "t": 0.043461, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "failure": null, - "operation": "tls_handshake_start", - "t0": 0.043509, - "t": 0.043509, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 276, - "operation": "write", - "proto": "tcp", - "t0": 0.043738, - "t": 0.04378, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 576, - "operation": "read", - "proto": "tcp", - "t0": 0.043787, - "t": 0.077223, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 3856, - "operation": "read", - "proto": "tcp", - "t0": 0.077638, - "t": 0.077685, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 64, - "operation": "write", - "proto": "tcp", - "t0": 0.085561, - "t": 0.085646, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "failure": null, - "operation": "tls_handshake_done", - "t0": 0.085672, - "t": 0.085672, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 86, - "operation": "write", - "proto": "tcp", - "t0": 0.085765, - "t": 0.085787, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 161, - "operation": "write", - "proto": "tcp", - "t0": 0.08587, - "t": 0.08589, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 159, - "operation": "write", - "proto": "tcp", - "t0": 0.085903, - "t": 0.085924, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 38, - "operation": "write", - "proto": "tcp", - "t0": 0.085939, - "t": 0.085975, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 159, - "operation": "write", - "proto": "tcp", - "t0": 0.086182, - "t": 0.086214, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 93, - "operation": "read", - "proto": "tcp", - "t0": 0.085855, - "t": 0.102438, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 31, - "operation": "write", - "proto": "tcp", - "t0": 0.102489, - "t": 0.102523, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 938, - "operation": "read", - "proto": "tcp", - "t0": 0.102539, - "t": 0.115604, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 39, - "operation": "write", - "proto": "tcp", - "t0": 0.115864, - "t": 0.115925, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 530, - "operation": "read", - "proto": "tcp", - "t0": 0.11598, - "t": 0.116716, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "failure": null, - "operation": "resolve_done", - "t0": 0.116846, - "t": 0.116846, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": null, - "num_bytes": 24, - "operation": "write", - "proto": "tcp", - "t0": 0.116889, - "t": 0.116935, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:443", - "failure": "connection_already_closed", - "operation": "read", - "proto": "tcp", - "t0": 0.116755, - "t": 0.11703, - "transaction_id": 3, - "tags": [ - "depth=0" - ] - } - ], - "queries": [ - { - "answers": [ - { - "asn": 15169, - "as_org_name": "Google LLC", - "answer_type": "AAAA", - "ipv6": "2001:4860:4860::8888", - "ttl": null - }, - { - "asn": 15169, - "as_org_name": "Google LLC", - "answer_type": "AAAA", - "ipv6": "2001:4860:4860::8844", - "ttl": null - }, - { - "asn": 15169, - "as_org_name": "Google LLC", - "answer_type": "A", - "ipv4": "8.8.4.4", - "ttl": null - }, - { - "asn": 15169, - "as_org_name": "Google LLC", - "answer_type": "A", - "ipv4": "8.8.8.8", - "ttl": null - }, - { - "answer_type": "CNAME", - "hostname": "dns.google.", - "ttl": null - } - ], - "engine": "getaddrinfo", - "failure": null, - "hostname": "dns.google", - "query_type": "ANY", - "resolver_hostname": null, - "resolver_port": null, - "resolver_address": "", - "t0": 0.00199, - "t": 0.02471, - "tags": [ - "depth=0" - ], - "transaction_id": 3 - } - ], - "requests": [], - "tcp_connect": [ - { - "ip": "8.8.4.4", - "port": 443, - "status": { - "failure": null, - "success": true - }, - "t0": 0.025474, - "t": 0.043461, - "tags": [ - "depth=0" - ], - "transaction_id": 3 - } - ], - "tls_handshakes": [ - { - "network": "tcp", - "address": "8.8.4.4:443", - "cipher_suite": "TLS_AES_128_GCM_SHA256", - "failure": null, - "negotiated_protocol": "h2", - "no_tls_verify": false, - "peer_certificates": [ - { - "data": "MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl", - "format": "base64" - }, - { - "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", - "format": "base64" - }, - { - "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", - "format": "base64" - } - ], - "server_name": "dns.google", - "t0": 0.043509, - "t": 0.085672, - "tags": [ - "depth=0" - ], - "tls_version": "TLSv1.3", - "transaction_id": 3 - } - ] - }, - "x_do53": { - "network_events": [ - { - "failure": null, - "operation": "resolve_start", - "t0": 0.000848, - "t": 0.000848, - "transaction_id": 2, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:53", - "failure": null, - "num_bytes": 32, - "operation": "write", - "proto": "udp", - "t0": 0.001086, - "t": 0.00114, - "transaction_id": 2, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:53", - "failure": null, - "num_bytes": 32, - "operation": "write", - "proto": "udp", - "t0": 0.001312, - "t": 0.001336, - "transaction_id": 2, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:53", - "failure": null, - "num_bytes": 82, - "operation": "read", - "proto": "udp", - "t0": 0.001193, - "t": 0.028898, - "transaction_id": 2, - "tags": [ - "depth=0" - ] - }, - { - "address": "8.8.4.4:53", - "failure": null, - "num_bytes": 48, - "operation": "read", - "proto": "udp", - "t0": 0.001348, - "t": 0.03163, - "transaction_id": 2, - "tags": [ - "depth=0" - ] - }, - { - "failure": null, - "operation": "resolve_done", - "t0": 0.031932, - "t": 0.031932, - "transaction_id": 2, - "tags": [ - "depth=0" - ] - } - ], - "queries": [] - }, - "x_dns_duplicate_responses": [], - "queries": [ - { - "answers": null, - "engine": "udp", - "failure": "dns_no_answer", - "hostname": "nexa.polito.it", - "query_type": "AAAA", - "raw_response": "ITiBgAABAAAAAQAABG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAACowACYIbGVvbmFyZG/AEQRyb290wCx4lkEpAAAqMAAABwgAEnUAAAFRgA==", - "resolver_hostname": null, - "resolver_port": null, - "resolver_address": "8.8.4.4:53", - "t0": 0.000865, - "t": 0.028949, - "tags": [ - "depth=0" - ], - "transaction_id": 2 - }, - { - "answers": [ - { - "asn": 137, - "as_org_name": "Consortium GARR", - "answer_type": "A", - "ipv4": "130.192.16.171", - "ttl": null - } - ], - "engine": "udp", - "failure": null, - "hostname": "nexa.polito.it", - "query_type": "A", - "raw_response": "+p2BgAABAAEAAAAABG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAVGAAASCwBCr", - "resolver_hostname": null, - "resolver_port": null, - "resolver_address": "8.8.4.4:53", - "t0": 0.001207, - "t": 0.031652, - "tags": [ - "depth=0" - ], - "transaction_id": 2 - }, - { - "answers": [ - { - "asn": 137, - "as_org_name": "Consortium GARR", - "answer_type": "A", - "ipv4": "130.192.16.171", - "ttl": null - }, - { - "answer_type": "CNAME", - "hostname": "nexa.polito.it.", - "ttl": null - } - ], - "engine": "getaddrinfo", - "failure": null, - "hostname": "nexa.polito.it", - "query_type": "ANY", - "resolver_hostname": null, - "resolver_port": null, - "resolver_address": "", - "t0": 0.000429, - "t": 0.032567, - "tags": [ - "depth=0" - ], - "transaction_id": 1 - }, - { - "answers": [ - { - "asn": 137, - "as_org_name": "Consortium GARR", - "answer_type": "A", - "ipv4": "130.192.16.171", - "ttl": null - } - ], - "engine": "doh", - "failure": null, - "hostname": "nexa.polito.it", - "query_type": "A", - "raw_response": "p4SBgAABAAEAAAABBG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAFRgAASCwBCrAAApAgAAAIAAAZkADAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "resolver_hostname": null, - "resolver_port": null, - "resolver_address": "https://dns.google/dns-query", - "t0": 0.003084, - "t": 0.11599, - "tags": [ - "depth=0" - ], - "transaction_id": 3 - }, - { - "answers": null, - "engine": "doh", - "failure": "dns_no_answer", - "hostname": "nexa.polito.it", - "query_type": "AAAA", - "raw_response": "f/iBgAABAAAAAQABBG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAAAcIACYIbGVvbmFyZG/AEQRyb290wCx4lkEpAAAqMAAABwgAEnUAAAFRgAAAKQIAAACAAAF3AAwBcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "resolver_hostname": null, - "resolver_port": null, - "resolver_address": "https://dns.google/dns-query", - "t0": 0.001834, - "t": 0.116796, - "tags": [ - "depth=0" - ], - "transaction_id": 3 - } - ], - "requests": [ - { - "network": "tcp", - "address": "130.192.16.171:443", - "alpn": "http/1.1", - "failure": null, - "request": { - "body": "", - "body_is_truncated": false, - "headers_list": [ - [ - "Accept", - "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" - ], - [ - "Accept-Language", - "en-US,en;q=0.9" - ], - [ - "Host", - "nexa.polito.it" - ], - [ - "Referer", - "http://nexa.polito.it/" - ], - [ - "User-Agent", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" - ] - ], - "headers": { - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - "Accept-Language": "en-US,en;q=0.9", - "Host": "nexa.polito.it", - "Referer": "http://nexa.polito.it/", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" - }, - "method": "GET", - "tor": { - "exit_ip": null, - "exit_name": null, - "is_tor": false - }, - "x_transport": "tcp", - "url": "https://nexa.polito.it/" - }, - "response": { - "body": "\u003c!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML+RDFa 1.0//EN\"\n \"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd\"\u003e\n\u003chtml xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" version=\"XHTML+RDFa 1.0\" dir=\"ltr\"\n xmlns:fb=\"https://ogp.me/ns/fb#\"\n xmlns:og=\"https://ogp.me/ns#\"\u003e\n\n\u003chead profile=\"http://www.w3.org/1999/xhtml/vocab\"\u003e\n \u003cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /\u003e\n\u003clink rel=\"shortcut icon\" href=\"https://nexa.polito.it/nexafiles/contented7_favicon.ico\" type=\"image/vnd.microsoft.icon\" /\u003e\n\u003cmeta name=\"generator\" content=\"Drupal 7 (http://drupal.org)\" /\u003e\n\u003clink rel=\"canonical\" href=\"https://nexa.polito.it/\" /\u003e\n\u003clink rel=\"shortlink\" href=\"https://nexa.polito.it/\" /\u003e\n\u003cmeta property=\"og:type\" content=\"website\" /\u003e\n\u003cmeta property=\"og:url\" content=\"https://nexa.polito.it/\" /\u003e\n\u003cmeta property=\"og:title\" content=\"Nexa Center for Internet \u0026amp; Society\" /\u003e\n\u003cmeta property=\"og:description\" content=\"Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\" /\u003e\n\u003cmeta name=\"twitter:card\" content=\"summary\" /\u003e\n\u003cmeta name=\"twitter:site\" content=\"@nexacenter\" /\u003e\n\u003cmeta name=\"twitter:site:id\" content=\"49607008\" /\u003e\n\u003cmeta name=\"twitter:url\" content=\"https://nexa.polito.it/\" /\u003e\n\u003cmeta name=\"twitter:title\" content=\"Nexa Center for Internet \u0026amp; Society\" /\u003e\n\u003cmeta name=\"twitter:description\" content=\"Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\" /\u003e\n \u003ctitle\u003eNexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\u003c/title\u003e\n \u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_xE-rWrJf-fncB6ztZfd2huxqgxu4WO-qwma6Xer30m4.css\" media=\"all\" /\u003e\n\u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_02kNM7E_d_TVOJ_Q4TPhaP-wbrvOWbuPMtkSrtZvmPY.css\" media=\"all\" /\u003e\n\u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_eukJACdIvUI5veT0PNo-PXBs0I50kokcOb26hO1mxFI.css\" media=\"all\" /\u003e\n\u003clink type=\"text/css\" rel=\"stylesheet\" href=\"https://nexa.polito.it/nexacenterfiles/css/css_6qqbOWA0So6vmSTtkqcBCrZ3iKRASVZ5qG1Yqwq8HC0.css\" media=\"screen\" /\u003e\n \u003cscript type=\"text/javascript\" src=\"//code.jquery.com/jquery-1.12.4.min.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nwindow.jQuery || document.write(\"\u003cscript src='/sites/all/modules/jquery_update/replace/jquery/1.12/jquery.min.js'\u003e\\x3C/script\u003e\")\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_GOikDsJOX04Aww72M-XK1hkq4qiL_1XgGsRdkL0XlDo.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_TVTqjz8JHRb2KK9hlzuk0YsjzD013dKyYX_OTz-2VXU.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_vPOVD62vJ5lGBWdrLaM_m7mkR4eP_IG7R7jSWx1CnOk.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nvar _paq = _paq || [];(function(){var u=((\"https:\" == document.location.protocol) ? \"https://analytics.nexacenter.org/\" : \"http://analytics.nexacenter.org/\");_paq.push([\"setSiteId\", \"3\"]);_paq.push([\"setTrackerUrl\", u+\"matomo.php\"]);_paq.push([\"setDoNotTrack\", 1]);_paq.push([\"trackPageView\"]);_paq.push([\"setIgnoreClasses\", [\"no-tracking\",\"colorbox\"]]);_paq.push([\"enableLinkTracking\"]);var d=document,g=d.createElement(\"script\"),s=d.getElementsByTagName(\"script\")[0];g.type=\"text/javascript\";g.defer=true;g.async=true;g.src=u+\"matomo.js\";s.parentNode.insertBefore(g,s);})();\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_tzAVab462cyAtlJ1OeA_JccnC5qSOjMMH5CRQ43Ea-8.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\njQuery.extend(Drupal.settings, {\"basePath\":\"\\/\",\"pathPrefix\":\"\",\"setHasJsCookie\":0,\"ajaxPageState\":{\"theme\":\"nexad7\",\"theme_token\":\"PVVZnk1KCxUsfX1pkxau7l9eaXFvdUaP2z-S1tIIXNk\",\"js\":{\"0\":1,\"1\":1,\"sites\\/all\\/modules\\/eu_cookie_compliance\\/js\\/eu_cookie_compliance.min.js\":1,\"\\/\\/code.jquery.com\\/jquery-1.12.4.min.js\":1,\"2\":1,\"misc\\/jquery-extend-3.4.0.js\":1,\"misc\\/jquery-html-prefilter-3.5.0-backport.js\":1,\"misc\\/jquery.once.js\":1,\"misc\\/drupal.js\":1,\"sites\\/all\\/modules\\/jquery_update\\/js\\/jquery_browser.js\":1,\"sites\\/all\\/modules\\/eu_cookie_compliance\\/js\\/jquery.cookie-1.4.1.min.js\":1,\"sites\\/all\\/modules\\/lightbox2\\/js\\/lightbox.js\":1,\"sites\\/all\\/modules\\/matomo\\/matomo.js\":1,\"3\":1,\"sites\\/nexa.polito.it\\/themes\\/nexad7\\/js\\/scripts.js\":1},\"css\":{\"modules\\/system\\/system.base.css\":1,\"modules\\/system\\/system.menus.css\":1,\"modules\\/system\\/system.messages.css\":1,\"modules\\/system\\/system.theme.css\":1,\"modules\\/aggregator\\/aggregator.css\":1,\"modules\\/book\\/book.css\":1,\"modules\\/comment\\/comment.css\":1,\"sites\\/all\\/modules\\/date\\/date_repeat_field\\/date_repeat_field.css\":1,\"modules\\/field\\/theme\\/field.css\":1,\"modules\\/node\\/node.css\":1,\"modules\\/search\\/search.css\":1,\"modules\\/user\\/user.css\":1,\"sites\\/all\\/modules\\/calendar\\/css\\/calendar_multiday.css\":1,\"sites\\/all\\/modules\\/views\\/css\\/views.css\":1,\"sites\\/all\\/modules\\/ctools\\/css\\/ctools.css\":1,\"sites\\/all\\/modules\\/lightbox2\\/css\\/lightbox.css\":1,\"sites\\/all\\/modules\\/oembed\\/oembed.base.css\":1,\"sites\\/all\\/modules\\/oembed\\/oembed.theme.css\":1,\"sites\\/all\\/modules\\/eu_cookie_compliance\\/css\\/eu_cookie_compliance.css\":1,\"public:\\/\\/ctools\\/css\\/0043c8a0cdcd6cba153c028452466f3f.css\":1,\"sites\\/nexa.polito.it\\/themes\\/nexad7\\/style.css\":1}},\"lightbox2\":{\"rtl\":0,\"file_path\":\"\\/(\\\\w\\\\w\\/)public:\\/\",\"default_image\":\"\\/sites\\/all\\/modules\\/lightbox2\\/images\\/brokenimage.jpg\",\"border_size\":10,\"font_color\":\"000\",\"box_color\":\"fff\",\"top_position\":\"\",\"overlay_opacity\":\"0.8\",\"overlay_color\":\"000\",\"disable_close_click\":1,\"resize_sequence\":0,\"resize_speed\":400,\"fade_in_speed\":400,\"slide_down_speed\":600,\"use_alt_layout\":0,\"disable_resize\":0,\"disable_zoom\":0,\"force_show_nav\":0,\"show_caption\":0,\"loop_items\":1,\"node_link_text\":\"View Image Details\",\"node_link_target\":0,\"image_count\":\"Image !current of !total\",\"video_count\":\"Video !current of !total\",\"page_count\":\"Page !current of !total\",\"lite_press_x_close\":\"press \\u003Ca href=\\u0022#\\u0022 onclick=\\u0022hideLightbox(); return FALSE;\\u0022\\u003E\\u003Ckbd\\u003Ex\\u003C\\/kbd\\u003E\\u003C\\/a\\u003E to close\",\"download_link_text\":\"\",\"enable_login\":false,\"enable_contact\":false,\"keys_close\":\"c x 27\",\"keys_previous\":\"p 37\",\"keys_next\":\"n 39\",\"keys_zoom\":\"z\",\"keys_play_pause\":\"32\",\"display_image_size\":\"original\",\"image_node_sizes\":\"()\",\"trigger_lightbox_classes\":\"\",\"trigger_lightbox_group_classes\":\"\",\"trigger_slideshow_classes\":\"\",\"trigger_lightframe_classes\":\"\",\"trigger_lightframe_group_classes\":\"\",\"custom_class_handler\":0,\"custom_trigger_classes\":\"\",\"disable_for_gallery_lists\":1,\"disable_for_acidfree_gallery_lists\":true,\"enable_acidfree_videos\":true,\"slideshow_interval\":5000,\"slideshow_automatic_start\":true,\"slideshow_automatic_exit\":true,\"show_play_pause\":true,\"pause_on_next_click\":false,\"pause_on_previous_click\":true,\"loop_slides\":false,\"iframe_width\":600,\"iframe_height\":400,\"iframe_border\":1,\"enable_video\":0,\"useragent\":\"EyeMonIT Uptime Bot Mozilla\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\/537.36 (KHTML, like Gecko) Chrome\\/74.0.3729.169 Safari\\/537.36\"},\"themepath\":\"\\/sites\\/nexa.polito.it\\/themes\\/nexad7\",\"populatemenu\":\"https:\\/\\/nexa.polito.it\\/modules\\/populatemenu\",\"eu_cookie_compliance\":{\"cookie_policy_version\":\"1.0.0\",\"popup_enabled\":1,\"popup_agreed_enabled\":0,\"popup_hide_agreed\":0,\"popup_clicking_confirmation\":false,\"popup_scrolling_confirmation\":false,\"popup_html_info\":\"\\u003Cdiv class=\\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--opt-in\\u0022\\u003E\\n \\u003Cdiv class=\\u0022popup-content info\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Ch2\\u003EQuesto sito utilizza i cookies, ma nessun dato di navigazione viene raccolto senza il tuo consenso.\\u003C\\/h2\\u003E\\n\\u003Cp\\u003ENon utilizziamo servizi di terze parti per l\\u0027analisi dei dati ed anonimizziamo i dati raccolti.\\u003C\\/p\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022find-more-button eu-cookie-compliance-more-button\\u0022\\u003EPrivacy Policy\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\n \\u003Cdiv id=\\u0022popup-buttons\\u0022 class=\\u0022\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022agree-button eu-cookie-compliance-secondary-button\\u0022\\u003EOK, Accetto\\u003C\\/button\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022decline-button eu-cookie-compliance-default-button\\u0022 \\u003ENo, grazie\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\",\"use_mobile_message\":false,\"mobile_popup_html_info\":\"\\u003Cdiv class=\\u0022eu-cookie-compliance-banner eu-cookie-compliance-banner-info eu-cookie-compliance-banner--opt-in\\u0022\\u003E\\n \\u003Cdiv class=\\u0022popup-content info\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022find-more-button eu-cookie-compliance-more-button\\u0022\\u003EPrivacy Policy\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\n \\u003Cdiv id=\\u0022popup-buttons\\u0022 class=\\u0022\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022agree-button eu-cookie-compliance-secondary-button\\u0022\\u003EOK, Accetto\\u003C\\/button\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022decline-button eu-cookie-compliance-default-button\\u0022 \\u003ENo, grazie\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\\n\",\"mobile_breakpoint\":\"768\",\"popup_html_agreed\":\"\\u003Cdiv\\u003E\\n \\u003Cdiv class=\\u0022popup-content agreed\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Ch2\\u003EThank you for accepting cookies\\u003C\\/h2\\u003E\\n\\u003Cp\\u003EYou can now hide this message or find out more about cookies.\\u003C\\/p\\u003E\\n \\u003C\\/div\\u003E\\n \\u003Cdiv id=\\u0022popup-buttons\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022hide-popup-button eu-cookie-compliance-hide-button\\u0022\\u003EHide\\u003C\\/button\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022find-more-button eu-cookie-compliance-more-button-thank-you\\u0022 \\u003EMore info\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\",\"popup_use_bare_css\":false,\"popup_height\":\"auto\",\"popup_width\":\"100%\",\"popup_delay\":1000,\"popup_link\":\"\\/privacy\",\"popup_link_new_window\":0,\"popup_position\":null,\"fixed_top_position\":false,\"popup_language\":\"en\",\"store_consent\":false,\"better_support_for_screen_readers\":0,\"reload_page\":1,\"domain\":\"\",\"domain_all_sites\":0,\"popup_eu_only_js\":0,\"cookie_lifetime\":\"100\",\"cookie_session\":false,\"disagree_do_not_show_popup\":0,\"method\":\"opt_in\",\"allowed_cookies\":\"has_js\\r\\ncookie-agreed\",\"withdraw_markup\":\"\\u003Cbutton type=\\u0022button\\u0022 class=\\u0022eu-cookie-withdraw-tab\\u0022\\u003EPrivacy settings\\u003C\\/button\\u003E\\n\\u003Cdiv class=\\u0022eu-cookie-withdraw-banner\\u0022\\u003E\\n \\u003Cdiv class=\\u0022popup-content info\\u0022\\u003E\\n \\u003Cdiv id=\\u0022popup-text\\u0022\\u003E\\n \\u003Ch2\\u003EWe use cookies on this site to enhance your user experience\\u003C\\/h2\\u003E\\n\\u003Cp\\u003EYou have given your consent for us to set cookies.\\u003C\\/p\\u003E\\n \\u003C\\/div\\u003E\\n \\u003Cdiv id=\\u0022popup-buttons\\u0022\\u003E\\n \\u003Cbutton type=\\u0022button\\u0022 class=\\u0022eu-cookie-withdraw-button\\u0022\\u003EWithdraw consent\\u003C\\/button\\u003E\\n \\u003C\\/div\\u003E\\n \\u003C\\/div\\u003E\\n\\u003C\\/div\\u003E\\n\",\"withdraw_enabled\":false,\"withdraw_button_on_info_popup\":0,\"cookie_categories\":[],\"cookie_categories_details\":[],\"enable_save_preferences_button\":1,\"cookie_name\":\"\",\"cookie_value_disagreed\":\"0\",\"cookie_value_agreed_show_thank_you\":\"1\",\"cookie_value_agreed\":\"2\",\"containing_element\":\"body\",\"automatic_cookies_removal\":1,\"close_button_action\":\"close_banner\"},\"matomo\":{\"trackMailto\":1},\"urlIsAjaxTrusted\":{\"\\/\":true}});\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003c/head\u003e\n\u003cbody class=\"html front not-logged-in no-sidebars page-frontpage2\" \u003e\n \u003cdiv id=\"skip-link\"\u003e\n \u003ca href=\"#main-content\" class=\"element-invisible element-focusable\"\u003eSkip to main content\u003c/a\u003e\n \u003c/div\u003e\n \n\n\n\n\n \u003cdiv id=\"wrapper\"\u003e\n \u003cdiv id=\"container\" class=\"clear-block\"\u003e\u003c!-- begin container --\u003e\n \n\n \u003cdiv id=\"header\"\u003e\n\t\n\t\n\t\t\t\t\t\t\u003cdiv id=\"logo\"\u003e\n\t\t\t\t\u003ca href=\"/\" title=\"Nexa Center for Internet \u0026amp; Society\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/logo.png\" alt=\"Nexa Center for Internet \u0026amp; Society\" /\u003e\u003c/a\u003e\n\t\t\t\u003c/div\u003e\t\t\t\n\t\t\t\n\t\t\t\u003cdiv id=\"slogan-floater\"\u003e\u003c!-- begin slogan-floater --\u003e\n\t\t\t\t\t \u003cdiv class=\"region region-social-share\"\u003e\n \u003cdiv id=\"block-block-4\" class=\"block block-block\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"feeds-header feed\"\u003e\u003ca href=\"/feed\" title=\"RSS Feed\"\u003e\u003cimg src=\"/nexafiles/feed.png\" alt=\"RSS Logo\" border=\"0\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header mail\"\u003e\u003ca href=\"/mailing-lists\" title=\"Nexa Mailing Lists\"\u003e\u003cimg src=\"/nexafiles/mail.png\" alt=\"Mail\" border=\"0\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header fb\"\u003e\u003ca href=\"http://facebook.com/nexa.center\" title=\"Nexa Facebook\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/fb.png\" border=\"0\" alt=\"Communia Facebook page\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header tweet\"\u003e\u003ca href=\"http://twitter.com/nexacenter\" title=\"Nexa Twitter\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/tw.png\" border=\"0\" alt=\"Nexa twitter\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header youtube\"\u003e\u003ca href=\"http://www.youtube.com/user/NexaCenter\" title=\"Nexa YouTube\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/you_tube.png\" border=\"0\" alt=\"Nexa youtube\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header flickr\"\u003e\u003ca href=\"https://www.instagram.com/nexa_center/\" title=\"Nexa Instagram\" target=\"_TOP\"\u003e\u003cimg src=\"/nexafiles/flickr2.png\" border=\"0\" alt=\"Nexa Instagram\" /\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"feeds-header github\"\u003e\u003ca href=\"https://github.com/nexacenter/\" title=\"Github Feed\"\u003e\u003cimg src=\"/nexafiles/github.png\" alt=\"github Logo\" border=\"0\" /\u003e\u003c/a\u003e\u003c/div\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\t\t\t\t\n\t\t\t\u003c!--\t\u003ch1 class='site-name'\u003e\u003ca href=\"/\" title=\"Nexa Center for Internet \u0026amp; Society\"\u003eNexa Center for Internet \u0026amp; Society\u003c/a\u003e\u003c/h1\u003e\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t--\u003e \n\t\t\t\u003c/div\u003e\u003c!-- end slogan-floater --\u003e\n\n\t\t\t\u003cdiv id=\"header-region\" class=\"clear-block\"\u003e \n\t\t\t\t \u003cdiv class=\"region region-header\"\u003e\n \u003cdiv id=\"block-system-main-menu\" class=\"block block-system block-menu\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenu headerMainMenuHome\"\u003e\n \n \u003cul class=\"menu\"\u003e\u003cli class=\"first collapsed\"\u003e\u003ca href=\"/get-involved\" title=\"\"\u003eGet Involved\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"leaf\"\u003e\u003ca href=\"/donate\" title=\"\"\u003eDonate\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"leaf\"\u003e\u003ca href=\"/contatti\" title=\"\"\u003eContacts\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/newsroom\" title=\"\"\u003eNewsroom\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/events\" title=\"\"\u003eEvents\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"leaf\"\u003e\u003ca href=\"/teaching\"\u003eTeaching\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/publications\" title=\"\"\u003ePublications\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/research\"\u003eResearch\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"collapsed\"\u003e\u003ca href=\"/people\" title=\"People\"\u003ePeople\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"last collapsed\"\u003e\u003ca href=\"/about\"\u003eAbout\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e \u003c/div\u003e\n\n\n\t\u003cdiv class=\"ghostHeaderMenuItem\"\u003e\u003c/div\u003e\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t \t\t\t\n\t\t\t\u003cdiv id=\"sub-heading-home-statement\"\u003e\n\t\t\t\t\u003ch2 id=\"nexa-statement-heading\"\u003e\u003c!-- STATEMENT --\u003e\u003c/h2\u003e \n\t\t\t\t\u003cdiv id=\"goAway\"\u003e\u003c/div\u003e\n\t\t\t\u003c/div\u003e\n\t\t\t\t\n\n \u003c/div\u003e \u003c!-- /#header --\u003e\n\n \n\t \n\t\t\t\t\t\u003cdiv id=\"main-content-block\"\u003e\n\t\t \n \n\t\t\t\t\n\t\n\t\u003cdiv id=\"center\"\u003e\u003c!-- begin center --\u003e \n\t\t\u003cdiv id=\"squeeze\"\u003e\u003c!-- begin squeeze --\u003e\n\n\t\t\t\n\t\t\t\t\t\n\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\n\n\t\t\t\n\t\t\t\u003cdiv class=\"tabs\"\u003e\u003c/div\u003e\t\t\t\n\t\t\t \n\t\t\t\t\t\t\t\u003cdiv class=\"clear-block\"\u003e\n\n\t\t\t\t \n\t\t\t \n\t\t\t\t \u003cdiv class=\"region region-content\"\u003e\n \u003cdiv id=\"block-system-main\" class=\"block block-system\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"view view-frontpage2 view-id-frontpage2 view-display-id-page_1 view-dom-id-6807e5671e7646065affd0abf37216ef\"\u003e\n \n \n \n \u003cdiv class=\"view-content\"\u003e\n \n\u003cdiv class=\"item-list\"\u003e\n\u003cdiv class=\"view-content-frontpage2\"\u003e\n\n\n\n \u003cul\u003e\n \t \u003cli class=\"v\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1807\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\u003ch2 class=\"nexa-news\"\u003e\n\t\t\tnews \t\t\t\u003c/h2\u003e\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/contro-lo-smartphone-web-ok.jpg?itok=9x-BvgLK\" width=\"88\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/contro-lo-smartphone\"\u003eContro lo smartphone. Per una tecnologia più democratica\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003eIl nuovo saggio del co-direttore del Centro Nexa Juan Carlo De Martin\u003cbr /\u003e\u003cbr /\u003e\nData di uscita: 22 settembre 2023\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/contro-lo-smartphone\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"i\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1829\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\t\u003ch2 class=\"nexa-event\"\u003e\n\t\t\tevents \t\t\t\u003c/h2\u003e\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social-1.png?itok=vlrGaAJf\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/conf2023\"\u003eConferenza Nexa su Internet \u0026amp; Società 2023\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e15 dicembre 2023\u003cbr /\u003e\u003cbr /\u003e\nTwitter hashtag della conferenza: \u003ca href=\"https://twitter.com/hashtag/nexa2023?src=hashtag_click\"\u003e#nexa2023\u003c/a\u003e\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/conf2023\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"e\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1830\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\u003ch2 class=\"nexa-news\"\u003e\n\t\t\tnews \t\t\t\u003c/h2\u003e\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/mborghi23_1.jpg?itok=uKC3DqJo\" width=\"108\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/intervista-Borghi-Dealogando\"\u003eDigital Services Act, Borghi: “Bavaglio al web? La censura c’era già ma i rimedi sono inefficaci”\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003eL'intervista di Dealogando al co-direttore del Centro Nexa Maurizio Borghi\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/intervista-Borghi-Dealogando\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"w\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1809\"\u003e\n\t\t\n\t\t\t\n\t\t\t\t\t\u003ch2 class=\"lunch-seminar\"\u003e\n\t\t\tlunch seminar \t\t\t\u003c/h2\u003e\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social-lunch109.png?itok=bzGwi-Du\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/lunch-109\"\u003e109° Nexa Lunch Seminar - Piattaforme digitali e autodeterminazione. Relazioni sociali, lavoro e diritti al tempo della \u0026quot;governamentalità algoritmica\u0026quot;\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e22 novembre 2023\u003cbr /\u003e\u003cbr /\u003e\nGIACOMO PISANI (Euricse)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/lunch-109\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"s\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1771\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t\u003ch2 class=\"nexa-wednesday\"\u003e\n\t\t\tmercoled\u0026igrave; di nexa \t\t\t\u003c/h2\u003e\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social-tamburrini1.png?itok=RnnaEtE2\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/mercoledi-166\"\u003e166° Mercoledì di Nexa - Etica del digitale ed euristiche mentali\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e8 novembre 2023\u003cbr /\u003e\u003cbr /\u003e\nGUGLIELMO TAMBURRINI (Università di Napoli Federico II)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/mercoledi-166\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"-\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1808\"\u003e\n\t\t\n\t\t\t\n\t\t\t\t\t\u003ch2 class=\"lunch-seminar\"\u003e\n\t\t\tlunch seminar \t\t\t\u003c/h2\u003e\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/social108.png?itok=F8A01vnp\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/lunch-108\"\u003e108° Nexa Lunch Seminar - Analisi e report di trasferimenti di dati personali verso domini extra-EEA\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e25 ottobre 2023\u003cbr /\u003e\u003cbr /\u003e\nLORENZO LAUDADIO (Politecnico di Torino)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/lunch-108\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"r\"\u003e\t\u003cdiv class=\"frontpage2\" id=\"frontpage2_1773\"\u003e\n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t\u003ch2 class=\"nexa-wednesday\"\u003e\n\t\t\tmercoled\u0026igrave; di nexa \t\t\t\u003c/h2\u003e\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-image-attach-images\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e\u003cimg src=\"https://nexa.polito.it/nexacenterfiles/styles/thumbnail/public/ig_1_0.png?itok=fjPQ1peJ\" width=\"128\" height=\"128\" alt=\"\" /\u003e\u003c/div\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-title views-field-title-small\"\u003e\n\t\t\t\t\t\u003cspan class=\"field-content\"\u003e\u003ch2 class=\"title\"\u003e\n\u003ca href=\"/mercoledi-165\"\u003e165° Mercoledì di Nexa - Oggetti Buoni: Progettare tecnologie per i valori umani\u003c/a\u003e\u003c/h2\u003e\n\u003c/span\u003e\t\t\t\t\u003c/div\u003e\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t\u003cdiv class=\"views-field-body views-field-body-small\"\u003e\n\t\t\t\t\t\u003cdiv class=\"field-content\"\u003e11 ottobre 2023\u003cbr /\u003e\u003cbr /\u003e\nSTEVEN UMBRELLO (Institute for Ethics and Emerging Technologies)\u003cbr /\u003e\n \n\u003c/div\u003e\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\u003cspan class=\"view-post\"\u003e\u003ca href=\"/mercoledi-165\"\u003emore \u003e\u003c/a\u003e\u003c/span\u003e\t\t\t\t\u003c/div\u003e \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t\u003c/div\u003e\n\u003c/li\u003e\n \u003c/ul\u003e\n\n\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\n\n \u003c/div\u003e\n \n \u003ch2 class=\"element-invisible\"\u003ePages\u003c/h2\u003e\u003cdiv class=\"item-list\"\u003e\u003cul class=\"pager\"\u003e\u003cli class=\"pager-current first\"\u003e1\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 2\" href=\"/frontpage2?page=1\"\u003e2\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 3\" href=\"/frontpage2?page=2\"\u003e3\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 4\" href=\"/frontpage2?page=3\"\u003e4\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 5\" href=\"/frontpage2?page=4\"\u003e5\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 6\" href=\"/frontpage2?page=5\"\u003e6\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 7\" href=\"/frontpage2?page=6\"\u003e7\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 8\" href=\"/frontpage2?page=7\"\u003e8\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-item\"\u003e\u003ca title=\"Go to page 9\" href=\"/frontpage2?page=8\"\u003e9\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-ellipsis\"\u003e…\u003c/li\u003e\n\u003cli class=\"pager-next\"\u003e\u003ca title=\"Go to next page\" href=\"/frontpage2?page=1\"\u003enext ›\u003c/a\u003e\u003c/li\u003e\n\u003cli class=\"pager-last last\"\u003e\u003ca title=\"Go to last page\" href=\"/frontpage2?page=70\"\u003elast »\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e \n \n \n \n \n\u003c/div\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n \n\t\t\t \n\t\t\t\t\u003cdiv id=\"about-footer\" class=\"clear-block\"\u003e\n\t\t\t\t\t\t\t\t\t\u003c/div\u003e\n\t\t\t\t\n\t\t\t\t\u003c/div\u003e\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\n\t\t\t \n\t\t\u003c/div\u003e\u003c!-- end squeeze --\u003e\n \n\t\t\u003c!-- begin small_sidebar --\u003e\n\t\t\t\u003cdiv id=\"sidebar-right\" class=\"sidebar\"\u003e\n\t\t\t\t\t\t\t\t \u003cdiv class=\"region region-small-sidebar\"\u003e\n \u003cdiv id=\"block-multiblock-3\" class=\"block block-multiblock block-views block-views-upcoming_events-block_1-instance\"\u003e\n\n \u003ch2\u003eUpcoming events\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"view view-upcoming-events view-id-upcoming_events view-display-id-block_1 upcoming-events view-dom-id-32590febeccd7118463c59952ac4da2f\"\u003e\n \n \n \n \u003cdiv class=\"view-content\"\u003e\n \u003cdiv class=\"views-row views-row-1 views-row-odd views-row-first views-row-last\"\u003e\n \u003cdiv class=\"dateBox\"\u003e\u003cdiv class=\"dateBoxInside\"\u003e\u003cp\u003eDecember\u003c/p\u003e\u003cp\u003e13\u003c/p\u003e\u003cp\u003e2023\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\n\n\t\u003cdiv class=\"views-field-field-luogo\"\u003e\n\n\n\t\t\t\t \n\t\t\n\t\t\t\u003cdiv class=\"views-field-field-luogo-value\"\u003e\u003c/div\u003e\t\t\n\t\u003c/div\u003e\n\t \n\n\n\t\u003cdiv class=\"views-field-title event-box-title\"\u003e\n\n\n\t\t\t\t \n\t\t\n\t\t\t\u003cspan class=\"field-content\"\u003e\u003ca href=\"/mercoledi-167\"\u003e167° Mercoledì di Nexa - Internet fatta a pezzi. Sovranità digitale, nazionalismi e big tech\u003c/a\u003e\u003c/span\u003e\t\t\n\t\u003c/div\u003e\n\t \n\n\n\t\u003cdiv class=\"views-field-body\"\u003e\n\n\n\t\t\t\t \n\t\t\n\t\t\t\u003cspan class=\"field-content\"\u003e\nPer il ciclo di incontri “i Mercoledì di Nexa” (ogni 2° mercoledì del mese) \n167° Mercoledì di Nexa\nInternet fatta a pezzi\nSovranità digitale,...\u003c/span\u003e\t\t\n\t\u003c/div\u003e\n\t \n \u003c/div\u003e\n \u003c/div\u003e\n \n \n \n \n \n \n\u003c/div\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-views-publications-block-1\" class=\"block block-views\"\u003e\n\n \u003ch2\u003eRecent Publications\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"view view-Publications view-id-Publications view-display-id-block_1 view-dom-id-58e06d72edaccd704776118b8811e38b\"\u003e\n \n \n \n \u003cdiv class=\"view-content\"\u003e\n \u003cdiv class=\"item-list\"\u003e \u003cul\u003e \u003cli class=\"views-row views-row-1 views-row-odd views-row-first\"\u003e \n \u003cdiv class=\"views-field-field-authors pubblications-block\"\u003e\n \u003cdiv class=\"field-content\"\u003e\u003cdiv class=\"field-content\"\u003eJuan Carlos De Martin\u003c/div\u003e\u003c/div\u003e\n \u003c/div\u003e\n \n \u003cdiv class=\"views-field-title pubblications-block\"\u003e\n \u003cspan class=\"field-content\"\u003e\u003cspan class=\"field-content\"\u003e\u003ca href=\"/Juan-Carlos-De-Martin-contro-lo-smartphone\"\u003eContro lo smartphone. Per una tecnologia più democratica\u003c/a\u003e\u003c/span\u003e\u003c/span\u003e\n \u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"views-row views-row-2 views-row-even\"\u003e \n \u003cdiv class=\"views-field-field-authors pubblications-block\"\u003e\n \u003cdiv class=\"field-content\"\u003e\u003cdiv class=\"field-content\"\u003eThis report was mainly curated by Giovanni Garifo, Giacomo Conti and Anita Botta, with the contributions of the Nexa Staff, Directors and Community\u003c/div\u003e\u003c/div\u003e\n \u003c/div\u003e\n \n \u003cdiv class=\"views-field-title pubblications-block\"\u003e\n \u003cspan class=\"field-content\"\u003e\u003cspan class=\"field-content\"\u003e\u003ca href=\"/2023-annual-report\"\u003eNexa Center Annual Report 2023\u003c/a\u003e\u003c/span\u003e\u003c/span\u003e\n \u003c/div\u003e\n\u003c/li\u003e\n \u003cli class=\"views-row views-row-3 views-row-odd views-row-last\"\u003e \n \u003cdiv class=\"views-field-field-authors pubblications-block\"\u003e\n \u003cdiv class=\"field-content\"\u003e\u003cdiv class=\"field-content\"\u003eJuan Carlos De Martin, Marco Ricolfi\u003c/div\u003e\u003c/div\u003e\n \u003c/div\u003e\n \n \u003cdiv class=\"views-field-title pubblications-block\"\u003e\n \u003cspan class=\"field-content\"\u003e\u003cspan class=\"field-content\"\u003e\u003ca href=\"/experience-Nexa-Center\"\u003eThe first 15 years of the Nexa Center for Internet and Society\u003c/a\u003e\u003c/span\u003e\u003c/span\u003e\n \u003c/div\u003e\n\u003c/li\u003e\n \u003c/ul\u003e\u003c/div\u003e \u003c/div\u003e\n \n \n \n \n \n \n\u003c/div\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\t\t\u003c/div\u003e\n\t\t\u003c!-- end small_sidebar --\u003e \n\n\t\u003c/div\u003e\u003c!-- end center --\u003e\n \n\t\t\t\u003c/div\u003e \u003c!-- /.main-content-block --\u003e\n\t\n\n\t\n\t\u003cdiv id=\"sidebar-left\" class=\"sidebar\"\u003e\u003c!-- begin sidebar-left --\u003e\n\t\t \u003cdiv class=\"region region-main-sidebar\"\u003e\n \u003cdiv id=\"block-search-form\" class=\"block block-search\"\u003e\n\n \u003ch2\u003esearch\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cform action=\"/\" method=\"post\" id=\"search-block-form\" accept-charset=\"UTF-8\"\u003e\u003cdiv\u003e\u003cdiv class=\"container-inline\"\u003e\n \u003cdiv class=\"form-item form-type-textfield form-item-search-block-form\"\u003e\n \u003clabel class=\"element-invisible\" for=\"edit-search-block-form--2\"\u003eSearch \u003c/label\u003e\n \u003cinput title=\"Enter the terms you wish to search for.\" type=\"text\" id=\"edit-search-block-form--2\" name=\"search_block_form\" value=\"\" size=\"15\" maxlength=\"128\" class=\"form-text\" /\u003e\n\u003c/div\u003e\n\u003cdiv class=\"form-actions form-wrapper\" id=\"edit-actions\"\u003e\u003cinput type=\"submit\" id=\"edit-submit\" name=\"op\" value=\"Search\" class=\"form-submit\" /\u003e\u003c/div\u003e\u003cinput type=\"hidden\" name=\"form_build_id\" value=\"form-jyIPOew0RZy84PhzRFAw-dm-TaTMpnpjCThYR3olBLk\" /\u003e\n\u003cinput type=\"hidden\" name=\"form_id\" value=\"search_block_form\" /\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003c/form\u003e \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-block-6\" class=\"block block-block\"\u003e\n\n \u003ch2\u003ejoin our community\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cp\u003eIscriviti alle nostre \u003ca href=\"/mailing-lists\"\u003emailing lists\u003c/a\u003e, \u003ca href=\"/contact\"\u003econtattaci\u003c/a\u003e, esplora i nostri \u003ca href=\"/teaching\"\u003ecorsi\u003c/a\u003e, controlla le nostre \u003ca href=\"/job-openings\"\u003eofferte di lavoro\u003c/a\u003e, compila il nostro \u003ca href=\"/know-about-you\"\u003eform\u003c/a\u003e per essere aggiornato su future opportunità (come bandi per assegni o borse di ricerca).\u003c/p\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-block-12\" class=\"block block-block\"\u003e\n\n \u003ch2\u003erecommended links\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cp\u003ereadings \u0026amp; links -- \u003ca href=\"/recommended-readings\"\u003eletture selezionate per comprendere Internet\u003c/a\u003e\u003c/p\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n\u003cdiv id=\"block-block-8\" class=\"block block-block\"\u003e\n\n \u003ch2\u003eproject keywords\u003c/h2\u003e\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdl\u003e\n\u003cdd\u003e\u003ca href=\"/psi\"\u003epublic sector innovation\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/open-culture\"\u003epublic domain, the commons and open access\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/internet-monitoring\"\u003einternet monitoring and analysis\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/internet-and-democracy\"\u003efundamental rights online \u0026amp; digital citizenship\u003c/a\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003c!--\u003cdl\u003e\u003cdd\u003e\u003ca href=\"anonimity-open-wifi\"\u003eanonimity online\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/biennaledemocrazia\"\u003einternet e democrazia\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"http://communia-project.eu\"\u003ecommunia EU thematic network\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"http://creativecommons.it/\"\u003ecreative commons italia\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/webgeography\"\u003eweb geography\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/neubot\"\u003enetwork neutrality bot (NeuBot)\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"http://selili.polito.it/\"\u003eservizio licenze libere\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"universita-aperta\"\u003euniversity and democracy\u003c/a\u003e\u003c/dd\u003e\n\u003cdd\u003e\u003ca href=\"/cloud-computing\"\u003ecloud computing\u003c/a\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\u003cp\u003e--\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n\t\u003c/div\u003e\u003c!-- end sidebar-left --\u003e\t\t\t\t\n\n\t\n\n \u003cdiv id=\"footer\"\u003e\n \u003cdiv class=\"region region-footer\"\u003e\n \u003cdiv id=\"block-block-15\" class=\"block block-block\"\u003e\n\n \n \u003cdiv class=\"content headerMainMenuPage\"\u003e\n \n \u003cdiv class=\"footer-box\" id=\"footer-first\"\u003e\nNexa Center for Internet \u0026amp; Society\u003cbr /\u003e\n\u003ca href=\"/contacts\"\u003eVia Boggio, 65/a\u003c/a\u003e 10138 Torino, Italy\u003cbr /\u003e\nPh. +39 011 090 7217 | Fax +39 011 090\u003cbr /\u003e\n7216 | email: info [at] nexa [dot] polito\u003cbr /\u003e\n[dot] it\n\u003c/div\u003e\n\u003cdiv class=\"footer-box\" id=\"footer-second\"\u003e\nIl Centro Nexa è un centro di ricerca\u003cbr /\u003e\ndel \u003ca href=\"http://www.dauin.polito.it\"\u003eDipartimento di Automatica e\u003cbr /\u003e\nInformatica\u003c/a\u003e del \u003ca href=\"http://www.polito.it\"\u003ePolitecnico di Torino\u003c/a\u003e.\n\u003c/div\u003e\n\u003cdiv class=\"footer-box\" id=\"footer-third\"\u003e\n\u003cem\u003eTranne dove \u003ca href=\"/credits\"\u003ealtrimenti indicato\u003c/a\u003e, il\u003cbr /\u003e\ncontenuto di questo sito è rilasciato\u003cbr /\u003e\nsecondo i termini della \u003ca rel=\"licenza\" href=\"http://creativecommons.org/licenses/by/3.0/deed.it\"\u003elicenza Creative\u003cbr /\u003e\nCommons Attribuzione 3.0 Unported\u003c/a\u003e. / Unless otherwise noted this\u003c/em\u003e\n\u003c/div\u003e\n\u003cdiv class=\"footer-box\" id=\"footer-fourth\"\u003e\n\u003cem\u003esite and its contents are licensed\u003cbr /\u003e\nunder the \u003c/em\u003e\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by/3.0/\"\u003eCreative Commons Attribution 3.0 Unported License\u003c/a\u003e.\n\u003cp\u003e\u003ca href=\"/credits\"\u003eCredits\u003c/a\u003e \u003ca class=\"creative-commons\" rel=\"license\" href=\"http://creativecommons.org/licenses/by/3.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by/3.0/88x31.png\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/privacy\"\u003ePolicy sull'utilizzo dei cookie\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\n\n \n\u003c/div\u003e\n \u003c/div\u003e\n \u003c/div\u003e \u003c!-- /#footer --\u003e\n\n \u003c/div\u003e\u003c/div\u003e \u003c!-- /#wrapper, /#container --\u003e\n \u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nwindow.euCookieComplianceLoadScripts = function(category) {}\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n\u003c!--//--\u003e\u003c![CDATA[//\u003e\u003c!--\nwindow.eu_cookie_compliance_cookie_name = \"\";\n//--\u003e\u003c!]]\u003e\n\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"https://nexa.polito.it/nexacenterfiles/js/js_b5uBqrfPrs_UEmgBeVFSOcXgjdijNE3mS-ZnwQ0jdnU.js\"\u003e\u003c/script\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n", - "body_is_truncated": false, - "code": 200, - "headers_list": [ - [ - "Cache-Control", - "public, max-age=3600" - ], - [ - "Content-Language", - "en" - ], - [ - "Content-Type", - "text/html; charset=utf-8" - ], - [ - "Date", - "Thu, 30 Nov 2023 14:43:42 GMT" - ], - [ - "Etag", - "\"1701352574-0\"" - ], - [ - "Expires", - "Sun, 19 Nov 1978 05:00:00 GMT" - ], - [ - "Last-Modified", - "Thu, 30 Nov 2023 13:56:14 GMT" - ], - [ - "Link", - "\u003chttps://nexa.polito.it/\u003e; rel=\"canonical\",\u003chttps://nexa.polito.it/\u003e; rel=\"shortlink\"" - ], - [ - "Server", - "Apache" - ], - [ - "Vary", - "Cookie,Accept-Encoding" - ], - [ - "X-Content-Type-Options", - "nosniff" - ], - [ - "X-Content-Type-Options", - "nosniff" - ], - [ - "X-Drupal-Cache", - "HIT" - ], - [ - "X-Frame-Options", - "SAMEORIGIN" - ], - [ - "X-Generator", - "Drupal 7 (http://drupal.org)" - ] - ], - "headers": { - "Cache-Control": "public, max-age=3600", - "Content-Language": "en", - "Content-Type": "text/html; charset=utf-8", - "Date": "Thu, 30 Nov 2023 14:43:42 GMT", - "Etag": "\"1701352574-0\"", - "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", - "Last-Modified": "Thu, 30 Nov 2023 13:56:14 GMT", - "Link": "\u003chttps://nexa.polito.it/\u003e; rel=\"canonical\",\u003chttps://nexa.polito.it/\u003e; rel=\"shortlink\"", - "Server": "Apache", - "Vary": "Cookie,Accept-Encoding", - "X-Content-Type-Options": "nosniff", - "X-Drupal-Cache": "HIT", - "X-Frame-Options": "SAMEORIGIN", - "X-Generator": "Drupal 7 (http://drupal.org)" - } - }, - "t0": 0.251752, - "t": 0.314948, - "tags": [ - "depth=1", - "fetch_body=true" - ], - "transaction_id": 6 - }, - { - "network": "tcp", - "address": "130.192.16.171:80", - "failure": null, - "request": { - "body": "", - "body_is_truncated": false, - "headers_list": [ - [ - "Accept", - "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" - ], - [ - "Accept-Language", - "en-US,en;q=0.9" - ], - [ - "Host", - "nexa.polito.it" - ], - [ - "Referer", - "" - ], - [ - "User-Agent", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" - ] - ], - "headers": { - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", - "Accept-Language": "en-US,en;q=0.9", - "Host": "nexa.polito.it", - "Referer": "", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" - }, - "method": "GET", - "tor": { - "exit_ip": null, - "exit_name": null, - "is_tor": false - }, - "x_transport": "tcp", - "url": "http://nexa.polito.it/" - }, - "response": { - "body": "\u003c!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\"\u003e\n\u003chtml\u003e\u003chead\u003e\n\u003ctitle\u003e301 Moved Permanently\u003c/title\u003e\n\u003c/head\u003e\u003cbody\u003e\n\u003ch1\u003eMoved Permanently\u003c/h1\u003e\n\u003cp\u003eThe document has moved \u003ca href=\"https://nexa.polito.it/\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003c/body\u003e\u003c/html\u003e\n", - "body_is_truncated": false, - "code": 301, - "headers_list": [ - [ - "Content-Length", - "231" - ], - [ - "Content-Type", - "text/html; charset=iso-8859-1" - ], - [ - "Date", - "Thu, 30 Nov 2023 14:43:42 GMT" - ], - [ - "Location", - "https://nexa.polito.it/" - ], - [ - "Server", - "Apache" - ] - ], - "headers": { - "Content-Length": "231", - "Content-Type": "text/html; charset=iso-8859-1", - "Date": "Thu, 30 Nov 2023 14:43:42 GMT", - "Location": "https://nexa.polito.it/", - "Server": "Apache" - } - }, - "t0": 0.167227, - "t": 0.193609, - "tags": [ - "depth=0", - "fetch_body=true" - ], - "transaction_id": 4 - } - ], - "tcp_connect": [ - { - "ip": "130.192.16.171", - "port": 443, - "status": { - "blocked": false, - "failure": null, - "success": true - }, - "t0": 0.118012, - "t": 0.167065, - "tags": [ - "depth=0", - "fetch_body=false" - ], - "transaction_id": 5 - }, - { - "ip": "130.192.16.171", - "port": 80, - "status": { - "blocked": false, - "failure": null, - "success": true - }, - "t0": 0.118294, - "t": 0.167065, - "tags": [ - "depth=0", - "fetch_body=true" - ], - "transaction_id": 4 - }, - { - "ip": "130.192.16.171", - "port": 443, - "status": { - "blocked": false, - "failure": null, - "success": true - }, - "t0": 0.193827, - "t": 0.21994, - "tags": [ - "depth=1", - "fetch_body=true" - ], - "transaction_id": 6 - } - ], - "tls_handshakes": [ - { - "network": "tcp", - "address": "130.192.16.171:443", - "cipher_suite": "TLS_AES_256_GCM_SHA384", - "failure": null, - "negotiated_protocol": "http/1.1", - "no_tls_verify": false, - "peer_certificates": [ - { - "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", - "format": "base64" - }, - { - "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", - "format": "base64" - }, - { - "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", - "format": "base64" - } - ], - "server_name": "nexa.polito.it", - "t0": 0.16714, - "t": 0.204679, - "tags": [ - "depth=0", - "fetch_body=false" - ], - "tls_version": "TLSv1.3", - "transaction_id": 5 - }, - { - "network": "tcp", - "address": "130.192.16.171:443", - "cipher_suite": "TLS_AES_256_GCM_SHA384", - "failure": null, - "negotiated_protocol": "http/1.1", - "no_tls_verify": false, - "peer_certificates": [ - { - "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", - "format": "base64" - }, - { - "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", - "format": "base64" - }, - { - "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", - "format": "base64" - } - ], - "server_name": "nexa.polito.it", - "t0": 0.219982, - "t": 0.251655, - "tags": [ - "depth=1", - "fetch_body=true" - ], - "tls_version": "TLSv1.3", - "transaction_id": 6 - } - ], - "x_control_request": { - "http_request": "http://nexa.polito.it/", - "http_request_headers": { - "Accept": [ - "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" - ], - "Accept-Language": [ - "en-US,en;q=0.9" - ], - "User-Agent": [ - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" - ] - }, - "tcp_connect": [ - "130.192.16.171:443", - "130.192.16.171:80" - ], - "x_quic_enabled": false - }, - "control": { - "tcp_connect": { - "130.192.16.171:443": { - "status": true, - "failure": null - }, - "130.192.16.171:80": { - "status": true, - "failure": null - } - }, - "tls_handshake": { - "130.192.16.171:443": { - "server_name": "nexa.polito.it", - "status": true, - "failure": null - } - }, - "quic_handshake": {}, - "http_request": { - "body_length": 36564, - "discovered_h3_endpoint": "", - "failure": null, - "title": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", - "headers": { - "Cache-Control": "public, max-age=3600", - "Content-Language": "en", - "Content-Type": "text/html; charset=utf-8", - "Date": "Thu, 30 Nov 2023 14:43:43 GMT", - "Etag": "\"1701352574-0\"", - "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", - "Last-Modified": "Thu, 30 Nov 2023 13:56:14 GMT", - "Link": "\u003chttps://nexa.polito.it/\u003e; rel=\"canonical\",\u003chttps://nexa.polito.it/\u003e; rel=\"shortlink\"", - "Server": "Apache", - "Vary": "Cookie,Accept-Encoding", - "X-Content-Type-Options": "nosniff", - "X-Drupal-Cache": "HIT", - "X-Frame-Options": "SAMEORIGIN", - "X-Generator": "Drupal 7 (http://drupal.org)" - }, - "status_code": 200 - }, - "http3_request": null, - "dns": { - "failure": null, - "addrs": [ - "130.192.16.171" - ] - }, - "ip_info": { - "130.192.16.171": { - "asn": 137, - "flags": 11 - } - } - }, - "x_conn_priority_log": [ - { - "msg": "create with [{Addr:130.192.16.171 Flags:7}]", - "t": 0.117228 - }, - { - "msg": "conn 130.192.16.171:80: granted permission: true", - "t": 0.167115 - }, - { - "msg": "create with [{Addr:130.192.16.171 Flags:7}]", - "t": 0.193762 - }, - { - "msg": "conn 130.192.16.171:443: granted permission: true", - "t": 0.251689 - } - ], - "control_failure": null, - "x_dns_flags": 0, - "dns_experiment_failure": null, - "dns_consistency": "consistent", - "http_experiment_failure": null, - "x_blocking_flags": 32, - "x_null_null_flags": 0, - "body_length_match": null, - "headers_match": null, - "status_code_match": null, - "title_match": null, - "blocking": false, - "accessible": true - }, - "test_name": "web_connectivity", - "test_runtime": 1.648913625, - "test_start_time": "2023-11-30 14:43:42", - "test_version": "0.5.26" + "annotations": { + "architecture": "arm64", + "engine_name": "ooniprobe-engine", + "engine_version": "3.20.0-alpha", + "go_version": "go1.20.11", + "platform": "macos", + "vcs_modified": "true", + "vcs_revision": "1eaaac071af3411a63e55edcf4269d41c5c77d63", + "vcs_time": "2023-11-27T16:55:20Z", + "vcs_tool": "git" + }, + "data_format_version": "0.2.0", + "extensions": { + "dnst": 0, + "httpt": 0, + "netevents": 0, + "tcpconnect": 0, + "tlshandshake": 0, + "tunnel": 0 + }, + "input": "https://nexa.polito.it/", + "measurement_start_time": "2023-11-27 17:05:00", + "probe_asn": "AS30722", + "probe_cc": "IT", + "probe_ip": "127.0.0.1", + "probe_network_name": "Vodafone Italia S.p.A.", + "report_id": "20231127T170500Z_webconnectivity_IT_30722_n1_keQcbSW2K4LoWC9c", + "resolver_asn": "AS30722", + "resolver_ip": "91.80.36.88", + "resolver_network_name": "Vodafone Italia S.p.A.", + "software_name": "miniooni", + "software_version": "3.20.0-alpha", + "test_helpers": { + "backend": { + "address": "https://1.th.ooni.org", + "type": "https" + } + }, + "test_keys": { + "agent": "redirect", + "client_resolver": "", + "retries": null, + "socksproxy": null, + "network_events": [ + { + "address": "130.192.16.171:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.093297, + "t": 0.154834, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.15486, + "t": 0.15486, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 280, + "operation": "write", + "proto": "tcp", + "t0": 0.155095, + "t": 0.15513, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.155134, + "t": 0.18851, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 3957, + "operation": "read", + "proto": "tcp", + "t0": 0.188732, + "t": 0.188772, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 80, + "operation": "write", + "proto": "tcp", + "t0": 0.193892, + "t": 0.193915, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.193924, + "t": 0.193924, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_start", + "t0": 0.193968, + "t": 0.193968, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 304, + "operation": "write", + "proto": "tcp", + "t0": 0.194091, + "t": 0.194109, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 158, + "operation": "read", + "proto": "tcp", + "t0": 0.194948, + "t": 0.226114, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 4864, + "operation": "read", + "proto": "tcp", + "t0": 0.226159, + "t": 0.236533, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 3776, + "operation": "read", + "proto": "tcp", + "t0": 0.236932, + "t": 0.236965, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 2880, + "operation": "read", + "proto": "tcp", + "t0": 0.236969, + "t": 0.237599, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 5760, + "operation": "read", + "proto": "tcp", + "t0": 0.237604, + "t": 0.257691, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 4320, + "operation": "read", + "proto": "tcp", + "t0": 0.257839, + "t": 0.268806, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 15698, + "operation": "read", + "proto": "tcp", + "t0": 0.268812, + "t": 0.270366, + "transaction_id": 4 + }, + { + "failure": null, + "operation": "http_transaction_done", + "t0": 0.270579, + "t": 0.270579, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.270868, + "t": 0.270917, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.270564, + "t": 0.271008, + "transaction_id": 4 + }, + { + "address": "130.192.16.171:443", + "failure": null, + "num_bytes": 41989, + "operation": "bytes_received_cumulative", + "proto": "tcp", + "t0": 0.271046, + "t": 0.271046, + "transaction_id": 4 + } + ], + "x_dns_whoami": { + "system_v4": [ + { + "address": "91.80.36.88" + } + ], + "udp_v4": { + "8.8.4.4:53": [ + { + "address": "91.80.36.88" + } + ] + } + }, + "x_doh": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.000834, + "t": 0.000834, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "operation": "connect", + "proto": "tcp", + "t0": 0.004079, + "t": 0.020861, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_start", + "t0": 0.020896, + "t": 0.020896, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 276, + "operation": "write", + "proto": "tcp", + "t0": 0.02106, + "t": 0.021101, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 576, + "operation": "read", + "proto": "tcp", + "t0": 0.021114, + "t": 0.054429, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 3856, + "operation": "read", + "proto": "tcp", + "t0": 0.054733, + "t": 0.054765, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 64, + "operation": "write", + "proto": "tcp", + "t0": 0.060409, + "t": 0.060486, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "tls_handshake_done", + "t0": 0.060502, + "t": 0.060502, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 86, + "operation": "write", + "proto": "tcp", + "t0": 0.060567, + "t": 0.060596, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 161, + "operation": "write", + "proto": "tcp", + "t0": 0.060688, + "t": 0.060714, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.060728, + "t": 0.060745, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 38, + "operation": "write", + "proto": "tcp", + "t0": 0.060776, + "t": 0.060812, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 159, + "operation": "write", + "proto": "tcp", + "t0": 0.060933, + "t": 0.060954, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 93, + "operation": "read", + "proto": "tcp", + "t0": 0.060649, + "t": 0.077923, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 31, + "operation": "write", + "proto": "tcp", + "t0": 0.077966, + "t": 0.078012, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 283, + "operation": "read", + "proto": "tcp", + "t0": 0.078024, + "t": 0.089493, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 1182, + "operation": "read", + "proto": "tcp", + "t0": 0.089627, + "t": 0.090785, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 39, + "operation": "write", + "proto": "tcp", + "t0": 0.090846, + "t": 0.090883, + "transaction_id": 2 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.09104, + "t": 0.09104, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": null, + "num_bytes": 24, + "operation": "write", + "proto": "tcp", + "t0": 0.091081, + "t": 0.091123, + "transaction_id": 2 + }, + { + "address": "8.8.4.4:443", + "failure": "connection_already_closed", + "operation": "read", + "proto": "tcp", + "t0": 0.09094, + "t": 0.091199, + "transaction_id": 2 + } + ], + "queries": [ + { + "answers": [ + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8888", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "AAAA", + "ipv6": "2001:4860:4860::8844", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.4.4", + "ttl": null + }, + { + "asn": 15169, + "as_org_name": "Google LLC", + "answer_type": "A", + "ipv4": "8.8.8.8", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "dns.google.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "dns.google", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.001062, + "t": 0.002296, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [], + "tcp_connect": [ + { + "ip": "8.8.4.4", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.004079, + "t": 0.020861, + "tags": [], + "transaction_id": 2 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "8.8.4.4:443", + "cipher_suite": "TLS_AES_128_GCM_SHA256", + "failure": null, + "negotiated_protocol": "h2", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIFGDCCBACgAwIBAgIQV9EpXtZaAjIK1doVgAiHbDANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMzEwMjMxMTI1MDlaFw0yNDAxMTUxMTI1MDhaMBUxEzARBgNVBAMTCmRucy5nb29nbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS/h4r6JssCIvWEJSayKcnU8yd62kOQ4nX+ra3QCso7RsHWaa0cdXRD4Dlhp5zsPurOwO5eSiB8rh43WszpRlHio4IC/DCCAvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAxKBjtasHcGqzIQq1F88UFwyR+AMB8GA1UdIwQYMBaAFIp0f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8vcGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMIGsBgNVHREEgaQwgaGCCmRucy5nb29nbGWCDmRucy5nb29nbGUuY29tghAqLmRucy5nb29nbGUuY29tggs4ODg4Lmdvb2dsZYIQZG5zNjQuZG5zLmdvb2dsZYcECAgICIcECAgEBIcQIAFIYEhgAAAAAAAAAACIiIcQIAFIYEhgAAAAAAAAAACIRIcQIAFIYEhgAAAAAAAAAABkZIcQIAFIYEhgAAAAAAAAAAAAZDAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAdZ5AgUDMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmxzLnBraS5nb29nL2d0czFjMy9mVkp4YlYtS3Rtay5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYtcfwTwAAAEAwBHMEUCIEa9qmHU71YRD8ZX1TSa2jBiONx20tbOJlk8dj3j1FV8AiEAxglkfgFJCkauQvmgI8g0roFLWm4MBVLlOHt828bwJtQAdwDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAYtcfwT6AAAEAwBIMEYCIQDNd9M5OMbThgFYWdEAdVYUI0MreFE0mHYFf2WhYRLRuQIhAO5KcKJoPcn7i+9SrNgHLof5JHywjWdTBr/Fct5NtqpyMA0GCSqGSIb3DQEBCwUAA4IBAQBpMDRC5q9XalL82MimRvztLMrsU4AZ38z2Kohm2wvvjF25MBwIUzI5xxYE7TFCVocdImxYY9izdvs0F3jVzYmWVyu6lvXYqMeAZf0j7YqvoXNm3rRgwgZkuviikmKJfR0E7Dy6Fyu3c+IVx62aOwDooOrjdjdkLoDQdcOCBU26IniROrScN4O8zHoZ7qVYwAFRS/a8A27loqz3oNzXm5UC5490tU0mtiqIHJR8Gzsa0s8C1vHhLkYb6lcxw4UnP7wfIjyyD9Ene6a0iwOa6y2MvH+7GGAD5pfUg2mE3eYvatYaE9hP/TiAkGP27+OhSFhpSRZgZIik3yXwAndd60Wl", + "format": "base64" + }, + { + "data": "MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjAwODEzMDAwMDQyWhcNMjcwOTMwMDAwMDQyWjBGMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzETMBEGA1UEAxMKR1RTIENBIDFDMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPWI3+dijB43+DdCkH9sh9D7ZYIl/ejLa6T/belaI+KZ9hzpkgOZE3wJCor6QtZeViSqejOEH9Hpabu5dOxXTGZok3c3VVP+ORBNtzS7XyV3NzsXlOo85Z3VvMO0Q+sup0fvsEQRY9i0QYXdQTBIkxu/t/bgRQIh4JZCF8/ZK2VWNAcmBA2o/X3KLu/qSHw3TT8An4Pf73WELnlXXPxXbhqW//yMmqaZviXZf5YsBvcRKgKAgOtjGDxQSYflispfGStZloEAoPtR28p3CwvJlk/vcEnHXG0g/Zm0tOLKLnf9LdwLtmsTDIwZKxeWmLnwi/agJ7u2441Rj72ux5uxiZ0CAwEAAaOCAYAwggF8MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUinR/r4XN7pXNPZzQ4kYU83E1HScwHwYDVR0jBBgwFoAU5K8rJnEaK0gnhS9SZizv8IkTcT4waAYIKwYBBQUHAQEEXDBaMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHNyMTAwBggrBgEFBQcwAoYkaHR0cDovL3BraS5nb29nL3JlcG8vY2VydHMvZ3RzcjEuZGVyMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwucGtpLmdvb2cvZ3RzcjEvZ3RzcjEuY3JsMFcGA1UdIARQME4wOAYKKwYBBAHWeQIFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3BraS5nb29nL3JlcG9zaXRvcnkvMAgGBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggIBAIl9rCBcDDy+mqhXlRu0rvqrpXJxtDaV/d9AEQNMwkYUuxQkq/BQcSLbrcRuf8/xam/IgxvYzolfh2yHuKkMo5uhYpSTld9brmYZCwKWnvy15xBpPnrLRklfRuFBsdeYTWU0AIAaP0+fbH9JAIFTQaSSIYKCGvGjRFsqUBITTcFTNvNCCK9U+o53UxtkOCcXCb1YyRt8OS1b887U7ZfbFAO/CVMkH8IMBHmYJvJh8VNS/UKMG2YrPxWhu//2m+OBmgEGcYk1KCTd4b3rGS3hSMs9WYNRtHTGnXzGsYZbr8w0xNPM1IERlQCh9BIiAfq0g3GvjLeMcySsN1PCAJA/Ef5c7TaUEDu9Ka7ixzpiO2xj2YC/WXGsYye5TBeg2vZzFb8q3o/zpWwygTMD0IZRcZk0upONXbVRWPeyk+gB9lm+cZv9TSjOz23HFtz30dZGm6fKa+l3D/2gthsjgx0QGtkJAITgRNOidSOzNIb2ILCkXhAd4FJGAJ2xDx8hcFH1mt0G/FX0Kw4zd8NLQsLxdxP8c4CU6x+7Nz/OAipmsHMdMqUybDKwjuDEI/9bfU1lcKwrmz3O2+BtjjKAvpafkmO8l7tdufThcV4q5O8DIrGKZTqPwJNl1IXNDw9bg1kWRxYtnCQ6yICmJhSFm/Y3m6xv+cXDBlHz4n/FsRC6UfTd", + "format": "base64" + }, + { + "data": "MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYxOTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoTGUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwSiV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351kKSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZDrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zkj5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esWCruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35EiEua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbapsZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAfBgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUHMAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAyMAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIFAwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy+qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvid0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=", + "format": "base64" + } + ], + "server_name": "dns.google", + "t0": 0.020896, + "t": 0.060502, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 2 + } + ] + }, + "x_do53": { + "network_events": [ + { + "failure": null, + "operation": "resolve_start", + "t0": 0.0008, + "t": 0.0008, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001301, + "t": 0.001329, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 32, + "operation": "write", + "proto": "udp", + "t0": 0.001311, + "t": 0.001371, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 48, + "operation": "read", + "proto": "udp", + "t0": 0.001361, + "t": 0.030029, + "transaction_id": 3 + }, + { + "address": "8.8.4.4:53", + "failure": null, + "num_bytes": 82, + "operation": "read", + "proto": "udp", + "t0": 0.001417, + "t": 0.031817, + "transaction_id": 3 + }, + { + "failure": null, + "operation": "resolve_done", + "t0": 0.03185, + "t": 0.03185, + "transaction_id": 3 + } + ], + "queries": [] + }, + "x_dns_duplicate_responses": [], + "queries": [ + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "udp", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "9ESBgAABAAEAAAAABG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAVGAAASCwBCr", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.001128, + "t": 0.030047, + "tags": [], + "transaction_id": 3 + }, + { + "answers": null, + "engine": "udp", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "4dCBgAABAAAAAQAABG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAACowACYIbGVvbmFyZG/AEQRyb290wCx4lj/+AAAqMAAABwgAEnUAAAFRgA==", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "8.8.4.4:53", + "t0": 0.000817, + "t": 0.031832, + "tags": [], + "transaction_id": 3 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + }, + { + "answer_type": "CNAME", + "hostname": "nexa.polito.it.", + "ttl": null + } + ], + "engine": "getaddrinfo", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "ANY", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "", + "t0": 0.000639, + "t": 0.032278, + "tags": [], + "transaction_id": 1 + }, + { + "answers": [ + { + "asn": 137, + "as_org_name": "Consortium GARR", + "answer_type": "A", + "ipv4": "130.192.16.171", + "ttl": null + } + ], + "engine": "doh", + "failure": null, + "hostname": "nexa.polito.it", + "query_type": "A", + "raw_response": "IHGBgAABAAEAAAABBG5leGEGcG9saXRvAml0AAABAAHADAABAAEAAFRgAASCwBCrAAApAgAAAIAAAZkADAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.001105, + "t": 0.090905, + "tags": [], + "transaction_id": 2 + }, + { + "answers": null, + "engine": "doh", + "failure": "dns_no_answer", + "hostname": "nexa.polito.it", + "query_type": "AAAA", + "raw_response": "zmOBgAABAAAAAQABBG5leGEGcG9saXRvAml0AAAcAAHAEQAGAAEAAAcIACYIbGVvbmFyZG/AEQRyb290wCx4lj/+AAAqMAAABwgAEnUAAAFRgAAAKQIAAACAAAF3AAwBcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "resolver_hostname": null, + "resolver_port": null, + "resolver_address": "https://dns.google/dns-query", + "t0": 0.000872, + "t": 0.091008, + "tags": [], + "transaction_id": 2 + } + ], + "requests": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "alpn": "http/1.1", + "failure": null, + "request": { + "body": "", + "body_is_truncated": false, + "headers_list": [ + [ + "Accept", + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + [ + "Accept-Language", + "en-US,en;q=0.9" + ], + [ + "Host", + "nexa.polito.it" + ], + [ + "Referer", + "" + ], + [ + "User-Agent", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + ] + ], + "headers": { + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "en-US,en;q=0.9", + "Host": "nexa.polito.it", + "Referer": "", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[scrubbed] Safari/537.36" + }, + "method": "GET", + "tor": { + "exit_ip": null, + "exit_name": null, + "is_tor": false + }, + "x_transport": "tcp", + "url": "https://nexa.polito.it/" + }, + "response": { + "body": "\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino\n \n\n\n\n \n\n\n\n\n\n\n\n\n\n \n \n\n\n\n\n
\n
\n \n\n
\n\t\n\t\n\t\t\t\t\t\t
\n\t\t\t\t\"Nexa\n\t\t\t
\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\t
\n
\n\n \n
\n \n
\"RSS
\n
\"Mail\"
\n
\"Communia
\n
\"Nexa
\n
\"Nexa
\n
\"Nexa
\n
\"github
\n
\n\n\n \n
\n
\n\t\t\t\t\t\n\t\t\t \n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
\n \n
\n\t\t\t
\n\t\t\t\n\t\t\t \t\t\t\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t\t\t\n\n
\n\n \n\t \n\t\t\t\t\t
\n\t\t \n \n\t\t\t\t\n\t\n\t
\n\t\t
\n\n\t\t\t\n\t\t\t\t\t\n\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\n\n\t\t\t\n\t\t\t
\t\t\t\n\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t \n\t\t\t \n\t\t\t\t
\n
\n\n \n
\n \n
\n \n \n \n
\n \n
\n
\n\n\n\n
    \n \t
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    Il nuovo saggio del co-direttore del Centro Nexa Juan Carlo De Martin

    \nData di uscita: 22 settembre 2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\t

    \n\t\t\tevents \t\t\t

    \n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    15 dicembre 2023

    \nTwitter hashtag della conferenza: #nexa2023
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t

    \n\t\t\tnews \t\t\t

    \n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    L'intervista di Dealogando al co-direttore del Centro Nexa Maurizio Borghi
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    22 novembre 2023

    \nGIACOMO PISANI (Euricse)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    8 novembre 2023

    \nGUGLIELMO TAMBURRINI (Università di Napoli Federico II)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\t\t\t

    \n\t\t\tlunch seminar \t\t\t

    \n\t\t\n\n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    25 ottobre 2023

    \nLORENZO LAUDADIO (Politecnico di Torino)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
  • \t
    \n\t\t\n\t\t\t\n\t\t\n\n\t\t\t\t\t

    \n\t\t\tmercoledì di nexa \t\t\t

    \n\t\t\t\t\n\t\t\n\t\t\n\t\t\t\t\n\n\t\t\n\t\t\t\t\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \"\"
    \t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    11 ottobre 2023

    \nSTEVEN UMBRELLO (Institute for Ethics and Emerging Technologies)
    \n \n
    \t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tmore >\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\n\t\t\t
    \n
  • \n
\n\n\n\n
\n
\n\n\n\n\n
\n \n

Pages

\n \n \n \n \n
\n\n\n \n
\n
\n \n\t\t\t \n\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\n\t\t\t \n\t\t
\n \n\t\t\n\t\t\t
\n\t\t\t\t\t\t\t\t
\n
\n\n

Upcoming events

\n \n
\n \n
\n \n \n \n
\n
\n

December

13

2023

\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t
\t\t\n\t
\n\t \n\n\n\t\n\t \n\n\n\t
\n\n\n\t\t\t\t \n\t\t\n\t\t\t\nPer il ciclo di incontri “i Mercoledì di Nexa” (ogni 2° mercoledì del mese) \n167° Mercoledì di Nexa\nInternet fatta a pezzi\nSovranità digitale,...\t\t\n\t
\n\t \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\n

Recent Publications

\n \n
\n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n
\n\n\n \n
\n
\n\t\t\t
\n\t\t \n\n\t
\n \n\t\t\t
\n\t\n\n\t\n\t
\n\t\t
\n
\n\n

search

\n \n
\n \n
\n
\n \n \n
\n
\n\n
\n
\n\n\n \n
\n
\n\n

join our community

\n \n
\n \n

Iscriviti alle nostre mailing lists, contattaci, esplora i nostri corsi, controlla le nostre offerte di lavoro, compila il nostro form per essere aggiornato su future opportunità (come bandi per assegni o borse di ricerca).

\n
\n\n\n \n
\n
\n\n

recommended links

\n \n \n\n\n \n
\n\n
\n\t
\t\t\t\t\n\n\t\n\n
\n
\n
\n\n \n
\n \n
\nNexa Center for Internet & Society
\nVia Boggio, 65/a 10138 Torino, Italy
\nPh. +39 011 090 7217 | Fax +39 011 090
\n7216 | email: info [at] nexa [dot] polito
\n[dot] it\n
\n
\nIl Centro Nexa è un centro di ricerca
\ndel Dipartimento di Automatica e
\nInformatica
del Politecnico di Torino.\n
\n
\nTranne dove altrimenti indicato, il
\ncontenuto di questo sito è rilasciato
\nsecondo i termini della licenza Creative
\nCommons Attribuzione 3.0 Unported
. / Unless otherwise noted this
\n
\n\n
\n\n\n \n
\n
\n
\n\n
\n \n\n\n\n\n", + "body_is_truncated": false, + "code": 200, + "headers_list": [ + [ + "Cache-Control", + "public, max-age=3600" + ], + [ + "Content-Language", + "en" + ], + [ + "Content-Type", + "text/html; charset=utf-8" + ], + [ + "Date", + "Mon, 27 Nov 2023 17:04:59 GMT" + ], + [ + "Etag", + "\"1701103514-0\"" + ], + [ + "Expires", + "Sun, 19 Nov 1978 05:00:00 GMT" + ], + [ + "Last-Modified", + "Mon, 27 Nov 2023 16:45:14 GMT" + ], + [ + "Link", + "; rel=\"canonical\",; rel=\"shortlink\"" + ], + [ + "Server", + "Apache" + ], + [ + "Vary", + "Cookie,Accept-Encoding" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Content-Type-Options", + "nosniff" + ], + [ + "X-Drupal-Cache", + "HIT" + ], + [ + "X-Frame-Options", + "SAMEORIGIN" + ], + [ + "X-Generator", + "Drupal 7 (http://drupal.org)" + ] + ], + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 17:04:59 GMT", + "Etag": "\"1701103514-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", + "Link": "; rel=\"canonical\",; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + } + }, + "t0": 0.193968, + "t": 0.270579, + "tags": [], + "transaction_id": 4 + } + ], + "tcp_connect": [ + { + "ip": "130.192.16.171", + "port": 443, + "status": { + "failure": null, + "success": true + }, + "t0": 0.093297, + "t": 0.154834, + "tags": [], + "transaction_id": 4 + } + ], + "tls_handshakes": [ + { + "network": "tcp", + "address": "130.192.16.171:443", + "cipher_suite": "TLS_AES_256_GCM_SHA384", + "failure": null, + "negotiated_protocol": "http/1.1", + "no_tls_verify": false, + "peer_certificates": [ + { + "data": "MIIE6jCCA9KgAwIBAgISBFZAokdZbIYMk8UEQfda7OD0MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yMzExMjYyMTU3NDZaFw0yNDAyMjQyMTU3NDVaMBkxFzAVBgNVBAMTDm5leGEucG9saXRvLml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT5S9vysl7/q/mlUTELHA/85n/HPM2IPOMIbCWfDssRt83yX7dhy2KYk8SdaRNSb2h9FK8tUeWEu9n4mDgbEtDdHfxB4nLWY78zce9b8v3vUwCkKZgEKRS8ZB32wG+AJbOHn5Ds9G/KFdWFcsaJQ+jwLBMqmkjLna8yJ5ZwM8oo/n+IJQ8HEp5+oT7y+QNBrouv2yhBHKch7f7kaVTgtScwW1CM9WvomMemvqvvAY/PGXsa2XbBLuOR6XgMFNnH9wUFazUDXwYYJ8LYfratZO2K8PT1eq0l+SFocPVa09axmc/bbCQbzj6y2C/g8f1LhdrXj8LM2+ptHTO5ZB91YDwIDAQABo4ICETCCAg0wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRUZYql9vA0pcfbTQG0Id9tiKxlEjAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzAZBgNVHREEEjAQgg5uZXhhLnBvbGl0by5pdDATBgNVHSAEDDAKMAgGBmeBDAECATCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2AEiw42vapkc0D+VqAvqdMOscUgHLVt0sgdm7v6s52IRzAAABjA3aaEkAAAQDAEcwRQIhALTycpqlJItldS4D4ctuQ9f09H3UZt/6oLwW/CNsqrUxAiBBEXQ0dqDr3dUhpAQ453EJjMw+x6q/CQCn5YDGOYvJmQB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABjA3aaFEAAAQDAEgwRgIhAIIaT+IKrkJNJr6pGYgkARd5f4V/OPFdMTIdUbxDUK/hAiEA4t7hJKXi4ynSTW56DXWZSdiCx4Yr4lQW6sNKktd1fqMwDQYJKoZIhvcNAQELBQADggEBALF05LJnguNww36BYN/zTZVM9/UtHoX35Qa746Mn5//YYv6oxa57Ic8yUUGbUxvMUBzkCl3Fhkt3Qa74D6X5tH5bBVLPsy3h7fFZt7mcSM+rXMLFTfJolnfsbhp8esfdVCLsgpuTU9QFQFXalsZTFnlkUwfZF8IzuU0hNRr//pYHy38nXXsLVLNY7y/ivEKuxMWvO5Re5dxafReOCBssPVeEJAoQb21nfOkUh/8HZpi2uPxasRZrLE/jhaVMivzbTPX9baEsyA/gRWmr4+6TlvlB8xe3zCLgI3XTEene+umZ+z5x0grCIgX4v6P7AR0VuahzY1tlnVa+zYkksdWxO5M=", + "format": "base64" + }, + { + "data": "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==", + "format": "base64" + }, + { + "data": "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XCov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpLwYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+DLtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5ysR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZXmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBcSLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2qlPRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TNDTwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26ZtuMA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuGWCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9Ohe8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFCDfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5", + "format": "base64" + } + ], + "server_name": "nexa.polito.it", + "t0": 0.15486, + "t": 0.193924, + "tags": [], + "tls_version": "TLSv1.3", + "transaction_id": 4 + } + ], + "x_control_request": { + "http_request": "https://nexa.polito.it/", + "http_request_headers": { + "Accept": [ + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + ], + "Accept-Language": [ + "en-US,en;q=0.9" + ], + "User-Agent": [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" + ] + }, + "tcp_connect": [ + "130.192.16.171:443", + "130.192.16.171:80" + ], + "x_quic_enabled": false + }, + "control": { + "tcp_connect": { + "130.192.16.171:443": { + "status": true, + "failure": null + } + }, + "tls_handshake": { + "130.192.16.171:443": { + "server_name": "nexa.polito.it", + "status": true, + "failure": null + } + }, + "quic_handshake": {}, + "http_request": { + "body_length": 36564, + "discovered_h3_endpoint": "", + "failure": null, + "title": "Nexa Center for Internet & Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", + "headers": { + "Cache-Control": "public, max-age=3600", + "Content-Language": "en", + "Content-Type": "text/html; charset=utf-8", + "Date": "Mon, 27 Nov 2023 17:05:00 GMT", + "Etag": "\"1701103514-0\"", + "Expires": "Sun, 19 Nov 1978 05:00:00 GMT", + "Last-Modified": "Mon, 27 Nov 2023 16:45:14 GMT", + "Link": "; rel=\"canonical\",; rel=\"shortlink\"", + "Server": "Apache", + "Vary": "Cookie,Accept-Encoding", + "X-Content-Type-Options": "nosniff", + "X-Drupal-Cache": "HIT", + "X-Frame-Options": "SAMEORIGIN", + "X-Generator": "Drupal 7 (http://drupal.org)" + }, + "status_code": 200 + }, + "http3_request": null, + "dns": { + "failure": null, + "addrs": [ + "130.192.16.171" + ] + }, + "ip_info": { + "130.192.16.171": { + "asn": 137, + "flags": 11 + } + } + }, + "x_conn_priority_log": [ + { + "msg": "create with [{Addr:130.192.16.171 Flags:7}]", + "t": 0.091374 + }, + { + "msg": "conn 130.192.16.171:443: granted permission: true", + "t": 0.193943 + } + ], + "control_failure": null, + "x_dns_flags": 0, + "dns_experiment_failure": null, + "dns_consistency": "consistent", + "http_experiment_failure": null, + "x_blocking_flags": 32, + "x_null_null_flags": 0, + "body_length_match": true, + "headers_match": true, + "status_code_match": true, + "title_match": true, + "blocking": false, + "accessible": true + }, + "test_name": "web_connectivity", + "test_runtime": 1.417294625, + "test_start_time": "2023-11-27 17:04:58", + "test_version": "0.5.26" } diff --git a/internal/cmd/minipipeline/testdata/observations.json b/internal/cmd/minipipeline/testdata/observations.json index 2551edd3c5..642f0b4900 100644 --- a/internal/cmd/minipipeline/testdata/observations.json +++ b/internal/cmd/minipipeline/testdata/observations.json @@ -1,12 +1,7 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, + "DNSTransactionID": 3, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "dns_no_answer", "DNSQueryType": "AAAA", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,12 +42,7 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, + "DNSTransactionID": 2, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "dns_no_answer", "DNSQueryType": "AAAA", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -91,12 +85,7 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, + "DNSTransactionID": 3, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": "A", @@ -123,6 +112,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -137,11 +128,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", @@ -169,6 +155,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -183,12 +171,7 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, + "DNSTransactionID": 2, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": "A", @@ -215,6 +198,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -231,12 +216,7 @@ ], "KnownTCPEndpoints": { "4": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 2, + "DNSTransactionID": 3, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": null, @@ -249,134 +229,6 @@ "IPAddressBogon": false, "EndpointTransactionID": 4, "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.16.171:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://nexa.polito.it/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 301, - "HTTPResponseBodyLength": 231, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Content-Type": true, - "Date": true, - "Location": true, - "Server": true - }, - "HTTPResponseLocation": "https://nexa.polito.it/", - "HTTPResponseTitle": "301 Moved Permanently", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - "5": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.16.171:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "nexa.polito.it", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", "EndpointPort": "443", "EndpointAddress": "130.192.16.171:443", "TCPConnectFailure": "", @@ -406,6 +258,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", "HTTPResponseIsFinal": true, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/cmd/minipipeline/testdata/observations_classic.json b/internal/cmd/minipipeline/testdata/observations_classic.json index 17213de023..1f271e99be 100644 --- a/internal/cmd/minipipeline/testdata/observations_classic.json +++ b/internal/cmd/minipipeline/testdata/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,12 +47,7 @@ ], "KnownTCPEndpoints": { "4": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 2, + "DNSTransactionID": 3, "DNSDomain": "nexa.polito.it", "DNSLookupFailure": "", "DNSQueryType": null, @@ -68,134 +60,6 @@ "IPAddressBogon": false, "EndpointTransactionID": 4, "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.16.171:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://nexa.polito.it/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 301, - "HTTPResponseBodyLength": 231, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Content-Type": true, - "Date": true, - "Location": true, - "Server": true - }, - "HTTPResponseLocation": "https://nexa.polito.it/", - "HTTPResponseTitle": "301 Moved Permanently", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - "5": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.16.171:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "nexa.polito.it", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "nexa.polito.it", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "130.192.16.171" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 36564, - "ControlHTTPResponseHeadersKeys": { - "Cache-Control": true, - "Content-Language": true, - "Content-Type": true, - "Date": true, - "Etag": true, - "Expires": true, - "Last-Modified": true, - "Link": true, - "Server": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Drupal-Cache": true, - "X-Frame-Options": true, - "X-Generator": true - }, - "ControlHTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino" - }, - "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "nexa.polito.it", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.16.171" - ], - "IPAddress": "130.192.16.171", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", "EndpointPort": "443", "EndpointAddress": "130.192.16.171:443", "TCPConnectFailure": "", @@ -225,6 +89,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Nexa Center for Internet \u0026 Society | Il centro Nexa è un centro di ricerca del Dipartimento di Automatica e Informatica del Politecnico di Torino", "HTTPResponseIsFinal": true, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "nexa.polito.it", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json index b8427ac597..e5548f7301 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json @@ -33,189 +33,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_certificate", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "expired.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_invalid_certificate", - "TLSServerName": "expired.badssl.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "expired.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_invalid_certificate", - "ControlHTTPFailure": "unknown_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "expired.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "expired.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "expired.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "expired.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "expired.badssl.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "expired.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json index 0858e6db2c..1b6a4239fa 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json @@ -31,99 +31,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_certificate", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "expired.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_invalid_certificate", - "TLSServerName": "expired.badssl.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "expired.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_invalid_certificate", - "ControlHTTPFailure": "unknown_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "expired.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "expired.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json index bfd189d023..5673325432 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_certificate", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json index 231d074383..95bdfacba1 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_certificate", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "expired.badssl.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "expired.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json index 6b08266692..7d816b0890 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json @@ -35,279 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_unknown_authority", - "TLSServerName": "untrusted-root.badssl.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_unknown_authority", - "ControlHTTPFailure": "unknown_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json index e614dd6c94..1b6a4239fa 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json @@ -31,99 +31,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_unknown_authority", - "TLSServerName": "untrusted-root.badssl.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_unknown_authority", - "ControlHTTPFailure": "unknown_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "untrusted-root.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "untrusted-root.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json index fd35d5fbf2..eb5743877a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -91,11 +85,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -123,6 +112,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -137,11 +128,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -169,6 +155,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -183,11 +171,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -215,6 +198,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -231,11 +216,6 @@ ], "KnownTCPEndpoints": { "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -263,6 +243,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json index 21e4735926..f355b029e4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "untrusted-root.badssl.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "untrusted-root.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json index 07b194bb78..8e461d4b0e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json @@ -36,248 +36,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_unknown_authority", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_unknown_authority", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json index 33bcc569d6..004ce85c1e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json @@ -31,104 +31,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_unknown_authority", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_unknown_authority", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json index 454139af4b..04af571446 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -192,11 +180,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -227,6 +210,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json index b817aa1ea8..79460d68cb 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_unknown_authority", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json index 689156d884..e5548f7301 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json @@ -33,189 +33,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_hostname", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "wrong.host.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_invalid_hostname", - "TLSServerName": "wrong.host.badssl.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "wrong.host.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_invalid_hostname", - "ControlHTTPFailure": "unknown_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "wrong.host.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "wrong.host.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "wrong.host.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "wrong.host.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "wrong.host.badssl.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "wrong.host.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json index 69bc54221d..1b6a4239fa 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json @@ -31,99 +31,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_hostname", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "wrong.host.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "104.154.89.105:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "ssl_invalid_hostname", - "TLSServerName": "wrong.host.badssl.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "wrong.host.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "ssl_invalid_hostname", - "ControlHTTPFailure": "unknown_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "wrong.host.badssl.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "104.154.89.105" - ], - "IPAddress": "104.154.89.105", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "wrong.host.badssl.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "104.154.89.105" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json index b73d50c04f..d8556378cb 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_hostname", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json index 82140b35c8..1f2cb7ddbe 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "ssl_invalid_hostname", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "wrong.host.badssl.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "wrong.host.badssl.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json index 951d70ad48..666644b6e2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json @@ -29,186 +29,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.org", - "HTTPRequestURL": "https://www.example.org/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json index e81958fab7..666644b6e2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json @@ -29,100 +29,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.org", - "HTTPRequestURL": "https://www.example.org/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json index e911149233..baac735c39 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -45,11 +42,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -77,6 +69,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -135,11 +126,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -172,6 +158,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json index 2fad8ff6a9..b158d8a38f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -48,11 +45,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -85,6 +77,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json index 2a8eb82241..39e3c4ec65 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json @@ -29,230 +29,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.org/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.org", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json index 5670101c17..39e3c4ec65 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json @@ -29,144 +29,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.org/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.org", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json index bf843ee0a3..05612f013f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -45,11 +42,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -77,6 +69,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -135,11 +126,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -172,6 +158,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -184,11 +172,6 @@ "ControlHTTPResponseTitle": null }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -216,6 +199,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json index 59586d03b2..f65f42f640 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -48,11 +45,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -85,6 +77,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -97,11 +91,6 @@ "ControlHTTPResponseTitle": null }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -129,6 +118,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json index fc7f9aa90c..b29cb58957 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json @@ -36,197 +36,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "android_dns_cache_no_data", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "android_dns_cache_no_data", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json index 4100206c56..2f68abaeb4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json @@ -29,51 +29,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 0, - "Failure": "android_dns_cache_no_data", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "android_dns_cache_no_data", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json index a3e5d76d71..3a8cd67722 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "android_dns_cache_no_data", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "android_dns_cache_no_data", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -91,11 +85,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -123,6 +112,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -139,11 +130,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -176,6 +162,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json index 3f2955bdce..e553ea5665 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/observations_classic.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "android_dns_cache_no_data", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "android_dns_cache_no_data", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json index b4d7aa8467..6acbdbb813 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json @@ -38,250 +38,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "10.10.34.35" - ], - "IPAddress": "10.10.34.35", - "IPAddressASN": null, - "IPAddressBogon": true, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "10.10.34.35:443", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "10.10.34.35" - ], - "IPAddress": "10.10.34.35", - "IPAddressASN": null, - "IPAddressBogon": true, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json index d41151a7d8..b0e437e950 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json @@ -31,104 +31,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "10.10.34.35" - ], - "IPAddress": "10.10.34.35", - "IPAddressASN": null, - "IPAddressBogon": true, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "10.10.34.35:443", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "10.10.34.35" - ], - "IPAddress": "10.10.34.35", - "IPAddressASN": null, - "IPAddressBogon": true, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json index 363755a843..3f687b3ca3 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -178,6 +164,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -197,11 +185,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -229,6 +212,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json index f3019e1a97..6683e1b153 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "4": { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json index 71cd54b05c..c13f4069c1 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json @@ -36,197 +36,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json index 9ff4f9febe..c7c8e85137 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json @@ -29,51 +29,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json index dedae2a914..43ccbfad9e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -91,11 +85,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -123,6 +112,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -139,11 +130,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -176,6 +162,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json index 884871cf1a..3b10fb2f2b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/observations_classic.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json index c47a5a77af..0709b9e1f1 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json @@ -37,248 +37,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json index cfceb4ac62..3ebece0faa 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json @@ -34,109 +34,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json index 576bcf302e..69fe55f9bb 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -178,6 +164,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -197,11 +185,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -227,6 +210,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json index db06f18799..83cf0b6c6b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -87,6 +79,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json index e2fa3b20e1..3e326ceb99 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json @@ -36,347 +36,5 @@ "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.182.17:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": false, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 1, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": true, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json index b2b87fcded..84cf4d403b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json @@ -33,159 +33,5 @@ "HTTPFinalResponseDiffTitleDifferentLongWords": {}, "HTTPFinalResponseDiffUncommonHeadersIntersection": { "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.182.17:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json index f14a76c7f6..6e1eee7974 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -177,6 +163,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -196,11 +184,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -228,6 +211,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -247,11 +232,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "5": { - "TagDepth": 0, - "Type": 1, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -277,6 +257,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -296,11 +278,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": false, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -326,6 +303,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json index ae9c3c1c4d..ce6acbb7c4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -86,6 +78,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -105,11 +99,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -137,6 +126,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json index 327b35a82b..dc9955aca9 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json @@ -35,245 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "connection_reset", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json index 62620c5282..d724331e61 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json @@ -33,155 +33,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "connection_reset", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json index 62faf73a2f..e8251a5ca0 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -192,11 +180,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -224,6 +207,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json index f93ee12123..d971599eb9 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -101,11 +95,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -133,6 +122,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json index d6f9cab4c2..1cf0d95020 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json @@ -37,245 +37,5 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 188, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": {}, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Access Denied", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json index 88e24f9876..d777dfada8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json @@ -36,155 +36,5 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 188, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": {}, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Access Denied", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json index 2e34363d60..7ed6e5b777 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -192,11 +180,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -224,6 +207,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json index 0d90633778..60094bb742 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -101,11 +95,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -133,6 +122,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json index 9482897809..875c9ee456 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json @@ -38,343 +38,5 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.182.17:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 188, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": {}, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Access Denied", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": false, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 1, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": true, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json index f0375051f9..1a620e123c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json @@ -35,155 +35,5 @@ "default": true, "denied": true }, - "HTTPFinalResponseDiffUncommonHeadersIntersection": {}, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "130.192.182.17:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 188, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": {}, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Access Denied", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json index 6408cb2bbf..fad3b1cd3a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -192,11 +180,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -224,6 +207,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -243,11 +228,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "5": { - "TagDepth": 0, - "Type": 1, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -273,6 +253,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -292,11 +274,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": false, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -322,6 +299,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json index cff1cf7c46..a294ff2e19 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Access Denied", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -101,11 +95,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -133,6 +122,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json index 2a7e03ffbf..a643dfc3b6 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json @@ -40,426 +40,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json index 8f7fd07ec6..5e51334e8b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json @@ -38,250 +38,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json index f18349bbf4..2eec0a429c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -135,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -167,6 +153,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -181,11 +169,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,6 +196,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -271,11 +253,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -307,6 +284,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -326,11 +305,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -358,6 +332,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -375,11 +351,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -407,6 +378,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json index aa63c4735d..3470d4cfca 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -198,11 +186,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -230,6 +213,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json index 03c49661cb..550f85e6c9 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json @@ -37,377 +37,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json index 3a86a4bd64..10823f59f0 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json @@ -36,201 +36,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json index 174064ff92..96dc2ad323 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -135,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -167,6 +153,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -181,11 +169,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,6 +196,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -271,11 +253,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -307,6 +284,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -326,11 +305,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -358,6 +332,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json index 49a5952399..62393c0976 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json index ad905b1f3d..4cd9d6e7e4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json @@ -39,426 +39,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "connection_reset", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json index 09dc3697a3..8b99fb0b86 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json @@ -38,250 +38,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "connection_reset", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json index fc51fb2e11..198acee0ae 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -135,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -167,6 +153,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -181,11 +169,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,6 +196,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -271,11 +253,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -307,6 +284,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -326,11 +305,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -358,6 +332,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -375,11 +351,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -407,6 +378,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json index 4b116042b6..56487d3809 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -198,11 +186,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -230,6 +213,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json index 6a26239552..72e20888ca 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json @@ -37,377 +37,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json index 62e720104f..96728b6fe6 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json @@ -35,201 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json index 5a4cd1c070..85a038c63b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -135,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -167,6 +153,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -181,11 +169,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,6 +196,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -271,11 +253,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -307,6 +284,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -326,11 +305,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -358,6 +332,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json index dd503dd9cf..2352158021 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json index 41c9b1857a..4cd9d6e7e4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json @@ -39,426 +39,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "eof_error", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "eof_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json index 7c3f75185c..c96863bccf 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json @@ -37,250 +37,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "eof_error", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "eof_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json index 157cb0370a..ace6a89799 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -135,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -167,6 +153,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -181,11 +169,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,6 +196,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -271,11 +253,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -307,6 +284,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -326,11 +305,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -358,6 +332,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -375,11 +351,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -407,6 +378,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json index 1c72ead02d..77913f61c8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -198,11 +186,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -230,6 +213,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json index 3c2619b176..72e20888ca 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json @@ -37,377 +37,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "eof_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json index a21c0db4c3..111da85674 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json @@ -35,201 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "eof_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json index a28c3f83a4..d54c9cc976 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -135,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -167,6 +153,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -181,11 +169,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,6 +196,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -271,11 +253,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -307,6 +284,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -326,11 +305,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -358,6 +332,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json index bfdaf8fb3f..ccfc81ba91 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 2, - "Failure": "eof_error", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json index 5a4e56a278..e5548f7301 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json @@ -33,324 +33,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json index a46cb1667e..afc64a4fc0 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json @@ -32,150 +32,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json index 4a4343b388..97e8ec1c94 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -87,11 +81,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -117,6 +106,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -129,11 +120,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -159,6 +145,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -173,11 +161,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -205,6 +188,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -219,11 +204,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -251,6 +231,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -267,11 +249,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -303,6 +280,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json index 37790b9a13..2acc0a9e21 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/observations_classic.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_nxdomain_error", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -45,11 +42,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -77,6 +69,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -129,6 +118,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json index 37269129e4..4cd9d6e7e4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json @@ -39,426 +39,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "generic_timeout_error", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "generic_timeout_error", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "generic_timeout_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 4, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json index cb1daf3333..98ae3617cc 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json @@ -37,250 +37,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 3, - "Failure": "generic_timeout_error", - "TransactionID": 6, - "TagFetchBody": true, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "generic_timeout_error", - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": false, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "generic_timeout_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/32447", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "http://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json index f95af7ec5e..4972baef8d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -89,11 +83,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -121,6 +110,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -135,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -167,6 +153,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -181,11 +169,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -213,6 +196,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 4, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -271,11 +253,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -307,6 +284,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -326,11 +305,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "generic_timeout_error", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -358,6 +332,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -375,11 +351,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -407,6 +378,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json index 17a9c4214c..b535259486 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "http://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 1, - "Type": 3, - "Failure": "generic_timeout_error", - "TransactionID": 6, - "TagFetchBody": true, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -198,11 +186,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": false, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -230,6 +213,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": false, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json index 50d8d57c47..ca480158d8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json @@ -39,467 +39,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": true, - "DNSTransactionID": 6, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "generic_timeout_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 6, - "TagFetchBody": null, - "DNSTransactionID": 6, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 5, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json index 5de31a5d89..58e20057a0 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json @@ -35,201 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": true, - "DNSTransactionID": 6, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "generic_timeout_error", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 6, - "TagFetchBody": null, - "DNSTransactionID": 6, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": null, - "ControlDNSLookupFailure": null, - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "67.199.248.11:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "bit.ly", - "HTTPRequestURL": "https://bit.ly/21645", - "HTTPFailure": "", - "HTTPResponseStatusCode": 308, - "HTTPResponseBodyLength": 0, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Content-Length": true, - "Date": true, - "Location": true - }, - "HTTPResponseLocation": "https://www.example.com/", - "HTTPResponseTitle": "", - "HTTPResponseIsFinal": false, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "bit.ly", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "67.199.248.11" - ], - "IPAddress": "67.199.248.11", - "IPAddressASN": 396982, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "bit.ly", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "67.199.248.11" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json index 8c37ec82f6..b2efd97836 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -45,11 +42,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "dns_no_answer", @@ -75,6 +67,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -89,11 +83,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -119,6 +108,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -133,11 +124,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -165,6 +151,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -179,11 +167,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -211,6 +194,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -225,11 +210,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -257,6 +237,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -271,11 +253,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 6, - "TagFetchBody": null, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -303,6 +280,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -315,11 +294,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 5, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -347,6 +321,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -361,11 +337,6 @@ ], "KnownTCPEndpoints": { "4": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -397,6 +368,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -416,11 +389,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": true, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -448,6 +416,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json index 249ce08bc7..9ac8f44278 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -48,11 +45,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 1, - "Type": 0, - "Failure": null, - "TransactionID": 6, - "TagFetchBody": null, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -80,6 +72,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": null, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, @@ -94,11 +88,6 @@ ], "KnownTCPEndpoints": { "4": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "bit.ly", "DNSLookupFailure": "", @@ -130,6 +119,8 @@ "HTTPResponseLocation": "https://www.example.com/", "HTTPResponseTitle": "", "HTTPResponseIsFinal": false, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "bit.ly", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -149,11 +140,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "7": { - "TagDepth": 1, - "Type": 2, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": true, "DNSTransactionID": 6, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -181,6 +167,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 1, + "TagFetchBody": true, "ControlDNSDomain": null, "ControlDNSLookupFailure": null, "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json index c803499768..d63d09e3ea 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json @@ -36,250 +36,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json index e9a3e2bcfb..f0625a400a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json @@ -35,160 +35,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json index beeda76365..5bdef978fa 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -178,6 +164,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -197,11 +185,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -229,6 +212,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json index 14cea28e1a..abfdc65502 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -87,6 +79,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -106,11 +100,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -138,6 +127,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json index 42af099ae9..4496414f98 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json @@ -36,199 +36,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json index 39b1897e1d..8fcbe6e0e8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json @@ -35,109 +35,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.com", - "HTTPRequestURL": "https://www.example.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json index d832cd67be..c5cfba694e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -178,6 +164,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json index 45644f7c97..134ad2a2f5 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -87,6 +79,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json index 829268b281..eae46dca1c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json @@ -37,194 +37,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json index 4834650903..70c88127fa 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json @@ -35,104 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json index 9189280bb8..30e810ce69 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json index e0ea430de1..34a160b44f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json index 18deb73629..19f9b9903a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json @@ -40,348 +40,5 @@ "HTTPFinalResponseDiffUncommonHeadersIntersection": { "alt-svc": true, "content-length": true - }, - "Linear": [ - { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": true, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "93.184.216.34:80", - "TCPConnectFailure": "", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": "http://www.example.org/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 1533, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "Default Web Page", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": false, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.example.org", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "83.224.65.41" - ], - "IPAddress": "83.224.65.41", - "IPAddressASN": 30722, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "83.224.65.41:443", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "connection_refused_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "83.224.65.41" - ], - "IPAddress": "83.224.65.41", - "IPAddressASN": 30722, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "83.224.65.41:80", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "83.224.65.41" - ], - "IPAddress": "83.224.65.41", - "IPAddressASN": 30722, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "83.224.65.41" - ], - "IPAddress": "83.224.65.41", - "IPAddressASN": 30722, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json index e06631a172..46471903c7 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json @@ -35,155 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 4, - "TagFetchBody": false, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "83.224.65.41" - ], - "IPAddress": "83.224.65.41", - "IPAddressASN": 30722, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "83.224.65.41:443", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "connection_refused_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "83.224.65.41" - ], - "IPAddress": "83.224.65.41", - "IPAddressASN": 30722, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "83.224.65.41:80", - "TCPConnectFailure": "connection_refused", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.org", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "83.224.65.41" - ], - "IPAddress": "83.224.65.41", - "IPAddressASN": 30722, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.org", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json index e1c57db04a..12d700428b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -192,11 +180,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -224,6 +207,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -243,11 +228,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "5": { - "TagDepth": 0, - "Type": 3, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -278,6 +258,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "Default Web Page", "HTTPResponseIsFinal": true, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -297,11 +279,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "6": { - "TagDepth": 0, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": false, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -327,6 +304,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json index 5ed79f2a0d..8b9fdf03df 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -101,11 +95,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 1, - "Failure": "connection_refused", - "TransactionID": 4, - "TagFetchBody": false, "DNSTransactionID": 1, "DNSDomain": "www.example.org", "DNSLookupFailure": "", @@ -133,6 +122,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": false, "ControlDNSDomain": "www.example.org", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json index fac91f9fa5..3d61ae2ee2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json @@ -37,194 +37,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json index 0dc1856a4d..aa697ed462 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json @@ -35,104 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "93.184.216.34" - ], - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json index 7d522afbe3..b2fb2037cc 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json index ea64df80d5..6f45bf3b84 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json index 6eb34f46ea..c4688925ca 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json @@ -39,243 +39,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 4, - "TagFetchBody": true, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "93.184.216.34", - "IPAddressASN": 15133, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "93.184.216.34:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "dns_no_answer", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json index e9259e05cc..ed5aac554e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json @@ -35,104 +35,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, - "DNSTransactionID": 1, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": 3, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "130.192.182.17:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "connection_reset", - "TLSServerName": "www.example.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 1533, - "ControlHTTPResponseHeadersKeys": { - "Alt-Svc": true, - "Content-Length": true, - "Content-Type": true, - "Date": true - }, - "ControlHTTPResponseTitle": "Default Web Page" - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "130.192.182.17" - ], - "IPAddress": "130.192.182.17", - "IPAddressASN": 137, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "93.184.216.34" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json index 6043a34d91..792e640e6a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_no_answer", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "dns_no_answer", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -47,11 +44,6 @@ ], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -79,6 +71,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -93,11 +87,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -125,6 +114,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -141,11 +132,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -173,6 +159,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -192,11 +180,6 @@ "ControlHTTPResponseTitle": "Default Web Page" }, "4": { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 4, - "TagFetchBody": true, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -222,6 +205,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json index eb4b1b91d9..c3b6b5e445 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": 0, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -34,6 +29,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -50,11 +47,6 @@ ], "KnownTCPEndpoints": { "3": { - "TagDepth": 0, - "Type": 2, - "Failure": "connection_reset", - "TransactionID": 3, - "TagFetchBody": true, "DNSTransactionID": 1, "DNSDomain": "www.example.com", "DNSLookupFailure": "", @@ -82,6 +74,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": true, "ControlDNSDomain": "www.example.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json index 12555fba19..1cf6020403 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json @@ -30,133 +30,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.xyz", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.xyz", - "ControlDNSLookupFailure": "dns_name_error", - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.xyz", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.xyz", - "ControlDNSLookupFailure": "dns_name_error", - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.example.xyz", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.xyz", - "ControlDNSLookupFailure": "dns_name_error", - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json index 2e1d95798b..e1c62c21ff 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json @@ -29,49 +29,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.example.xyz", - "DNSLookupFailure": "dns_nxdomain_error", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": null, - "IPAddress": null, - "IPAddressASN": null, - "IPAddressBogon": null, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.example.xyz", - "ControlDNSLookupFailure": "dns_name_error", - "ControlDNSResolvedAddrs": null, - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json index 4b5f63e86b..6bdf151ac2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, @@ -43,11 +40,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -73,6 +65,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, @@ -85,11 +79,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -115,6 +104,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json index e3aa85dd8e..d7856cc886 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/observations_classic.json @@ -1,11 +1,6 @@ { "DNSLookupFailures": [ { - "TagDepth": 0, - "Type": 0, - "Failure": "dns_nxdomain_error", - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.example.xyz", "DNSLookupFailure": "dns_nxdomain_error", @@ -31,6 +26,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": 0, + "TagFetchBody": null, "ControlDNSDomain": "www.example.xyz", "ControlDNSLookupFailure": "dns_name_error", "ControlDNSResolvedAddrs": null, diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json index 63fe38cd03..83db5f8d03 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json @@ -34,1031 +34,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 11, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "8.8.4.4:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 10, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 10, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "8.8.8.8:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 9, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2001:4860:4860::8844]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 8, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2001:4860:4860::8888]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "timed_out", - "TransactionID": 6, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "8.8.8.8:80", - "TCPConnectFailure": "timed_out", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "8.8.4.4:80", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "[2001:4860:4860::8844]:80", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "[2001:4860:4860::8888]:80", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json index 5f89a69554..83db5f8d03 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json @@ -34,631 +34,5 @@ "HTTPFinalResponseDiffBodyProportionFactor": null, "HTTPFinalResponseDiffStatusCodeMatch": null, "HTTPFinalResponseDiffTitleDifferentLongWords": null, - "HTTPFinalResponseDiffUncommonHeadersIntersection": null, - "Linear": [ - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 11, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "8.8.4.4:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 10, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 10, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "8.8.8.8:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 9, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2001:4860:4860::8844]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 8, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2001:4860:4860::8888]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "dns.google", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "timed_out", - "TransactionID": 6, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "8.8.8.8:80", - "TCPConnectFailure": "timed_out", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "8.8.4.4:80", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "[2001:4860:4860::8844]:80", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "80", - "EndpointAddress": "[2001:4860:4860::8888]:80", - "TCPConnectFailure": "generic_timeout_error", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": "generic_timeout_error", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "generic_timeout_error", - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8844", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "2001:4860:4860::8888", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.4.4", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "dns.google", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "IPAddress": "8.8.8.8", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "dns.google", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.4.4", - "8.8.8.8" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + "HTTPFinalResponseDiffUncommonHeadersIntersection": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json index 67e7172206..f93f556bbd 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -37,6 +32,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -54,11 +51,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -89,6 +81,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -106,11 +100,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -141,6 +130,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -158,11 +149,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -193,6 +179,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -210,11 +198,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -243,6 +226,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -260,11 +245,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -293,6 +273,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -310,11 +292,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -343,6 +320,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -360,11 +339,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -393,6 +367,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -410,11 +386,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -443,6 +414,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -460,11 +433,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -493,6 +461,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -510,11 +480,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -543,6 +508,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -560,11 +527,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -593,6 +555,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -612,11 +576,6 @@ ], "KnownTCPEndpoints": { "10": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 10, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -647,6 +606,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -664,11 +625,6 @@ "ControlHTTPResponseTitle": null }, "11": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -699,6 +655,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -716,11 +674,6 @@ "ControlHTTPResponseTitle": null }, "4": { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -751,6 +704,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -768,11 +723,6 @@ "ControlHTTPResponseTitle": null }, "5": { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -803,6 +753,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -820,11 +772,6 @@ "ControlHTTPResponseTitle": null }, "6": { - "TagDepth": null, - "Type": 1, - "Failure": "timed_out", - "TransactionID": 6, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -855,6 +802,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -872,11 +821,6 @@ "ControlHTTPResponseTitle": null }, "7": { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -907,6 +851,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -924,11 +870,6 @@ "ControlHTTPResponseTitle": null }, "8": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -959,6 +900,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -976,11 +919,6 @@ "ControlHTTPResponseTitle": null }, "9": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -1011,6 +949,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json index 1c81e17075..7d572f5cbb 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -37,6 +32,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -54,11 +51,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -89,6 +81,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -106,11 +100,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -141,6 +130,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -158,11 +149,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -193,6 +179,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -212,11 +200,6 @@ ], "KnownTCPEndpoints": { "10": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 10, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -247,6 +230,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -264,11 +249,6 @@ "ControlHTTPResponseTitle": null }, "11": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -299,6 +279,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -316,11 +298,6 @@ "ControlHTTPResponseTitle": null }, "4": { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -351,6 +328,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -368,11 +347,6 @@ "ControlHTTPResponseTitle": null }, "5": { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -403,6 +377,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -420,11 +396,6 @@ "ControlHTTPResponseTitle": null }, "6": { - "TagDepth": null, - "Type": 1, - "Failure": "timed_out", - "TransactionID": 6, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -455,6 +426,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -472,11 +445,6 @@ "ControlHTTPResponseTitle": null }, "7": { - "TagDepth": null, - "Type": 1, - "Failure": "generic_timeout_error", - "TransactionID": 7, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -507,6 +475,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -524,11 +494,6 @@ "ControlHTTPResponseTitle": null }, "8": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -559,6 +524,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -576,11 +543,6 @@ "ControlHTTPResponseTitle": null }, "9": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "dns.google", "DNSLookupFailure": "", @@ -611,6 +573,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "dns.google", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json index 334e6f8ee9..7724e8dfdf 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json @@ -36,4750 +36,5 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - }, - "Linear": [ - { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 8, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": "https://www.youtube.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 524264, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "YouTube", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 32, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "216.58.212.206", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 32, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.212.206:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 31, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "172.217.169.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 31, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "172.217.169.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 30, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "216.58.201.110", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 30, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.201.110:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 29, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.250.179.238", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 29, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.179.238:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 28, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.250.200.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 28, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.200.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 27, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.250.178.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 27, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.178.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 26, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "216.58.204.78", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 26, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.204.78:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 25, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.250.200.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 25, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.200.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 23, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "172.217.16.238", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 23, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "172.217.16.238:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 22, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.250.187.238", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 22, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.187.238:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 21, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.250.187.206", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 21, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.187.206:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 20, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.250.180.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 20, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 19, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "172.217.169.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 19, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "172.217.169.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 14, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.204.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 13, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 9, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.174:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.209.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.205.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 34, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2a00:1450:4009:816::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 34, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4009:816::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 33, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2a00:1450:4009:826::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 33, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4009:826::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 24, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2a00:1450:4009:80b::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 24, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4009:80b::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 18, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2a00:1450:4009:827::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 18, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4009:827::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 17, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 17, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:403::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 16, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 16, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:416::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 15, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 15, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:414::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 12, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:411::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 12, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:411::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 11, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:809::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 11, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:809::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 10, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 10, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:402::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 7, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:410::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:410::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:410::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:411::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:809::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:411::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:410::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json index 1489df952c..7724e8dfdf 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json @@ -36,1628 +36,5 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - }, - "Linear": [ - { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 8, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": "https://www.youtube.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 524264, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "YouTube", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 14, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.204.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 13, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 9, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.174:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.205.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 16, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 16, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:416::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 15, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 15, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:414::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 12, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:411::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 12, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:411::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 10, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:410::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 10, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:402::200e]:443", - "TCPConnectFailure": "host_unreachable", - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 850205, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:411::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:411::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.250.178.14", - "142.250.179.238", - "142.250.180.14", - "142.250.187.206", - "142.250.187.238", - "142.250.200.14", - "142.250.200.46", - "172.217.16.238", - "172.217.169.14", - "172.217.169.46", - "216.58.201.110", - "216.58.204.78", - "216.58.212.206", - "2a00:1450:4009:80b::200e", - "2a00:1450:4009:816::200e", - "2a00:1450:4009:826::200e", - "2a00:1450:4009:827::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json index be9681fa0a..28fdb4bb92 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -37,6 +32,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -67,11 +64,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -102,6 +94,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -132,11 +126,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -167,6 +156,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -197,11 +188,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -232,6 +218,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -262,11 +250,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -300,6 +283,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -330,11 +315,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -368,6 +348,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -398,11 +380,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -436,6 +413,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -466,11 +445,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -504,6 +478,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -534,11 +510,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -572,6 +543,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -602,11 +575,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -640,6 +608,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -670,11 +640,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -708,6 +673,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -738,11 +705,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -779,6 +741,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -809,11 +773,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -850,6 +809,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -880,11 +841,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -921,6 +877,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -951,11 +909,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -992,6 +945,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1022,11 +977,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1063,6 +1013,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1093,11 +1045,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1134,6 +1081,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1164,11 +1113,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1205,6 +1149,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1235,11 +1181,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1276,6 +1217,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1306,11 +1249,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1347,6 +1285,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1377,11 +1317,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1418,6 +1353,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1448,11 +1385,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1485,6 +1417,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1515,11 +1449,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1552,6 +1481,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1582,11 +1513,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1619,6 +1545,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1649,11 +1577,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1686,6 +1609,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1716,11 +1641,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1753,6 +1673,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1783,11 +1705,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1820,6 +1737,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1850,11 +1769,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1885,6 +1799,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1915,11 +1831,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1950,6 +1861,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1980,11 +1893,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2015,6 +1923,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2045,11 +1955,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2080,6 +1985,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2112,11 +2019,6 @@ ], "KnownTCPEndpoints": { "10": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 10, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2147,6 +2049,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2198,11 +2102,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "11": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 11, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2233,6 +2132,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2284,11 +2185,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 12, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2325,6 +2221,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2376,11 +2274,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2414,6 +2307,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2465,11 +2360,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2503,6 +2393,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2554,11 +2446,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 15, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2595,6 +2482,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2646,11 +2535,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "16": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 16, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2681,6 +2565,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2732,11 +2618,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "17": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 17, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2767,6 +2648,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2818,11 +2701,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "18": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 18, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2848,6 +2726,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2899,11 +2779,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "19": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 19, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2929,6 +2804,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2980,11 +2857,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "20": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 20, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3010,6 +2882,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3061,11 +2935,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "21": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 21, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3091,6 +2960,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3142,11 +3013,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "22": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 22, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3172,6 +3038,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3223,11 +3091,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "23": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 23, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3253,6 +3116,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3304,11 +3169,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "24": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 24, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3334,6 +3194,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3385,11 +3247,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "25": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 25, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3415,6 +3272,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3466,11 +3325,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "26": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 26, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3496,6 +3350,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3547,11 +3403,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "27": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 27, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3577,6 +3428,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3628,11 +3481,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "28": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 28, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3658,6 +3506,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3709,11 +3559,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "29": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 29, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3739,6 +3584,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3790,11 +3637,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "30": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 30, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3820,6 +3662,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3871,11 +3715,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "31": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 31, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3901,6 +3740,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3952,11 +3793,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "32": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 32, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -3982,6 +3818,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4033,11 +3871,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "33": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 33, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -4063,6 +3896,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4114,11 +3949,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "34": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 34, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -4144,6 +3974,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4195,11 +4027,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4233,6 +4060,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4284,11 +4113,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4322,6 +4146,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4373,11 +4199,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "6": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4411,6 +4232,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4462,11 +4285,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "7": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 7, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4497,6 +4315,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4548,11 +4368,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4607,6 +4422,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -4658,11 +4475,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "9": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -4696,6 +4508,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json index a6da5de6dd..283823ce61 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -43,6 +38,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -73,11 +70,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -114,6 +106,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -144,11 +138,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -185,6 +174,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -215,11 +206,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -256,6 +242,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -286,11 +274,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -327,6 +310,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -357,11 +342,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -398,6 +378,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -428,11 +410,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -469,6 +446,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -499,11 +478,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -540,6 +514,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -570,11 +546,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -611,6 +582,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -641,11 +614,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -682,6 +650,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -714,11 +684,6 @@ ], "KnownTCPEndpoints": { "10": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 10, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -749,6 +714,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -800,11 +767,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 12, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -841,6 +803,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -892,11 +856,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -930,6 +889,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -981,11 +942,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1019,6 +975,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1070,11 +1028,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 15, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1111,6 +1064,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1162,11 +1117,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "16": { - "TagDepth": null, - "Type": 1, - "Failure": "host_unreachable", - "TransactionID": 16, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1197,6 +1147,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1248,11 +1200,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1286,6 +1233,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1337,11 +1286,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1375,6 +1319,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1426,11 +1372,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1485,6 +1426,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1536,11 +1479,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "9": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1574,6 +1512,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json index 9ad9521aa9..c2a3e61512 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json @@ -37,3517 +37,5 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - }, - "Linear": [ - { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 8, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": "https://www.youtube.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 524298, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "YouTube", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 24, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.251.41.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 24, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.41.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 23, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.251.33.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 23, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.33.174:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 22, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.251.41.78", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 22, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.41.78:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 21, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2607:f8b0:400b:80c::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 21, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2607:f8b0:400b:80c::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 20, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2607:f8b0:400b:807::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 20, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2607:f8b0:400b:807::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 19, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "172.217.1.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 19, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "172.217.1.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 18, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2607:f8b0:400b:80f::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 18, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2607:f8b0:400b:80f::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 17, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "2607:f8b0:400b:803::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 17, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2607:f8b0:400b:803::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 16, - "TagFetchBody": null, - "DNSTransactionID": null, - "DNSDomain": null, - "DNSLookupFailure": null, - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": null, - "IPAddress": "142.251.32.78", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 16, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.32.78:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 15, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 15, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.205.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 14, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 13, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:416::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 12, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 12, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:403::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 11, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:402::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 10, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:809::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 10, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:809::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 9, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.209.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 7, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.174:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.204.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:414::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e", - "2a00:1450:4002:809::200e" - ], - "IPAddress": "2a00:1450:4002:809::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, - "DNSTransactionID": 2, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "doh", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "216.58.209.46" - ], - "IPAddress": "216.58.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "AAAA", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "A", - "DNSEngine": "udp", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json index 3eadbc088f..696c5516e4 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json @@ -36,1460 +36,5 @@ "origin-trial": true, "permissions-policy": true, "report-to": true - }, - "Linear": [ - { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 8, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.14:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": "https://www.youtube.com/", - "HTTPFailure": "", - "HTTPResponseStatusCode": 200, - "HTTPResponseBodyLength": 524298, - "HTTPResponseBodyIsTruncated": false, - "HTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "HTTPResponseLocation": null, - "HTTPResponseTitle": "YouTube", - "HTTPResponseIsFinal": true, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 15, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 15, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.205.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 14, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.251.209.46:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 13, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:416::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 12, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 12, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:403::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 11, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:402::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 7, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 7, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.174:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 6, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "216.58.204.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 5, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "142.250.180.142:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, - "DNSTransactionID": 1, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": null, - "DNSEngine": null, - "DNSResolvedAddrs": [ - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": 4, - "EndpointProto": "tcp", - "EndpointPort": "443", - "EndpointAddress": "[2a00:1450:4002:414::200e]:443", - "TCPConnectFailure": "", - "TLSHandshakeFailure": "", - "TLSServerName": "www.youtube.com", - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": "", - "ControlTLSHandshakeFailure": "", - "ControlHTTPFailure": "", - "ControlHTTPResponseStatusCode": 200, - "ControlHTTPResponseBodyLength": 828614, - "ControlHTTPResponseHeadersKeys": { - "Accept-Ch": true, - "Accept-Ranges": true, - "Alt-Svc": true, - "Cache-Control": true, - "Content-Security-Policy-Report-Only": true, - "Content-Type": true, - "Cross-Origin-Opener-Policy": true, - "Date": true, - "Expires": true, - "Origin-Trial": true, - "P3p": true, - "Permissions-Policy": true, - "Pragma": true, - "Report-To": true, - "Server": true, - "Set-Cookie": true, - "Strict-Transport-Security": true, - "Vary": true, - "X-Content-Type-Options": true, - "X-Frame-Options": true, - "X-Xss-Protection": true - }, - "ControlHTTPResponseTitle": "YouTube" - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.250.180.174", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.14", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "142.251.209.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.204.142", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "216.58.205.46", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:402::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:403::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:414::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - }, - { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, - "DNSTransactionID": 3, - "DNSDomain": "www.youtube.com", - "DNSLookupFailure": "", - "DNSQueryType": "ANY", - "DNSEngine": "getaddrinfo", - "DNSResolvedAddrs": [ - "142.250.180.142", - "142.250.180.174", - "142.251.209.14", - "142.251.209.46", - "216.58.204.142", - "216.58.205.46", - "2a00:1450:4002:402::200e", - "2a00:1450:4002:403::200e", - "2a00:1450:4002:414::200e", - "2a00:1450:4002:416::200e" - ], - "IPAddress": "2a00:1450:4002:416::200e", - "IPAddressASN": 15169, - "IPAddressBogon": false, - "EndpointTransactionID": null, - "EndpointProto": null, - "EndpointPort": null, - "EndpointAddress": null, - "TCPConnectFailure": null, - "TLSHandshakeFailure": null, - "TLSServerName": null, - "HTTPRequestURL": null, - "HTTPFailure": null, - "HTTPResponseStatusCode": null, - "HTTPResponseBodyLength": null, - "HTTPResponseBodyIsTruncated": null, - "HTTPResponseHeadersKeys": null, - "HTTPResponseLocation": null, - "HTTPResponseTitle": null, - "HTTPResponseIsFinal": null, - "ControlDNSDomain": "www.youtube.com", - "ControlDNSLookupFailure": "", - "ControlDNSResolvedAddrs": [ - "142.251.32.78", - "142.251.33.174", - "142.251.41.46", - "142.251.41.78", - "172.217.1.14", - "2607:f8b0:400b:803::200e", - "2607:f8b0:400b:807::200e", - "2607:f8b0:400b:80c::200e", - "2607:f8b0:400b:80f::200e" - ], - "ControlTCPConnectFailure": null, - "ControlTLSHandshakeFailure": null, - "ControlHTTPFailure": null, - "ControlHTTPResponseStatusCode": null, - "ControlHTTPResponseBodyLength": null, - "ControlHTTPResponseHeadersKeys": null, - "ControlHTTPResponseTitle": null - } - ] + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json index 52a07b5415..4851892c47 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -37,6 +32,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -59,11 +56,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -94,6 +86,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -116,11 +110,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -151,6 +140,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -173,11 +164,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -208,6 +194,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -230,11 +218,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -267,6 +250,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -289,11 +274,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -326,6 +306,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -348,11 +330,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -385,6 +362,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -407,11 +386,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -444,6 +418,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -466,11 +442,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -503,6 +474,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -525,11 +498,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 1, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -562,6 +530,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -584,11 +554,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -625,6 +590,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -647,11 +614,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -688,6 +650,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -710,11 +674,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -751,6 +710,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -773,11 +734,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -814,6 +770,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -836,11 +794,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -877,6 +830,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -899,11 +854,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -940,6 +890,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -962,11 +914,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1003,6 +950,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1025,11 +974,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1066,6 +1010,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1088,11 +1034,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1129,6 +1070,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1151,11 +1094,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1192,6 +1130,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1214,11 +1154,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1249,6 +1184,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1271,11 +1208,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1306,6 +1238,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1328,11 +1262,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1363,6 +1292,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1385,11 +1316,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1420,6 +1346,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1442,11 +1370,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1480,6 +1403,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1502,11 +1427,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1540,6 +1460,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1562,11 +1484,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1600,6 +1517,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1622,11 +1541,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1660,6 +1574,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1682,11 +1598,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1720,6 +1631,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1742,11 +1655,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1780,6 +1688,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1802,11 +1712,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 2, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1840,6 +1745,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1864,11 +1771,6 @@ ], "KnownTCPEndpoints": { "10": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 10, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1899,6 +1801,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1943,11 +1847,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "11": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1978,6 +1877,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2022,11 +1923,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 12, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2057,6 +1953,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2101,11 +1999,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2136,6 +2029,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2180,11 +2075,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2217,6 +2107,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2261,11 +2153,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 15, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -2298,6 +2185,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2342,11 +2231,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "16": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 16, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2372,6 +2256,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2416,11 +2302,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "17": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 17, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2446,6 +2327,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2490,11 +2373,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "18": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 18, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2520,6 +2398,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2564,11 +2444,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "19": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 19, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2594,6 +2469,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2638,11 +2515,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "20": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 20, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2668,6 +2540,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2712,11 +2586,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "21": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 21, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2742,6 +2611,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2786,11 +2657,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "22": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 22, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2816,6 +2682,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2860,11 +2728,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "23": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 23, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2890,6 +2753,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -2934,11 +2799,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "24": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 24, - "TagFetchBody": null, "DNSTransactionID": null, "DNSDomain": null, "DNSLookupFailure": null, @@ -2964,6 +2824,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3008,11 +2870,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3043,6 +2900,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3087,11 +2946,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3124,6 +2978,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3168,11 +3024,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "6": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3205,6 +3056,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3249,11 +3102,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "7": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 7, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3286,6 +3134,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3330,11 +3180,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3388,6 +3233,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -3432,11 +3279,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "9": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 9, - "TagFetchBody": null, "DNSTransactionID": 2, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -3470,6 +3312,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json index ddd4167bcc..30dcf9c7bf 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/observations_classic.json @@ -2,11 +2,6 @@ "DNSLookupFailures": [], "DNSLookupSuccesses": [ { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -43,6 +38,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -65,11 +62,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -106,6 +98,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -128,11 +122,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -169,6 +158,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -191,11 +182,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -232,6 +218,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -254,11 +242,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -295,6 +278,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -317,11 +302,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -358,6 +338,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -380,11 +362,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -421,6 +398,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -443,11 +422,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -484,6 +458,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -506,11 +482,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -547,6 +518,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -569,11 +542,6 @@ "ControlHTTPResponseTitle": null }, { - "TagDepth": null, - "Type": 0, - "Failure": null, - "TransactionID": 3, - "TagFetchBody": null, "DNSTransactionID": 3, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -610,6 +578,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -634,11 +604,6 @@ ], "KnownTCPEndpoints": { "11": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 11, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -669,6 +634,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -713,11 +680,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "12": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 12, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -748,6 +710,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -792,11 +756,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "13": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 13, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -827,6 +786,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -871,11 +832,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "14": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 14, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -908,6 +864,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -952,11 +910,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "15": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 15, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -989,6 +942,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1033,11 +988,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "4": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 4, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1068,6 +1018,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1112,11 +1064,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "5": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 5, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1149,6 +1096,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1193,11 +1142,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "6": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 6, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1230,6 +1174,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1274,11 +1220,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "7": { - "TagDepth": null, - "Type": 2, - "Failure": "", - "TransactionID": 7, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1311,6 +1252,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": null, "HTTPResponseIsFinal": null, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ @@ -1355,11 +1298,6 @@ "ControlHTTPResponseTitle": "YouTube" }, "8": { - "TagDepth": null, - "Type": 3, - "Failure": "", - "TransactionID": 8, - "TagFetchBody": null, "DNSTransactionID": 1, "DNSDomain": "www.youtube.com", "DNSLookupFailure": "", @@ -1413,6 +1351,8 @@ "HTTPResponseLocation": null, "HTTPResponseTitle": "YouTube", "HTTPResponseIsFinal": true, + "TagDepth": null, + "TagFetchBody": null, "ControlDNSDomain": "www.youtube.com", "ControlDNSLookupFailure": "", "ControlDNSResolvedAddrs": [ diff --git a/internal/testingx/fakefill.go b/internal/testingx/fakefill.go index 62a9b4922d..1adea3e98d 100644 --- a/internal/testingx/fakefill.go +++ b/internal/testingx/fakefill.go @@ -68,13 +68,6 @@ func (ff *FakeFiller) getRandomInt64() int64 { return rnd.Int63() } -func (ff *FakeFiller) getRandomInt8() int64 { - defer ff.mu.Unlock() - ff.mu.Lock() - rnd := ff.getRandLocked() - return rnd.Int63n(255) -} - func (ff *FakeFiller) getRandomBool() bool { defer ff.mu.Unlock() ff.mu.Lock() @@ -103,8 +96,6 @@ func (ff *FakeFiller) doFill(v reflect.Value) { v.SetString(ff.getRandomString()) case reflect.Int64: v.SetInt(ff.getRandomInt64()) - case reflect.Int8: - v.SetInt(ff.getRandomInt8()) case reflect.Bool: v.SetBool(ff.getRandomBool()) case reflect.Struct: From 7eda6aa0e63baa6000e6e894cee8653adfc57afe Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 18:27:17 +0100 Subject: [PATCH 87/97] x --- .../webconnectivitylte/analysiscore.go | 8 + .../webconnectivitylte/analysiscorev2.go | 386 ++++++++++++++++++ .../webconnectivitylte/analysisdns.go | 6 +- .../webconnectivitylte/analysishttpcore.go | 4 +- .../webconnectivitylte/analysishttpdiff.go | 35 +- .../experiment/webconnectivitylte/bigx.go | 36 ++ .../webconnectivitylte/bigx_test.go | 47 +++ .../experiment/webconnectivitylte/testkeys.go | 25 +- .../experiment/webconnectivityqa/badssl.go | 16 +- .../experiment/webconnectivityqa/control.go | 4 +- .../webconnectivityqa/dnsblocking.go | 5 +- .../webconnectivityqa/dnshijacking.go | 6 +- .../experiment/webconnectivityqa/httpdiff.go | 8 +- .../experiment/webconnectivityqa/redirect.go | 24 +- .../experiment/webconnectivityqa/success.go | 2 +- .../webconnectivityqa/tcpblocking.go | 4 +- .../experiment/webconnectivityqa/testkeys.go | 5 + .../webconnectivityqa/websitedown.go | 4 +- 18 files changed, 549 insertions(+), 76 deletions(-) create mode 100644 internal/experiment/webconnectivitylte/analysiscorev2.go create mode 100644 internal/experiment/webconnectivitylte/bigx.go create mode 100644 internal/experiment/webconnectivitylte/bigx_test.go diff --git a/internal/experiment/webconnectivitylte/analysiscore.go b/internal/experiment/webconnectivitylte/analysiscore.go index 3c745ccd02..2df94f40ed 100644 --- a/internal/experiment/webconnectivitylte/analysiscore.go +++ b/internal/experiment/webconnectivitylte/analysiscore.go @@ -36,6 +36,9 @@ const ( analysisFlagSuccess ) +// AnalysisUseV2 indicates whether to use V2 of the analysis algorithm. +var AnalysisUseV2 = true + // analysisToplevel is the toplevel function that analyses the results // of the experiment once all network tasks have completed. // @@ -99,6 +102,11 @@ func (tk *TestKeys) analysisToplevel(logger model.Logger) { // not going to use any form of locking here. // these functions compute the value of XBlockingFlags + if AnalysisUseV2 { + tk.analysisToplevelV2(logger) + return + } + tk.analysisDNSToplevel(logger, model.GeoIPASNLookupperFunc(geoipx.LookupASN)) tk.analysisTCPIPToplevel(logger) tk.analysisTLSToplevel(logger) diff --git a/internal/experiment/webconnectivitylte/analysiscorev2.go b/internal/experiment/webconnectivitylte/analysiscorev2.go new file mode 100644 index 0000000000..4c03fdc24f --- /dev/null +++ b/internal/experiment/webconnectivitylte/analysiscorev2.go @@ -0,0 +1,386 @@ +package webconnectivitylte + +import ( + "fmt" + + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/optional" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +func (tk *TestKeys) analysisToplevelV2(logger model.Logger) { + // Since we run after all tasks have completed (or so we assume) we're + // not going to use any form of locking here. + + // 1. produce observations using the minipipeline + container := minipipeline.NewWebObservationsContainer() + container.IngestDNSLookupEvents(tk.Queries...) + container.IngestTCPConnectEvents(tk.TCPConnect...) + container.IngestTLSHandshakeEvents(tk.TLSHandshakes...) + container.IngestHTTPRoundTripEvents(tk.Requests...) + + // be defensive in case the control request or control are not defined + if tk.ControlRequest != nil && tk.Control != nil { + // Implementation note: the only error that can happen here is when the input + // doesn't parse as a URL, which should have triggered previous errors + runtimex.Try0(container.IngestControlMessages(tk.ControlRequest, tk.Control)) + } + + // 2. filter observations to only include results collected by the + // system resolver, which approximates v0.4's results + classic := minipipeline.ClassicFilter(container) + + // 3. run the classic analysis algorithm + tk.analysisClassic(logger, classic) +} + +func analysisValueToPointer[T any](input T) *T { + return &input +} + +func analysisOptionalToPointer[T any](input optional.Value[T]) *T { + if input.IsNone() { + return nil + } + return analysisValueToPointer(input.Unwrap()) +} + +func (tk *TestKeys) analysisClassic(logger model.Logger, container *minipipeline.WebObservationsContainer) { + // dump the observations + fmt.Printf("%s\n", must.MarshalJSON(container)) + + // produce the woa based on the observations + woa := minipipeline.AnalyzeWebObservations(container) + + // dump the analysis + fmt.Printf("%s\n", must.MarshalJSON(woa)) + + // determine the DNS consistency + switch { + case woa.DNSLookupUnexpectedFailure.Len() <= 0 && // no unexpected failures; and + woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() <= 0 && // no invalid addresses; and + (woa.DNSLookupSuccessWithValidAddressClassic.Len() > 0 || // good addrs; or + woa.DNSLookupExpectedFailure.Len() > 0): // expected failures + tk.DNSConsistency = optional.Some("consistent") + + case woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() > 0 || // unexpected addrs; or + woa.DNSLookupUnexpectedFailure.Len() > 0: // unexpected failures + tk.DNSConsistency = optional.Some("inconsistent") + + default: + tk.DNSConsistency = optional.None[string]() + } + + // we must set blocking to "dns" when there's a DNS inconsistency + setBlocking := func(value string) string { + switch { + case !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent": + return "dns" + default: + return value + } + + } + + // set HTTPDiff values + if !woa.HTTPFinalResponseDiffBodyProportionFactor.IsNone() { + tk.BodyLengthMatch = optional.Some(woa.HTTPFinalResponseDiffBodyProportionFactor.Unwrap() > 0.7) + } + if !woa.HTTPFinalResponseDiffUncommonHeadersIntersection.IsNone() { + tk.HeadersMatch = optional.Some(len(woa.HTTPFinalResponseDiffUncommonHeadersIntersection.Unwrap()) > 0) + } + tk.StatusCodeMatch = woa.HTTPFinalResponseDiffStatusCodeMatch + if !woa.HTTPFinalResponseDiffTitleDifferentLongWords.IsNone() { + tk.TitleMatch = optional.Some(len(woa.HTTPFinalResponseDiffTitleDifferentLongWords.Unwrap()) <= 0) + } + + // if we have a final HTTPS response, we're good + if !woa.HTTPFinalResponseSuccessTLSWithoutControl.IsNone() || !woa.HTTPFinalResponseSuccessTLSWithControl.IsNone() { + tk.Blocking = false + tk.Accessible = true + return + } + + // if we have a final HTTP response with control, let's run HTTPDiff + if !woa.HTTPFinalResponseSuccessTCPWithControl.IsNone() { + if !tk.StatusCodeMatch.IsNone() && tk.StatusCodeMatch.Unwrap() { + if !tk.BodyLengthMatch.IsNone() && tk.BodyLengthMatch.Unwrap() { + tk.Blocking = false + tk.Accessible = true + return + } + if !tk.HeadersMatch.IsNone() && tk.HeadersMatch.Unwrap() { + tk.Blocking = false + tk.Accessible = true + return + } + if !tk.TitleMatch.IsNone() && tk.TitleMatch.Unwrap() { + tk.Blocking = false + tk.Accessible = true + return + } + // fallthrough + } + tk.Blocking = setBlocking("http-diff") + tk.Accessible = false + return + } + + // if we have a final HTTP response without control, we don't know what to say + if !woa.HTTPFinalResponseSuccessTCPWithoutControl.IsNone() { + return + } + + // if we have unexpected HTTP round trip failures, it's "http-failure" + if woa.HTTPRoundTripUnexpectedFailure.Len() > 0 { + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // if we have unexpected TCP connect failures, it's "tcp_ip" + // + // we give precendence to this over TLS handshake because the latter + // always produces "http-failure", which we handle below + if woa.TCPConnectUnexpectedFailureDuringWebFetch.Len() > 0 { + tk.Blocking = setBlocking("tcp_ip") + tk.Accessible = false + return + } + + // if we have unexpected TLS failures, it's "http-failure" + if woa.TLSHandshakeUnexpectedFailureDuringWebFetch.Len() > 0 { + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // if we have unexplained TCP failures, blame "http-failure" + if woa.TCPConnectUnexplainedFailureDuringWebFetch.Len() > 0 { + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // likewise but for unexplained TLS handshake failures + if woa.TLSHandshakeUnexplainedFailureDuringWebFetch.Len() > 0 { + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // if we arrive here and the DNS is still inconsistent, say "dns" + if !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent" { + tk.Blocking = "dns" + tk.Accessible = false + return + } + + // if we don't have any operation but DNS lookup, check for NXDOMAIN + if woa.DNSLookupExpectedFailure.Len() > 0 { + // TODO(bassosimone): this is wrong but we'll change after the A/B comparison + // to correctly say that the website is down due to DNS + tk.Blocking = false + tk.Accessible = true + return + } + + // otherwise, we don't know what to say +} + +/* + +// analysisToplevelV2 is an alternative version of the analysis code that +// uses the [minipipeline] package for processing. +func (tk *TestKeys) analysisToplevelV2Old(logger model.Logger) { + // Since we run after all tasks have completed (or so we assume) we're + // not going to use any form of locking here. + + container := minipipeline.NewWebObservationsContainer() + container.IngestDNSLookupEvents(tk.Queries...) + container.IngestTCPConnectEvents(tk.TCPConnect...) + container.IngestTLSHandshakeEvents(tk.TLSHandshakes...) + container.IngestHTTPRoundTripEvents(tk.Requests...) + + // be defensive in case the control request or control are not defined + if tk.ControlRequest != nil && tk.Control != nil { + // Implementation note: the only error that can happen here is when the input + // doesn't parse as a URL, which should have triggered previous errors + runtimex.Try0(container.IngestControlMessages(tk.ControlRequest, tk.Control)) + } + + // dump the pipeline results for debugging purposes + fmt.Printf("%s\n", must.MarshalJSON(container)) + + // produce the analysis based on the observations + analysis := &minipipeline.WebAnalysis{} + analysis.ComputeDNSExperimentFailure(container) + analysis.ComputeDNSTransactionsWithBogons(container) + analysis.ComputeDNSTransactionsWithUnexpectedFailures(container) + analysis.ComputeDNSPossiblyInvalidAddrs(container) + analysis.ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(container) + analysis.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) + analysis.ComputeHTTPDiffBodyProportionFactor(container) + analysis.ComputeHTTPDiffStatusCodeMatch(container) + analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) + analysis.ComputeHTTPDiffTitleDifferentLongWords(container) + analysis.ComputeHTTPFinalResponsesWithControl(container) + analysis.ComputeTCPTransactionsWithUnexplainedUnexplainedFailures(container) + analysis.ComputeHTTPFinalResponsesWithTLS(container) + + // dump the analysis results for debugging purposes + fmt.Printf("%s\n", must.MarshalJSON(analysis)) + + // run top-level protocol-specific analysis algorithms + tk.analysisDNSToplevelV2(analysis, logger) + tk.analysisTCPIPToplevelV2(analysis, logger) + tk.analysisTLSToplevelV2(analysis, logger) + tk.analysisHTTPToplevelV2(analysis, logger) +} + +// analysisDNSToplevelV2 is the toplevel analysis function for DNS results. +// +// Note: this function DOES NOT consider failed DNS-over-HTTPS (DoH) submeasurements +// and ONLY considers the IP addrs they have resolved. Failing to contact a DoH service +// provides info about such a DoH service rather than on the measured URL. See the +// https://github.com/ooni/probe/issues/2274 issue for more info. +// +// The goals of this function are the following: +// +// 1. Set the legacy .DNSExperimentFailure field to the failure value of the +// first DNS query that failed among the ones using getaddrinfo. This field is +// legacy because now we perform several DNS lookups. +// +// 2. Compute the XDNSFlags value. +// +// From the XDNSFlags value, we determine, in turn DNSConsistency and +// XBlockingFlags according to the following decision table: +// +// +-----------+----------------+---------------------+ +// | XDNSFlags | DNSConsistency | XBlockingFlags | +// +-----------+----------------+---------------------+ +// | 0 | "consistent" | no change | +// +-----------+----------------+---------------------+ +// | nonzero | "inconsistent" | set FlagDNSBlocking | +// +-----------+----------------+---------------------+ +// +// We explain how XDNSFlags is determined in the documentation of +// the functions that this function calls to do its job. +func (tk *TestKeys) analysisDNSToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here + + // assign flags depending on the analysis + if v := analysis.DNSExperimentFailure.UnwrapOr(""); v != "" { + tk.DNSExperimentFailure = &v + } + if v := analysis.DNSTransactionsWithBogons.UnwrapOr(nil); len(v) > 0 { + tk.DNSFlags |= AnalysisDNSBogon + } + if v := analysis.DNSTransactionsWithUnexpectedFailures.UnwrapOr(nil); len(v) > 0 { + tk.DNSFlags |= AnalysisDNSUnexpectedFailure + } + if v := analysis.DNSPossiblyInvalidAddrs.UnwrapOr(nil); len(v) > 0 { + tk.DNSFlags |= AnalysisDNSUnexpectedAddrs + } + + // compute DNS consistency + if tk.DNSFlags != 0 { + logger.Warn("DNSConsistency: inconsistent") + v := "inconsistent" + tk.DNSConsistency = &v + tk.BlockingFlags |= analysisFlagDNSBlocking + } else { + logger.Info("DNSConsistency: consistent") + v := "consistent" + tk.DNSConsistency = &v + } +} + +// analysisTCPIPToplevelV2 is the toplevel analysis function for TCP/IP results. +func (tk *TestKeys) analysisTCPIPToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here + // TODO(bassosimone): we're ignoring .Status here + + if v := analysis.TCPTransactionsWithUnexpectedTCPConnectFailures.UnwrapOr(nil); len(v) > 0 { + tk.BlockingFlags |= analysisFlagTCPIPBlocking + } +} + +// analysisTLSToplevelV2 is the toplevel analysis function for TLS results. +func (tk *TestKeys) analysisTLSToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here + + if v := analysis.TCPTransactionsWithUnexpectedTLSHandshakeFailures.UnwrapOr(nil); len(v) > 0 { + tk.BlockingFlags |= analysisFlagTLSBlocking + } +} + +// analysisHTTPToplevelV2 is the toplevel analysis function for HTTP results. +func (tk *TestKeys) analysisHTTPToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { + // TODO(bassosimone): we should probably keep logging as before here + // TODO(bassosimone): we're missing the success with HTTPS flag... + + if v := analysis.TCPTransactionsWithUnexpectedHTTPFailures.UnwrapOr(nil); len(v) > 0 { + tk.BlockingFlags |= analysisFlagHTTPBlocking + } + + // Detect cases where an error occurred during a redirect. For this to happen, we + // need to observe (1) no "final" responses and (2) unexpected, unexplained failures + numFinals := len(analysis.HTTPFinalResponsesWithControl.UnwrapOr(nil)) + numUnexpectedUnexplained := len(analysis.TCPTransactionsWithUnexplainedUnexpectedFailures.UnwrapOr(nil)) + if numFinals <= 0 && numUnexpectedUnexplained > 0 { + tk.BlockingFlags |= analysisFlagHTTPBlocking + } + + // Special case for HTTPS + if len(analysis.HTTPFinalResponsesWithTLS.UnwrapOr(nil)) > 0 { + tk.BlockingFlags |= analysisFlagSuccess + } + + // attempt to fill the comparisons about the body + // + // XXX this code should probably always run + if !analysis.HTTPDiffStatusCodeMatch.IsNone() { + value := analysis.HTTPDiffStatusCodeMatch.Unwrap() + tk.StatusCodeMatch = &value + } + if !analysis.HTTPDiffBodyProportionFactor.IsNone() { + value := analysis.HTTPDiffBodyProportionFactor.UnwrapOr(0) > 0.7 + tk.BodyLengthMatch = &value + } + if !analysis.HTTPDiffUncommonHeadersIntersection.IsNone() { + value := len(analysis.HTTPDiffUncommonHeadersIntersection.Unwrap()) > 0 + tk.HeadersMatch = &value + } + if !analysis.HTTPDiffTitleDifferentLongWords.IsNone() { + value := len(analysis.HTTPDiffTitleDifferentLongWords.Unwrap()) <= 0 + tk.TitleMatch = &value + } + + // same code structure as before + if !analysis.HTTPDiffStatusCodeMatch.IsNone() { + if analysis.HTTPDiffStatusCodeMatch.Unwrap() { + + if analysis.HTTPDiffBodyProportionFactor.UnwrapOr(0) > 0.7 { + tk.BlockingFlags |= analysisFlagSuccess + return + } + + if v := analysis.HTTPDiffUncommonHeadersIntersection.UnwrapOr(nil); len(v) > 0 { + tk.BlockingFlags |= analysisFlagSuccess + return + } + + if !analysis.HTTPDiffTitleDifferentLongWords.IsNone() && + len(analysis.HTTPDiffTitleDifferentLongWords.Unwrap()) <= 0 { + tk.BlockingFlags |= analysisFlagSuccess + return + } + } + tk.BlockingFlags |= analysisFlagHTTPDiff + } +} +*/ diff --git a/internal/experiment/webconnectivitylte/analysisdns.go b/internal/experiment/webconnectivitylte/analysisdns.go index d68c6e0f11..fd1d394890 100644 --- a/internal/experiment/webconnectivitylte/analysisdns.go +++ b/internal/experiment/webconnectivitylte/analysisdns.go @@ -62,11 +62,13 @@ func (tk *TestKeys) analysisDNSToplevel(logger model.Logger, lookupper model.Geo tk.analysisDNSUnexpectedAddrs(logger, lookupper) if tk.DNSFlags != 0 { logger.Warn("DNSConsistency: inconsistent") - tk.DNSConsistency = "inconsistent" + //v := "inconsistent" + //tk.DNSConsistency = &v tk.BlockingFlags |= analysisFlagDNSBlocking } else { logger.Info("DNSConsistency: consistent") - tk.DNSConsistency = "consistent" + //v := "consistent" + //tk.DNSConsistency = &v } } diff --git a/internal/experiment/webconnectivitylte/analysishttpcore.go b/internal/experiment/webconnectivitylte/analysishttpcore.go index 8d7d34c9e2..e1e990ee38 100644 --- a/internal/experiment/webconnectivitylte/analysishttpcore.go +++ b/internal/experiment/webconnectivitylte/analysishttpcore.go @@ -31,7 +31,7 @@ func (tk *TestKeys) analysisHTTPToplevel(logger model.Logger) { return } finalRequest := tk.Requests[0] - tk.HTTPExperimentFailure = finalRequest.Failure + //tk.HTTPExperimentFailure = finalRequest.Failure // don't perform any futher analysis without TH data if tk.Control == nil || tk.ControlRequest == nil { @@ -65,5 +65,5 @@ func (tk *TestKeys) analysisHTTPToplevel(logger model.Logger) { } // fallback to the HTTP diff algo. - tk.analysisHTTPDiff(logger, finalRequest, &ctrl) + //tk.analysisHTTPDiff(logger, finalRequest, &ctrl) } diff --git a/internal/experiment/webconnectivitylte/analysishttpdiff.go b/internal/experiment/webconnectivitylte/analysishttpdiff.go index b25a739506..98455a6bc9 100644 --- a/internal/experiment/webconnectivitylte/analysishttpdiff.go +++ b/internal/experiment/webconnectivitylte/analysishttpdiff.go @@ -4,16 +4,7 @@ package webconnectivitylte // HTTP diff analysis // -import ( - "net/url" - "reflect" - "strings" - - "github.com/ooni/probe-cli/v3/internal/experiment/webconnectivity" - "github.com/ooni/probe-cli/v3/internal/measurexlite" - "github.com/ooni/probe-cli/v3/internal/model" - "github.com/ooni/probe-cli/v3/internal/runtimex" -) +/* // analysisHTTPDiff computes the HTTP diff between the final request-response // observed by the probe and the TH's result. The caller is responsible of passing @@ -26,6 +17,16 @@ func (tk *TestKeys) analysisHTTPDiff(logger model.Logger, "the caller should have passed us successful HTTP observations", ) + // original HTTP diff algorithm adapted for this implementation + // + // we should run this before the check for HTTPS because otherwise + // there are several comparison issues with v0.4 due to the lack + // of analysis of the final HTTP response with the control + tk.httpDiffBodyLengthChecks(probe, th) + tk.httpDiffStatusCodeMatch(probe, th) + tk.httpDiffHeadersMatch(probe, th) + tk.httpDiffTitleMatch(probe, th) + // if we're dealing with an HTTPS request, don't perform any comparison // under the assumption that we're good if we're using TLS URL, err := url.Parse(probe.Request.URL) @@ -38,12 +39,6 @@ func (tk *TestKeys) analysisHTTPDiff(logger model.Logger, return } - // original HTTP diff algorithm adapted for this implementation - tk.httpDiffBodyLengthChecks(probe, th) - tk.httpDiffStatusCodeMatch(probe, th) - tk.httpDiffHeadersMatch(probe, th) - tk.httpDiffTitleMatch(probe, th) - if tk.StatusCodeMatch != nil && *tk.StatusCodeMatch { if tk.BodyLengthMatch != nil && *tk.BodyLengthMatch { logger.Infof( @@ -144,11 +139,11 @@ func (tk *TestKeys) httpDiffStatusCodeMatch( // httpDiffHeadersMatch compares the uncommon headers. func (tk *TestKeys) httpDiffHeadersMatch( probe *model.ArchivalHTTPRequestResult, ctrl *webconnectivity.ControlHTTPRequestResult) { - control := ctrl.Headers - measurement := probe.Response.Headers - if len(control) <= 0 || len(measurement) <= 0 { + if ctrl.StatusCode <= 0 || probe.Response.Code <= 0 { return } + control := ctrl.Headers + measurement := probe.Response.Headers // Implementation note: using map because we only care about the // keys being different and we ignore the values. const ( @@ -267,3 +262,5 @@ func (tk *TestKeys) httpDiffTitleMatch( } tk.TitleMatch = &good } + +*/ diff --git a/internal/experiment/webconnectivitylte/bigx.go b/internal/experiment/webconnectivitylte/bigx.go new file mode 100644 index 0000000000..773b4492ad --- /dev/null +++ b/internal/experiment/webconnectivitylte/bigx.go @@ -0,0 +1,36 @@ +package webconnectivitylte + +// Bitmask is a bitmask using a big integer. +type Bitmask struct { + V []uint8 +} + +// Set sets the bit in position pos. +func (b *Bitmask) Set(pos int) { + idx := pos / 8 + for idx >= len(b.V) { + b.V = append(b.V, 0) + } + off := pos % 8 + b.V[idx] |= uint8(1 << off) +} + +// Clear clears the bit in position pos. +func (b *Bitmask) Clear(pos int) { + idx := pos / 8 + if idx >= len(b.V) { + return + } + off := pos % 8 + b.V[idx] &= ^uint8(1 << off) +} + +// Get gets the bit in position pos. +func (b *Bitmask) Get(pos int) bool { + idx := pos / 8 + if idx >= len(b.V) { + return false + } + off := pos % 8 + return (b.V[idx] >> off) == 1 +} diff --git a/internal/experiment/webconnectivitylte/bigx_test.go b/internal/experiment/webconnectivitylte/bigx_test.go new file mode 100644 index 0000000000..55b0bac6e6 --- /dev/null +++ b/internal/experiment/webconnectivitylte/bigx_test.go @@ -0,0 +1,47 @@ +package webconnectivitylte + +import "testing" + +func TestBitmask(t *testing.T) { + bitmask := &Bitmask{} + + bitmask.Set(55) + t.Logf("%v", bitmask.V) + + bitmask.Set(17) + t.Logf("%v", bitmask.V) + + bitmask.Set(4) + t.Logf("%v", bitmask.V) + + v1 := bitmask.Get(55) + t.Logf("%v", v1) + + v2 := bitmask.Get(50) + t.Logf("%v", v2) + + v3 := bitmask.Get(17) + t.Logf("%v", v3) + + v4 := bitmask.Get(14) + t.Logf("%v", v4) + + v5 := bitmask.Get(4) + t.Logf("%v", v5) + + v6 := bitmask.Get(0) + t.Logf("%v", v6) + + bitmask.Clear(55) + bitmask.Clear(4) + t.Logf("%v", bitmask.V) + + v7 := bitmask.Get(55) + t.Logf("%v", v7) + + v8 := bitmask.Get(17) + t.Logf("%v", v8) + + v9 := bitmask.Get(4) + t.Logf("%v", v9) +} diff --git a/internal/experiment/webconnectivitylte/testkeys.go b/internal/experiment/webconnectivitylte/testkeys.go index b580659116..dc806dafe0 100644 --- a/internal/experiment/webconnectivitylte/testkeys.go +++ b/internal/experiment/webconnectivitylte/testkeys.go @@ -14,6 +14,7 @@ import ( "github.com/ooni/probe-cli/v3/internal/experiment/webconnectivity" "github.com/ooni/probe-cli/v3/internal/legacy/tracex" "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/optional" ) // TestKeys contains the results produced by web_connectivity. @@ -81,11 +82,11 @@ type TestKeys struct { // DNSConsistency indicates whether there is consistency between // the TH's DNS results and the probe's DNS results. - DNSConsistency string `json:"dns_consistency"` + DNSConsistency optional.Value[string] `json:"dns_consistency"` // HTTPExperimentFailure indicates whether there was a failure in // the final HTTP request that we recorded. - HTTPExperimentFailure *string `json:"http_experiment_failure"` + HTTPExperimentFailure optional.Value[string] `json:"http_experiment_failure"` // BlockingFlags explains why we think that the website is blocked. BlockingFlags int64 `json:"x_blocking_flags"` @@ -95,16 +96,16 @@ type TestKeys struct { NullNullFlags int64 `json:"x_null_null_flags"` // BodyLength match tells us whether the body length matches. - BodyLengthMatch *bool `json:"body_length_match"` + BodyLengthMatch optional.Value[bool] `json:"body_length_match"` // HeadersMatch tells us whether the headers match. - HeadersMatch *bool `json:"headers_match"` + HeadersMatch optional.Value[bool] `json:"headers_match"` // StatusCodeMatch tells us whether the status code matches. - StatusCodeMatch *bool `json:"status_code_match"` + StatusCodeMatch optional.Value[bool] `json:"status_code_match"` // TitleMatch tells us whether the title matches. - TitleMatch *bool `json:"title_match"` + TitleMatch optional.Value[bool] `json:"title_match"` // Blocking indicates the reason for blocking. This is notoriously a bad // type because it can be one of the following values: @@ -354,14 +355,14 @@ func NewTestKeys() *TestKeys { ControlFailure: nil, DNSFlags: 0, DNSExperimentFailure: nil, - DNSConsistency: "", - HTTPExperimentFailure: nil, + DNSConsistency: optional.None[string](), + HTTPExperimentFailure: optional.None[string](), BlockingFlags: 0, NullNullFlags: 0, - BodyLengthMatch: nil, - HeadersMatch: nil, - StatusCodeMatch: nil, - TitleMatch: nil, + BodyLengthMatch: optional.None[bool](), + HeadersMatch: optional.None[bool](), + StatusCodeMatch: optional.None[bool](), + TitleMatch: optional.None[bool](), Blocking: nil, Accessible: nil, ControlRequest: nil, diff --git a/internal/experiment/webconnectivityqa/badssl.go b/internal/experiment/webconnectivityqa/badssl.go index 573cec49ca..42b69ba2f2 100644 --- a/internal/experiment/webconnectivityqa/badssl.go +++ b/internal/experiment/webconnectivityqa/badssl.go @@ -10,7 +10,7 @@ import ( func badSSLWithExpiredCertificate() *TestCase { return &TestCase{ Name: "badSSLWithExpiredCertificate", - Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now + Flags: 0, Input: "https://expired.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -21,8 +21,6 @@ func badSSLWithExpiredCertificate() *TestCase { HTTPExperimentFailure: "ssl_invalid_certificate", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured - Accessible: nil, - Blocking: nil, }, } } @@ -32,7 +30,7 @@ func badSSLWithExpiredCertificate() *TestCase { func badSSLWithWrongServerName() *TestCase { return &TestCase{ Name: "badSSLWithWrongServerName", - Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now + Flags: 0, Input: "https://wrong.host.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -43,8 +41,6 @@ func badSSLWithWrongServerName() *TestCase { HTTPExperimentFailure: "ssl_invalid_hostname", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured - Accessible: nil, - Blocking: nil, }, } } @@ -53,7 +49,7 @@ func badSSLWithWrongServerName() *TestCase { func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { return &TestCase{ Name: "badSSLWithUnknownAuthorityWithConsistentDNS", - Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now + Flags: 0, Input: "https://untrusted-root.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -64,8 +60,6 @@ func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { HTTPExperimentFailure: "ssl_unknown_authority", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured - Accessible: nil, - Blocking: nil, }, } } @@ -79,7 +73,7 @@ func badSSLWithUnknownAuthorityWithInconsistentDNS() *TestCase { Configure: func(env *netemx.QAEnv) { // add DPI rule to force all the cleartext DNS queries to - // point the client to used the ISPProxyAddress + // point the client to use the ISPProxyAddress env.DPIEngine().AddRule(&netem.DPISpoofDNSResponse{ Addresses: []string{netemx.AddressBadSSLCom}, Logger: env.Logger(), @@ -93,7 +87,7 @@ func badSSLWithUnknownAuthorityWithInconsistentDNS() *TestCase { HTTPExperimentFailure: "ssl_unknown_authority", XStatus: 9248, // StatusExperimentHTTP | StatusAnomalyTLSHandshake | StatusAnomalyDNS XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 33, // analysisFlagSuccess | analysisFlagDNSBlocking + XBlockingFlags: 1, // analysisFlagDNSBlocking Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/control.go b/internal/experiment/webconnectivityqa/control.go index a831bc156a..c68e52bdf1 100644 --- a/internal/experiment/webconnectivityqa/control.go +++ b/internal/experiment/webconnectivityqa/control.go @@ -11,7 +11,7 @@ import ( func controlFailureWithSuccessfulHTTPWebsite() *TestCase { return &TestCase{ Name: "controlFailureWithSuccessfulHTTPWebsite", - Flags: TestCaseFlagNoLTE, // BUG: has "consistent" DNS but still blocking=null and accessible=null + Flags: 0, Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -56,7 +56,7 @@ func controlFailureWithSuccessfulHTTPWebsite() *TestCase { func controlFailureWithSuccessfulHTTPSWebsite() *TestCase { return &TestCase{ Name: "controlFailureWithSuccessfulHTTPSWebsite", - Flags: TestCaseFlagNoLTE, // because it (correctly!) sets the DNS as consistent thanks to TLS + Flags: 0, Input: "https://www.example.org/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/dnsblocking.go b/internal/experiment/webconnectivityqa/dnsblocking.go index e2bbbf1719..3335a40cb1 100644 --- a/internal/experiment/webconnectivityqa/dnsblocking.go +++ b/internal/experiment/webconnectivityqa/dnsblocking.go @@ -47,8 +47,7 @@ func dnsBlockingNXDOMAIN() *TestCase { Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { - // remove the record so that the DNS query returns NXDOMAIN, which is then - // converted into android_dns_cache_no_data by the emulation layer + // remove the record so that the DNS query returns NXDOMAIN env.ISPResolverConfig().RemoveRecord("www.example.com") }, ExpectErr: false, @@ -68,7 +67,7 @@ func dnsBlockingNXDOMAIN() *TestCase { func dnsBlockingBOGON() *TestCase { return &TestCase{ Name: "dnsBlockingBOGON", - Flags: TestCaseFlagNoLTE, // We're not ready yet + Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { env.ISPResolverConfig().RemoveRecord("www.example.com") diff --git a/internal/experiment/webconnectivityqa/dnshijacking.go b/internal/experiment/webconnectivityqa/dnshijacking.go index 75a0cbf66d..a4732630af 100644 --- a/internal/experiment/webconnectivityqa/dnshijacking.go +++ b/internal/experiment/webconnectivityqa/dnshijacking.go @@ -8,11 +8,9 @@ import ( // dnsHijackingToProxyWithHTTPURL is the case where an ISP rule forces clients to always // use an explicity passthrough proxy for a given domain. func dnsHijackingToProxyWithHTTPURL() *TestCase { - // TODO(bassosimone): it's debateable whether this case is actually WAI but the - // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ Name: "dnsHijackingToProxyWithHTTPURL", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks the DNS is consistent + Flags: 0, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -49,7 +47,7 @@ func dnsHijackingToProxyWithHTTPSURL() *TestCase { // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ Name: "dnsHijackingToProxyWithHTTPSURL", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks the DNS is consistent + Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/httpdiff.go b/internal/experiment/webconnectivityqa/httpdiff.go index 2a619337f1..374cd36014 100644 --- a/internal/experiment/webconnectivityqa/httpdiff.go +++ b/internal/experiment/webconnectivityqa/httpdiff.go @@ -11,7 +11,7 @@ import ( func httpDiffWithConsistentDNS() *TestCase { return &TestCase{ Name: "httpDiffWithConsistentDNS", - Flags: TestCaseFlagNoLTE, // BUG: LTE does not set whether the headers match + Flags: 0, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -49,12 +49,12 @@ func httpDiffWithConsistentDNS() *TestCase { func httpDiffWithInconsistentDNS() *TestCase { return &TestCase{ Name: "httpDiffWithInconsistentDNS", - Flags: TestCaseFlagNoLTE, // BUG: LTE does not detect any HTTP diff here + Flags: 0, Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { // add DPI rule to force all the cleartext DNS queries to - // point the client to used the ISPProxyAddress + // point the client to use the ISPProxyAddress env.DPIEngine().AddRule(&netem.DPISpoofDNSResponse{ Addresses: []string{netemx.ISPProxyAddress}, Logger: env.Logger(), @@ -92,7 +92,7 @@ func httpDiffWithInconsistentDNS() *TestCase { TitleMatch: false, XStatus: 96, // StatusAnomalyHTTPDiff | StatusAnomalyDNS XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 35, // analysisFlagSuccess | analysisFlagDNSBlocking | analysisFlagTCPIPBlocking + XBlockingFlags: 17, // analysisFlagDNSBlocking | analysisFlagHTTPDiff Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index 0f265090fd..09be893660 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -11,7 +11,7 @@ import ( func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionRefusedForHTTP", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/32447", Configure: func(env *netemx.QAEnv) { @@ -37,7 +37,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 8320, // StatusExperimentHTTP | StatusAnomalyConnect XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, @@ -49,7 +49,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { func redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -75,7 +75,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 8320, // StatusExperimentHTTP | StatusAnomalyConnect XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, @@ -125,7 +125,7 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTP() *TestCase { func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionResetForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -163,7 +163,7 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenNXDOMAIN", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -181,8 +181,8 @@ func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { DNSConsistency: "consistent", HTTPExperimentFailure: "dns_nxdomain_error", XStatus: 8224, // StatusExperimentHTTP | StatusAnomalyDNS - XDNSFlags: 0, - XBlockingFlags: 8, // analysisFlagHTTPBlocking + XDNSFlags: 2, // AnalysisDNSUnexpectedFailure + XBlockingFlags: 1, // analysisFlagDNSBlocking Accessible: false, Blocking: "dns", }, @@ -232,7 +232,7 @@ func redirectWithConsistentDNSAndThenEOFForHTTP() *TestCase { func redirectWithConsistentDNSAndThenEOFForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenEOFForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -258,7 +258,7 @@ func redirectWithConsistentDNSAndThenEOFForHTTPS() *TestCase { HTTPExperimentFailure: "eof_error", XStatus: 8448, // StatusExperimentHTTP | StatusAnomalyReadWrite XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, @@ -309,7 +309,7 @@ func redirectWithConsistentDNSAndThenTimeoutForHTTP() *TestCase { func redirectWithConsistentDNSAndThenTimeoutForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenTimeoutForHTTPS", - Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) + Flags: 0, Input: "https://bit.ly/21645", LongTest: true, Configure: func(env *netemx.QAEnv) { @@ -336,7 +336,7 @@ func redirectWithConsistentDNSAndThenTimeoutForHTTPS() *TestCase { HTTPExperimentFailure: "generic_timeout_error", XStatus: 8704, // StatusExperimentHTTP | StatusAnomalyUnknown XDNSFlags: 0, - XBlockingFlags: 32, // analysisFlagSuccess + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "http-failure", }, diff --git a/internal/experiment/webconnectivityqa/success.go b/internal/experiment/webconnectivityqa/success.go index 1bd25bbaa4..25906d0df2 100644 --- a/internal/experiment/webconnectivityqa/success.go +++ b/internal/experiment/webconnectivityqa/success.go @@ -27,7 +27,7 @@ func successWithHTTP() *TestCase { func successWithHTTPS() *TestCase { return &TestCase{ Name: "successWithHTTPS", - Flags: TestCaseFlagNoLTE, // it does not set any HTTP comparison value with HTTPS + Flags: 0, Input: "https://www.example.com/", Configure: nil, ExpectErr: false, diff --git a/internal/experiment/webconnectivityqa/tcpblocking.go b/internal/experiment/webconnectivityqa/tcpblocking.go index dc568f9d10..85ee6a7cc7 100644 --- a/internal/experiment/webconnectivityqa/tcpblocking.go +++ b/internal/experiment/webconnectivityqa/tcpblocking.go @@ -40,7 +40,7 @@ func tcpBlockingConnectTimeout() *TestCase { func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { return &TestCase{ Name: "tcpBlockingConnectionRefusedWithInconsistentDNS", - Flags: TestCaseFlagNoLTE, // with LTE we can bypass the blocking + Flags: 0, Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -68,7 +68,7 @@ func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 4256, // StatusExperimentConnect | StatusAnomalyConnect | StatusAnomalyDNS XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 35, // analysisFlagSuccess | analysisFlagDNSBlocking | analysisFlagTCPIPBlocking + XBlockingFlags: 3, // analysisFlagDNSBlocking | analysisFlagTCPIPBlocking Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/testkeys.go b/internal/experiment/webconnectivityqa/testkeys.go index f33e8c040c..f4035bcfb5 100644 --- a/internal/experiment/webconnectivityqa/testkeys.go +++ b/internal/experiment/webconnectivityqa/testkeys.go @@ -77,12 +77,17 @@ func compareTestKeys(expected, got *testKeys) error { // ignore the fields that are specific to v0.4 options = append(options, cmpopts.IgnoreFields(testKeys{}, "XStatus")) + // XXX: just temporarily... + options = append(options, cmpopts.IgnoreFields(testKeys{}, "XDNSFlags", "XBlockingFlags", "XNullNullFlags")) + // BUG: LTE does not set http_experiment_failure options = append(options, cmpopts.IgnoreFields(testKeys{}, "HTTPExperimentFailure")) // BUG: LTE does not set body_proportion options = append(options, cmpopts.IgnoreFields(testKeys{}, "BodyProportion")) + options = append(options, cmpopts.IgnoreFields(testKeys{}, "DNSExperimentFailure")) + default: return fmt.Errorf("unknown experiment version: %s", got.XExperimentVersion) } diff --git a/internal/experiment/webconnectivityqa/websitedown.go b/internal/experiment/webconnectivityqa/websitedown.go index 2918559b99..aee748d52e 100644 --- a/internal/experiment/webconnectivityqa/websitedown.go +++ b/internal/experiment/webconnectivityqa/websitedown.go @@ -21,7 +21,7 @@ func websiteDownNXDOMAIN() *TestCase { */ return &TestCase{ Name: "websiteDownNXDOMAIN", - Flags: TestCaseFlagNoV04, // see above + Flags: 0, // see above Input: "http://www.example.xyz/", // domain not defined in the simulation Configure: nil, ExpectErr: false, @@ -31,7 +31,7 @@ func websiteDownNXDOMAIN() *TestCase { XStatus: 2052, // StatusExperimentDNS | StatusSuccessNXDOMAIN XBlockingFlags: 0, XNullNullFlags: 1, // analysisFlagNullNullNoAddrs - Accessible: false, + Accessible: true, Blocking: false, }, } From 22cc17c4b37fa5ea216cc2621aafcf4d116de987 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 18:30:22 +0100 Subject: [PATCH 88/97] x --- .../webconnectivitylte/analysisclassic.go | 33 +++++++++++++++++++ .../webconnectivitylte/analysiscorev2.go | 4 +-- internal/minipipeline/classic.go | 3 ++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 internal/experiment/webconnectivitylte/analysisclassic.go diff --git a/internal/experiment/webconnectivitylte/analysisclassic.go b/internal/experiment/webconnectivitylte/analysisclassic.go new file mode 100644 index 0000000000..9716073a5c --- /dev/null +++ b/internal/experiment/webconnectivitylte/analysisclassic.go @@ -0,0 +1,33 @@ +package webconnectivitylte + +import ( + "github.com/ooni/probe-cli/v3/internal/minipipeline" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) + +func (tk *TestKeys) analysisClassic(logger model.Logger) { + // Since we run after all tasks have completed (or so we assume) we're + // not going to use any form of locking here. + + // 1. produce observations using the minipipeline + container := minipipeline.NewWebObservationsContainer() + container.IngestDNSLookupEvents(tk.Queries...) + container.IngestTCPConnectEvents(tk.TCPConnect...) + container.IngestTLSHandshakeEvents(tk.TLSHandshakes...) + container.IngestHTTPRoundTripEvents(tk.Requests...) + + // be defensive in case the control request or control are not defined + if tk.ControlRequest != nil && tk.Control != nil { + // Implementation note: the only error that can happen here is when the input + // doesn't parse as a URL, which should have triggered previous errors + runtimex.Try0(container.IngestControlMessages(tk.ControlRequest, tk.Control)) + } + + // 2. filter observations to only include results collected by the + // system resolver, which approximates v0.4's results + classic := minipipeline.ClassicFilter(container) + + // 3. run the classic analysis algorithm + tk.analysisClassicOld(logger, classic) +} diff --git a/internal/experiment/webconnectivitylte/analysiscorev2.go b/internal/experiment/webconnectivitylte/analysiscorev2.go index 4c03fdc24f..6ca6bd1065 100644 --- a/internal/experiment/webconnectivitylte/analysiscorev2.go +++ b/internal/experiment/webconnectivitylte/analysiscorev2.go @@ -33,7 +33,7 @@ func (tk *TestKeys) analysisToplevelV2(logger model.Logger) { classic := minipipeline.ClassicFilter(container) // 3. run the classic analysis algorithm - tk.analysisClassic(logger, classic) + tk.analysisClassicOld(logger, classic) } func analysisValueToPointer[T any](input T) *T { @@ -47,7 +47,7 @@ func analysisOptionalToPointer[T any](input optional.Value[T]) *T { return analysisValueToPointer(input.Unwrap()) } -func (tk *TestKeys) analysisClassic(logger model.Logger, container *minipipeline.WebObservationsContainer) { +func (tk *TestKeys) analysisClassicOld(logger model.Logger, container *minipipeline.WebObservationsContainer) { // dump the observations fmt.Printf("%s\n", must.MarshalJSON(container)) diff --git a/internal/minipipeline/classic.go b/internal/minipipeline/classic.go index 58d8045149..53fba0a900 100644 --- a/internal/minipipeline/classic.go +++ b/internal/minipipeline/classic.go @@ -46,6 +46,9 @@ func ClassicFilter(input *WebObservationsContainer) (output *WebObservationsCont if output.knownIPAddresses[ipAddr] == nil { continue } + if !entry.TagFetchBody.UnwrapOr(false) { + continue + } output.KnownTCPEndpoints[txid] = entry } From 601e4d379aa2b0edaa1139198887b43d855a5959 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 20:27:40 +0100 Subject: [PATCH 89/97] x --- .../webconnectivitylte/analysisclassic.go | 261 +++++++++++++++++- .../webconnectivitylte/analysiscore.go | 7 + 2 files changed, 266 insertions(+), 2 deletions(-) diff --git a/internal/experiment/webconnectivitylte/analysisclassic.go b/internal/experiment/webconnectivitylte/analysisclassic.go index 9716073a5c..132f3762b8 100644 --- a/internal/experiment/webconnectivitylte/analysisclassic.go +++ b/internal/experiment/webconnectivitylte/analysisclassic.go @@ -1,8 +1,12 @@ package webconnectivitylte import ( + "fmt" + "github.com/ooni/probe-cli/v3/internal/minipipeline" "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/must" + "github.com/ooni/probe-cli/v3/internal/optional" "github.com/ooni/probe-cli/v3/internal/runtimex" ) @@ -28,6 +32,259 @@ func (tk *TestKeys) analysisClassic(logger model.Logger) { // system resolver, which approximates v0.4's results classic := minipipeline.ClassicFilter(container) - // 3. run the classic analysis algorithm - tk.analysisClassicOld(logger, classic) + // dump the observations + fmt.Printf("%s\n", must.MarshalJSON(classic)) + + // 3. produce the woa based on the observations + woa := minipipeline.AnalyzeWebObservations(classic) + + // dump the analysis + fmt.Printf("%s\n", must.MarshalJSON(woa)) + + // 4. determine the DNS consistency + switch { + case woa.DNSLookupUnexpectedFailure.Len() <= 0 && // no unexpected failures; and + woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() <= 0 && // no invalid addresses; and + (woa.DNSLookupSuccessWithValidAddressClassic.Len() > 0 || // good addrs; or + woa.DNSLookupExpectedFailure.Len() > 0): // expected failures + tk.DNSConsistency = optional.Some("consistent") + + case woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() > 0 || // unexpected addrs; or + woa.DNSLookupUnexpectedFailure.Len() > 0: // unexpected failures + tk.DNSConsistency = optional.Some("inconsistent") + + default: + tk.DNSConsistency = optional.None[string]() + } + + // we must set blocking to "dns" when there's a DNS inconsistency + setBlocking := func(value string) string { + switch { + case !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent": + return "dns" + default: + return value + } + } + + setBlockingNil := func() { + switch { + case !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent": + tk.Blocking = "dns" + tk.Accessible = false + default: + tk.Blocking = nil + tk.Accessible = nil + } + } + + // 5. set HTTPDiff values + if !woa.HTTPFinalResponseDiffBodyProportionFactor.IsNone() { + tk.BodyLengthMatch = optional.Some(woa.HTTPFinalResponseDiffBodyProportionFactor.Unwrap() > 0.7) + } + if !woa.HTTPFinalResponseDiffUncommonHeadersIntersection.IsNone() { + tk.HeadersMatch = optional.Some(len(woa.HTTPFinalResponseDiffUncommonHeadersIntersection.Unwrap()) > 0) + } + tk.StatusCodeMatch = woa.HTTPFinalResponseDiffStatusCodeMatch + if !woa.HTTPFinalResponseDiffTitleDifferentLongWords.IsNone() { + tk.TitleMatch = optional.Some(len(woa.HTTPFinalResponseDiffTitleDifferentLongWords.Unwrap()) <= 0) + } + + // 6. determine blocking & accessible + + for _, entry := range woa.Linear { + + // handle the case where there's a final response + // + // as a reminder, a final response is a successful response with 2xx, 4xx or 5xx status + if !entry.HTTPResponseIsFinal.IsNone() && entry.HTTPResponseIsFinal.Unwrap() { + + // if we were using TLS, we're good + if !entry.TLSHandshakeFailure.IsNone() && entry.TLSHandshakeFailure.Unwrap() == "" { + tk.Blocking = false + tk.Accessible = true + return + } + + // handle the case where there's no control + if entry.ControlHTTPFailure.IsNone() { + tk.Blocking = nil + tk.Accessible = nil + return + } + + // try to determine whether the page is good + if !tk.StatusCodeMatch.IsNone() && tk.StatusCodeMatch.Unwrap() { + if !tk.BodyLengthMatch.IsNone() && tk.BodyLengthMatch.Unwrap() { + tk.Blocking = false + tk.Accessible = true + return + } + if !tk.HeadersMatch.IsNone() && tk.HeadersMatch.Unwrap() { + tk.Blocking = false + tk.Accessible = true + return + } + if !tk.TitleMatch.IsNone() && tk.TitleMatch.Unwrap() { + tk.Blocking = false + tk.Accessible = true + return + } + // fallthrough + } + + // otherwise, declare that there's an http-diff + tk.Blocking = setBlocking("http-diff") + tk.Accessible = false + return + } + + // handle the case of HTTP failure + if entry.Type == minipipeline.WebObservationTypeHTTPRoundTrip && + !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { + + // handle the case where there's no control + if entry.ControlHTTPFailure.IsNone() { + tk.Blocking = nil + tk.Accessible = nil + return + } + + // handle the case of expected failure + if entry.ControlHTTPFailure.Unwrap() != "" { + // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not + // correctly distinguish down websites, so we need to do the same for + // comparability purposes. The correct result is with .Accessible == false. + tk.Blocking = false + tk.Accessible = true + return + } + + // handle an unexpected failure + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // handle the case of TLS failure + if entry.Type == minipipeline.WebObservationTypeTLSHandshake && + !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { + + // handle the case where there is no TLS control + if entry.ControlTLSHandshakeFailure.IsNone() { + + // handle the case where we have no final expectation from the control + if entry.ControlHTTPFailure.IsNone() { + tk.Blocking = nil + tk.Accessible = nil + return + } + + // otherwise, we're probably in a redirect w/o control + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // handle the case of expected failure + if entry.ControlTLSHandshakeFailure.Unwrap() != "" { + // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not + // correctly distinguish down websites, so we need to do the same for + // comparability purposes. The correct result here is false, false. + // + // XXX also this algorithm here is disgusting + setBlockingNil() + return + } + + // handle an unexpected failure + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // handle the case of TCP failure + if entry.Type == minipipeline.WebObservationTypeTCPConnect && + !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { + + // handle the case where there's no TCP control + if entry.ControlTCPConnectFailure.IsNone() { + + // handle the case where we have no final expectation from the control + if entry.ControlHTTPFailure.IsNone() { + tk.Blocking = nil + tk.Accessible = nil + return + } + + // otherwise, we're probably in a redirect w/o control + tk.Blocking = setBlocking("http-failure") + tk.Accessible = false + return + } + + // handle the case of expected failure + if entry.ControlTCPConnectFailure.Unwrap() != "" { + // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not + // correctly distinguish down websites, so we need to do the same for + // comparability purposes. The correct result is with .Accessible == false. + tk.Blocking = false + tk.Accessible = true + return + } + + // handle an unexpected failure + tk.Blocking = setBlocking("tcp_ip") + tk.Accessible = false + return + } + + // handle the case of DNS failure + if entry.Type == minipipeline.WebObservationTypeDNSLookup && + !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { + + // handle the case where there's no DNS control + if entry.ControlDNSLookupFailure.IsNone() { + + // BUG: we need to copy control information also for DNS + // lookups otherwise we're not able to xcompare. + + // handle the case where we have no final expectation from the control + if entry.ControlHTTPFailure.IsNone() { + tk.Blocking = nil + tk.Accessible = nil + return + } + + // otherwise, we're probably in a redirect w/o control + tk.Blocking = setBlocking("dns") + tk.Accessible = false + return + } + + // handle the case of expected failure + if entry.ControlDNSLookupFailure.Unwrap() != "" { + // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not + // correctly distinguish down websites, so we need to do the same for + // comparability purposes. The correct result is with .Accessible == false. + tk.Blocking = false + tk.Accessible = true + return + } + + // handle an unexpected failure + tk.Blocking = setBlocking("dns") + tk.Accessible = false + return + } + } + + // if we arrive here, it means we could not make sense of what + // happened, hence let us ask for help to our users + + logger.Warnf("BUG! We were not able to classify this measurement!") + logger.Warnf("The following is the list of observations we were processing:") + logger.Warnf("\n%s", must.MarshalAndIndentJSON(woa, "", " ")) + logger.Warnf("Please, report this bug at https://github.com/ooni/probe/issues/new") + logger.Warnf("including the above JSON and possibly additional context") } diff --git a/internal/experiment/webconnectivitylte/analysiscore.go b/internal/experiment/webconnectivitylte/analysiscore.go index 2df94f40ed..6198508f77 100644 --- a/internal/experiment/webconnectivitylte/analysiscore.go +++ b/internal/experiment/webconnectivitylte/analysiscore.go @@ -39,6 +39,8 @@ const ( // AnalysisUseV2 indicates whether to use V2 of the analysis algorithm. var AnalysisUseV2 = true +var AnalysisUseClassic = true + // analysisToplevel is the toplevel function that analyses the results // of the experiment once all network tasks have completed. // @@ -101,6 +103,11 @@ func (tk *TestKeys) analysisToplevel(logger model.Logger) { // Since we run after all tasks have completed (or so we assume) we're // not going to use any form of locking here. + if AnalysisUseClassic { + tk.analysisClassic(logger) + return + } + // these functions compute the value of XBlockingFlags if AnalysisUseV2 { tk.analysisToplevelV2(logger) From 3c925202f339aefb539ecf1466f2e0dc98631b13 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 22:43:06 +0100 Subject: [PATCH 90/97] x --- internal/minipipeline/analysis.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index 3c29b39ef4..f538fcd074 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -36,7 +36,7 @@ import ( // operation that failed for the current TagDepth. // // Within each group, successes sort before failures because the empty -// string has priority over nøn-empty strings. +// string has priority over non-empty strings. // // So, when walking the list from index 0 to index N, you encounter the // latest redirects first, you observe the more complex operations first, From fd5ea6350f939ba1d49b5b43c54fe38391e6d30d Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 22:55:28 +0100 Subject: [PATCH 91/97] x --- .../webconnectivitylte/analysisclassic.go | 9 ----- .../webconnectivitylte/analysiscore.go | 35 +++++++++++-------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/internal/experiment/webconnectivitylte/analysisclassic.go b/internal/experiment/webconnectivitylte/analysisclassic.go index 132f3762b8..4e80437e87 100644 --- a/internal/experiment/webconnectivitylte/analysisclassic.go +++ b/internal/experiment/webconnectivitylte/analysisclassic.go @@ -278,13 +278,4 @@ func (tk *TestKeys) analysisClassic(logger model.Logger) { return } } - - // if we arrive here, it means we could not make sense of what - // happened, hence let us ask for help to our users - - logger.Warnf("BUG! We were not able to classify this measurement!") - logger.Warnf("The following is the list of observations we were processing:") - logger.Warnf("\n%s", must.MarshalAndIndentJSON(woa, "", " ")) - logger.Warnf("Please, report this bug at https://github.com/ooni/probe/issues/new") - logger.Warnf("including the above JSON and possibly additional context") } diff --git a/internal/experiment/webconnectivitylte/analysiscore.go b/internal/experiment/webconnectivitylte/analysiscore.go index 6198508f77..e4686df58c 100644 --- a/internal/experiment/webconnectivitylte/analysiscore.go +++ b/internal/experiment/webconnectivitylte/analysiscore.go @@ -36,10 +36,9 @@ const ( analysisFlagSuccess ) -// AnalysisUseV2 indicates whether to use V2 of the analysis algorithm. -var AnalysisUseV2 = true - -var AnalysisUseClassic = true +// AnalysisEngineFn is the function that runs the analysis engine for +// processing and scoring measurements collected by LTE. +var AnalysisEngineFn func(tk *TestKeys, logger model.Logger) = AnalysisEngineOrig // analysisToplevel is the toplevel function that analyses the results // of the experiment once all network tasks have completed. @@ -100,19 +99,25 @@ var AnalysisUseClassic = true // As an improvement over Web Connectivity v0.4, we also attempt to identify // special subcases of a null, null result to provide the user with more information. func (tk *TestKeys) analysisToplevel(logger model.Logger) { - // Since we run after all tasks have completed (or so we assume) we're - // not going to use any form of locking here. + AnalysisEngineFn(tk, logger) +} - if AnalysisUseClassic { - tk.analysisClassic(logger) - return - } +// AnalysisEngineOrig is the original analysis engine we wrote for LTE. This engine +// aims to detect and report about all the possible ways in which the measured website +// is blocked. As of 2023-11-30, we still consider this engine experimental. +func AnalysisEngineOrig(tk *TestKeys, logger model.Logger) { + tk.analysisOrig(logger) +} - // these functions compute the value of XBlockingFlags - if AnalysisUseV2 { - tk.analysisToplevelV2(logger) - return - } +// AnalysisEngineClassic is an alternative analysis engine that aims to produce +// results that are backward compatible with Web Connectivity v0.4. +func AnalysisEngineClassic(tk *TestKeys, logger model.Logger) { + tk.analysisClassic(logger) +} + +func (tk *TestKeys) analysisOrig(logger model.Logger) { + // Since we run after all tasks have completed (or so we assume) we're + // not going to use any form of locking here. tk.analysisDNSToplevel(logger, model.GeoIPASNLookupperFunc(geoipx.LookupASN)) tk.analysisTCPIPToplevel(logger) From 39723b88783fe7008b56cc97112af79b67e3ea68 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 22:56:18 +0100 Subject: [PATCH 92/97] [ci skip] --- internal/experiment/webconnectivitylte/analysiscore.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/experiment/webconnectivitylte/analysiscore.go b/internal/experiment/webconnectivitylte/analysiscore.go index e4686df58c..1c573fee2b 100644 --- a/internal/experiment/webconnectivitylte/analysiscore.go +++ b/internal/experiment/webconnectivitylte/analysiscore.go @@ -119,6 +119,7 @@ func (tk *TestKeys) analysisOrig(logger model.Logger) { // Since we run after all tasks have completed (or so we assume) we're // not going to use any form of locking here. + // these functions compute the value of XBlockingFlags tk.analysisDNSToplevel(logger, model.GeoIPASNLookupperFunc(geoipx.LookupASN)) tk.analysisTCPIPToplevel(logger) tk.analysisTLSToplevel(logger) From 64b43f0059930465e1990ed4668e790e757730e6 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 1 Dec 2023 00:16:33 +0100 Subject: [PATCH 93/97] x --- .../webconnectivitylte/analysisclassic.go | 327 ++++++++++-------- .../webconnectivitylte/analysiscore.go | 8 +- 2 files changed, 190 insertions(+), 145 deletions(-) diff --git a/internal/experiment/webconnectivitylte/analysisclassic.go b/internal/experiment/webconnectivitylte/analysisclassic.go index 4e80437e87..52a2aa4960 100644 --- a/internal/experiment/webconnectivitylte/analysisclassic.go +++ b/internal/experiment/webconnectivitylte/analysisclassic.go @@ -1,30 +1,33 @@ package webconnectivitylte import ( - "fmt" - "github.com/ooni/probe-cli/v3/internal/minipipeline" "github.com/ooni/probe-cli/v3/internal/model" - "github.com/ooni/probe-cli/v3/internal/must" "github.com/ooni/probe-cli/v3/internal/optional" "github.com/ooni/probe-cli/v3/internal/runtimex" ) +// AnalysisEngineClassic is an alternative analysis engine that aims to produce +// results that are backward compatible with Web Connectivity v0.4. +func AnalysisEngineClassic(tk *TestKeys, logger model.Logger) { + tk.analysisClassic(logger) +} + func (tk *TestKeys) analysisClassic(logger model.Logger) { // Since we run after all tasks have completed (or so we assume) we're // not going to use any form of locking here. - // 1. produce observations using the minipipeline + // 1. produce web observations container := minipipeline.NewWebObservationsContainer() container.IngestDNSLookupEvents(tk.Queries...) container.IngestTCPConnectEvents(tk.TCPConnect...) container.IngestTLSHandshakeEvents(tk.TLSHandshakes...) container.IngestHTTPRoundTripEvents(tk.Requests...) - // be defensive in case the control request or control are not defined + // be defensive in case the control request or response are not defined if tk.ControlRequest != nil && tk.Control != nil { // Implementation note: the only error that can happen here is when the input - // doesn't parse as a URL, which should have triggered previous errors + // doesn't parse as a URL, which should have caused measurer.go to fail runtimex.Try0(container.IngestControlMessages(tk.ControlRequest, tk.Control)) } @@ -32,249 +35,297 @@ func (tk *TestKeys) analysisClassic(logger model.Logger) { // system resolver, which approximates v0.4's results classic := minipipeline.ClassicFilter(container) - // dump the observations - fmt.Printf("%s\n", must.MarshalJSON(classic)) - - // 3. produce the woa based on the observations + // 3. produce a web observations analysis based on the web observations woa := minipipeline.AnalyzeWebObservations(classic) - // dump the analysis - fmt.Printf("%s\n", must.MarshalJSON(woa)) - // 4. determine the DNS consistency + tk.DNSConsistency = analysisClassicDNSConsistency(woa) + + // 5. compute the HTTPDiff values + tk.setHTTPDiffValues(woa) + + // 6. compute blocking & accessible + analysisClassicComputeBlockingAccessible(woa, tk) +} + +func analysisClassicDNSConsistency(woa *minipipeline.WebAnalysis) optional.Value[string] { switch { case woa.DNSLookupUnexpectedFailure.Len() <= 0 && // no unexpected failures; and woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() <= 0 && // no invalid addresses; and (woa.DNSLookupSuccessWithValidAddressClassic.Len() > 0 || // good addrs; or woa.DNSLookupExpectedFailure.Len() > 0): // expected failures - tk.DNSConsistency = optional.Some("consistent") + return optional.Some("consistent") case woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() > 0 || // unexpected addrs; or woa.DNSLookupUnexpectedFailure.Len() > 0: // unexpected failures - tk.DNSConsistency = optional.Some("inconsistent") + return optional.Some("inconsistent") default: - tk.DNSConsistency = optional.None[string]() - } - - // we must set blocking to "dns" when there's a DNS inconsistency - setBlocking := func(value string) string { - switch { - case !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent": - return "dns" - default: - return value - } - } - - setBlockingNil := func() { - switch { - case !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent": - tk.Blocking = "dns" - tk.Accessible = false - default: - tk.Blocking = nil - tk.Accessible = nil - } + return optional.None[string]() // none of the above } +} - // 5. set HTTPDiff values +func (tk *TestKeys) setHTTPDiffValues(woa *minipipeline.WebAnalysis) { + const bodyProportionFactor = 0.7 if !woa.HTTPFinalResponseDiffBodyProportionFactor.IsNone() { - tk.BodyLengthMatch = optional.Some(woa.HTTPFinalResponseDiffBodyProportionFactor.Unwrap() > 0.7) + tk.BodyLengthMatch = optional.Some(woa.HTTPFinalResponseDiffBodyProportionFactor.Unwrap() > bodyProportionFactor) } + if !woa.HTTPFinalResponseDiffUncommonHeadersIntersection.IsNone() { tk.HeadersMatch = optional.Some(len(woa.HTTPFinalResponseDiffUncommonHeadersIntersection.Unwrap()) > 0) } + tk.StatusCodeMatch = woa.HTTPFinalResponseDiffStatusCodeMatch if !woa.HTTPFinalResponseDiffTitleDifferentLongWords.IsNone() { tk.TitleMatch = optional.Some(len(woa.HTTPFinalResponseDiffTitleDifferentLongWords.Unwrap()) <= 0) } +} + +type analysisClassicTestKeysProxy interface { + // setBlockingString sets blocking to a string. + setBlockingString(value string) + + // setBlockingNil sets blocking to nil. + setBlockingNil() + + // setBlockingFalse sets Blocking to false. + setBlockingFalse() + + // httpDiff returns true if there's an http-diff. + httpDiff() bool +} + +var _ analysisClassicTestKeysProxy = &TestKeys{} + +// httpDiff implements analysisClassicTestKeysProxy. +func (tk *TestKeys) httpDiff() bool { + if !tk.StatusCodeMatch.IsNone() && tk.StatusCodeMatch.Unwrap() { + if !tk.BodyLengthMatch.IsNone() && tk.BodyLengthMatch.Unwrap() { + return false + } + if !tk.HeadersMatch.IsNone() && tk.HeadersMatch.Unwrap() { + return false + } + if !tk.TitleMatch.IsNone() && tk.TitleMatch.Unwrap() { + return false + } + // fallthrough + } + return true +} + +// setBlockingFalse implements analysisClassicTestKeysProxy. +func (tk *TestKeys) setBlockingFalse() { + tk.Blocking = false + tk.Accessible = true +} - // 6. determine blocking & accessible +// setBlockingNil implements analysisClassicTestKeysProxy. +func (tk *TestKeys) setBlockingNil() { + if !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent" { + tk.Blocking = "dns" + tk.Accessible = false + } else { + tk.Blocking = nil + tk.Accessible = nil + } +} +// setBlockingString implements analysisClassicTestKeysProxy. +func (tk *TestKeys) setBlockingString(value string) { + if !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent" { + tk.Blocking = "dns" + } else { + tk.Blocking = value + } + tk.Accessible = false +} + +func analysisClassicComputeBlockingAccessible(woa *minipipeline.WebAnalysis, tk analysisClassicTestKeysProxy) { + // minipipeline.NewLinearWebAnalysis produces a woa.Linear sorted + // + // 1. by descending TagDepth; + // + // 2. with TagDepth being equal, by descending [WebObservationType]; + // + // 3. with [WebObservationType] being equal, by ascending failure string; + // + // This means that you divide the list in groups like this: + // + // +------------+------------+------------+------------+ + // | TagDepth=3 | TagDepth=2 | TagDepth=1 | TagDepth=0 | + // +------------+------------+------------+------------+ + // + // Where TagDepth=3 is the last redirect and TagDepth=0 is the initial request. + // + // Each group is further divided as follows: + // + // +------+-----+-----+-----+ + // | HTTP | TLS | TCP | DNS | + // +------+-----+-----+-----+ + // + // Where each group may be empty. The first non-empty group is about the + // operation that failed for the current TagDepth. + // + // Within each group, successes sort before failures because the empty + // string has priority over non-empty strings. + // + // So, when walking the list from index 0 to index N, you encounter the + // latest redirects first, you observe the more complex operations first, + // and you see errors before failures. for _, entry := range woa.Linear { - // handle the case where there's a final response - // - // as a reminder, a final response is a successful response with 2xx, 4xx or 5xx status + // 1. As a special case, handle a "final" response first. We define "final" a + // successful response whose status code is like 2xx, 4xx, or 5xx. if !entry.HTTPResponseIsFinal.IsNone() && entry.HTTPResponseIsFinal.Unwrap() { - // if we were using TLS, we're good + // 1.1. Handle the case of succesful response over TLS. if !entry.TLSHandshakeFailure.IsNone() && entry.TLSHandshakeFailure.Unwrap() == "" { - tk.Blocking = false - tk.Accessible = true + tk.setBlockingFalse() return } - // handle the case where there's no control + // 1.2. Handle the case of missing HTTP control. if entry.ControlHTTPFailure.IsNone() { - tk.Blocking = nil - tk.Accessible = nil + tk.setBlockingNil() return } - // try to determine whether the page is good - if !tk.StatusCodeMatch.IsNone() && tk.StatusCodeMatch.Unwrap() { - if !tk.BodyLengthMatch.IsNone() && tk.BodyLengthMatch.Unwrap() { - tk.Blocking = false - tk.Accessible = true - return - } - if !tk.HeadersMatch.IsNone() && tk.HeadersMatch.Unwrap() { - tk.Blocking = false - tk.Accessible = true - return - } - if !tk.TitleMatch.IsNone() && tk.TitleMatch.Unwrap() { - tk.Blocking = false - tk.Accessible = true - return - } - // fallthrough + // 1.3. Figure out whether the measurement and the control are close enough. + if !tk.httpDiff() { + tk.setBlockingFalse() + return } - // otherwise, declare that there's an http-diff - tk.Blocking = setBlocking("http-diff") - tk.Accessible = false + // 1.4. There's something different in the two responses. + tk.setBlockingString("http-diff") return } - // handle the case of HTTP failure + // 2. Let's now focus on failed HTTP round trips. if entry.Type == minipipeline.WebObservationTypeHTTPRoundTrip && !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { - // handle the case where there's no control + // 2.1. Handle the case of a missing HTTP control. Maybe + // the control server is unreachable or blocked. if entry.ControlHTTPFailure.IsNone() { - tk.Blocking = nil - tk.Accessible = nil + tk.setBlockingNil() return } - // handle the case of expected failure + // 2.2. Handle the case where both the probe and the control failed. if entry.ControlHTTPFailure.Unwrap() != "" { - // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not - // correctly distinguish down websites, so we need to do the same for - // comparability purposes. The correct result is with .Accessible == false. - tk.Blocking = false - tk.Accessible = true + // TODO(bassosimone): returning this result is wrong and we + // should also set Accessible to false. However, v0.4 + // does this and we should play along for the A/B testing. + tk.setBlockingFalse() return } - // handle an unexpected failure - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false + // 2.3. Handle the case where just the probe failed. + tk.setBlockingString("http-failure") return } - // handle the case of TLS failure + // 3. Handle the case of TLS failure. if entry.Type == minipipeline.WebObservationTypeTLSHandshake && !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { - // handle the case where there is no TLS control + // 3.1. Handle the case of missing TLS control information. The control + // only provides information for the first request. Once we start following + // redirects we do not have TLS/TCP/DNS control. if entry.ControlTLSHandshakeFailure.IsNone() { - // handle the case where we have no final expectation from the control + // 3.1.1 Handle the case of missing an expectation about what + // accessing the website should lead to, which is set forth by + // the control accessing the website and telling us. if entry.ControlHTTPFailure.IsNone() { - tk.Blocking = nil - tk.Accessible = nil + tk.setBlockingNil() return } - // otherwise, we're probably in a redirect w/o control - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false + // 3.1.2. Otherwise, if the control worked, that's blocking. + tk.setBlockingString("http-failure") return } - // handle the case of expected failure + // 3.2. Handle the case where both probe and control failed. if entry.ControlTLSHandshakeFailure.Unwrap() != "" { - // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not - // correctly distinguish down websites, so we need to do the same for - // comparability purposes. The correct result here is false, false. - // - // XXX also this algorithm here is disgusting - setBlockingNil() + // TODO(bassosimone): returning this result is wrong and we + // should set Accessible and Blocking to false. However, v0.4 + // does this and we should play along for the A/B testing. + tk.setBlockingNil() return } - // handle an unexpected failure - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false + // 3.3. Handle the case where just the probe failed. + tk.setBlockingString("http-failure") return } - // handle the case of TCP failure + // 4. Handle the case of TCP failure. if entry.Type == minipipeline.WebObservationTypeTCPConnect && !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { - // handle the case where there's no TCP control + // 4.1. Handle the case of missing TCP control info. if entry.ControlTCPConnectFailure.IsNone() { - // handle the case where we have no final expectation from the control + // 4.1.1 Handle the case of missing an expectation about what + // accessing the website should lead to. if entry.ControlHTTPFailure.IsNone() { - tk.Blocking = nil - tk.Accessible = nil + tk.setBlockingNil() return } - // otherwise, we're probably in a redirect w/o control - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false + // 4.1.2. Otherwise, if the control worked, that's blocking. + tk.setBlockingString("http-failure") return } - // handle the case of expected failure + // 4.2. Handle the case where both probe and control failed. if entry.ControlTCPConnectFailure.Unwrap() != "" { - // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not - // correctly distinguish down websites, so we need to do the same for - // comparability purposes. The correct result is with .Accessible == false. - tk.Blocking = false - tk.Accessible = true + // TODO(bassosimone): returning this result is wrong and we + // should set Accessible and Blocking to false. However, v0.4 + // does this and we should play along for the A/B testing. + tk.setBlockingFalse() return } - // handle an unexpected failure - tk.Blocking = setBlocking("tcp_ip") - tk.Accessible = false + // 4.3. Handle the case where just the probe failed. + tk.setBlockingString("tcp_ip") return } - // handle the case of DNS failure + // 5. Handle the case of DNS failure if entry.Type == minipipeline.WebObservationTypeDNSLookup && !entry.Failure.IsNone() && entry.Failure.Unwrap() != "" { - // handle the case where there's no DNS control + // 5.1. Handle the case of missing DNS control info. if entry.ControlDNSLookupFailure.IsNone() { - // BUG: we need to copy control information also for DNS - // lookups otherwise we're not able to xcompare. - - // handle the case where we have no final expectation from the control + // 5.1.1 Handle the case of missing an expectation about what + // accessing the website should lead to. if entry.ControlHTTPFailure.IsNone() { - tk.Blocking = nil - tk.Accessible = nil + tk.setBlockingFalse() return } - // otherwise, we're probably in a redirect w/o control - tk.Blocking = setBlocking("dns") - tk.Accessible = false + // 5.1.2. Otherwise, if the control worked, that's blocking. + tk.setBlockingString("dns") return } - // handle the case of expected failure + // 5.2. Handle the case where both probe and control failed. if entry.ControlDNSLookupFailure.Unwrap() != "" { - // TODO(bassosimone): this is wrong but Web Connectivity v0.4 does not - // correctly distinguish down websites, so we need to do the same for - // comparability purposes. The correct result is with .Accessible == false. - tk.Blocking = false - tk.Accessible = true + // TODO(bassosimone): returning this result is wrong and we + // should set Accessible and Blocking to false. However, v0.4 + // does this and we should play along for the A/B testing. + tk.setBlockingFalse() return } - // handle an unexpected failure - tk.Blocking = setBlocking("dns") - tk.Accessible = false + // 5.3. Handle the case where just the probe failed. + tk.setBlockingString("dns") return } } diff --git a/internal/experiment/webconnectivitylte/analysiscore.go b/internal/experiment/webconnectivitylte/analysiscore.go index 1c573fee2b..bba798798e 100644 --- a/internal/experiment/webconnectivitylte/analysiscore.go +++ b/internal/experiment/webconnectivitylte/analysiscore.go @@ -38,7 +38,7 @@ const ( // AnalysisEngineFn is the function that runs the analysis engine for // processing and scoring measurements collected by LTE. -var AnalysisEngineFn func(tk *TestKeys, logger model.Logger) = AnalysisEngineOrig +var AnalysisEngineFn func(tk *TestKeys, logger model.Logger) = AnalysisEngineClassic // analysisToplevel is the toplevel function that analyses the results // of the experiment once all network tasks have completed. @@ -109,12 +109,6 @@ func AnalysisEngineOrig(tk *TestKeys, logger model.Logger) { tk.analysisOrig(logger) } -// AnalysisEngineClassic is an alternative analysis engine that aims to produce -// results that are backward compatible with Web Connectivity v0.4. -func AnalysisEngineClassic(tk *TestKeys, logger model.Logger) { - tk.analysisClassic(logger) -} - func (tk *TestKeys) analysisOrig(logger model.Logger) { // Since we run after all tasks have completed (or so we assume) we're // not going to use any form of locking here. From 3367af452f985d1e6bf7b1d3e71cbe8ce362422a Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 1 Dec 2023 00:17:55 +0100 Subject: [PATCH 94/97] x --- .../experiment/webconnectivityqa/badssl.go | 16 +++++++++---- .../experiment/webconnectivityqa/control.go | 4 ++-- .../webconnectivityqa/dnsblocking.go | 5 ++-- .../webconnectivityqa/dnshijacking.go | 6 +++-- .../experiment/webconnectivityqa/httpdiff.go | 8 +++---- .../experiment/webconnectivityqa/redirect.go | 24 +++++++++---------- .../experiment/webconnectivityqa/success.go | 2 +- .../webconnectivityqa/tcpblocking.go | 4 ++-- .../experiment/webconnectivityqa/testkeys.go | 5 ---- .../webconnectivityqa/websitedown.go | 4 ++-- 10 files changed, 41 insertions(+), 37 deletions(-) diff --git a/internal/experiment/webconnectivityqa/badssl.go b/internal/experiment/webconnectivityqa/badssl.go index 42b69ba2f2..573cec49ca 100644 --- a/internal/experiment/webconnectivityqa/badssl.go +++ b/internal/experiment/webconnectivityqa/badssl.go @@ -10,7 +10,7 @@ import ( func badSSLWithExpiredCertificate() *TestCase { return &TestCase{ Name: "badSSLWithExpiredCertificate", - Flags: 0, + Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now Input: "https://expired.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -21,6 +21,8 @@ func badSSLWithExpiredCertificate() *TestCase { HTTPExperimentFailure: "ssl_invalid_certificate", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured + Accessible: nil, + Blocking: nil, }, } } @@ -30,7 +32,7 @@ func badSSLWithExpiredCertificate() *TestCase { func badSSLWithWrongServerName() *TestCase { return &TestCase{ Name: "badSSLWithWrongServerName", - Flags: 0, + Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now Input: "https://wrong.host.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -41,6 +43,8 @@ func badSSLWithWrongServerName() *TestCase { HTTPExperimentFailure: "ssl_invalid_hostname", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured + Accessible: nil, + Blocking: nil, }, } } @@ -49,7 +53,7 @@ func badSSLWithWrongServerName() *TestCase { func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { return &TestCase{ Name: "badSSLWithUnknownAuthorityWithConsistentDNS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // LTE flags it correctly but let's focus on v0.4 for now Input: "https://untrusted-root.badssl.com/", Configure: func(env *netemx.QAEnv) { // nothing @@ -60,6 +64,8 @@ func badSSLWithUnknownAuthorityWithConsistentDNS() *TestCase { HTTPExperimentFailure: "ssl_unknown_authority", XStatus: 16, // StatusAnomalyControlFailure XNullNullFlags: 4, // analysisFlagNullNullTLSMisconfigured + Accessible: nil, + Blocking: nil, }, } } @@ -73,7 +79,7 @@ func badSSLWithUnknownAuthorityWithInconsistentDNS() *TestCase { Configure: func(env *netemx.QAEnv) { // add DPI rule to force all the cleartext DNS queries to - // point the client to use the ISPProxyAddress + // point the client to used the ISPProxyAddress env.DPIEngine().AddRule(&netem.DPISpoofDNSResponse{ Addresses: []string{netemx.AddressBadSSLCom}, Logger: env.Logger(), @@ -87,7 +93,7 @@ func badSSLWithUnknownAuthorityWithInconsistentDNS() *TestCase { HTTPExperimentFailure: "ssl_unknown_authority", XStatus: 9248, // StatusExperimentHTTP | StatusAnomalyTLSHandshake | StatusAnomalyDNS XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 1, // analysisFlagDNSBlocking + XBlockingFlags: 33, // analysisFlagSuccess | analysisFlagDNSBlocking Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/control.go b/internal/experiment/webconnectivityqa/control.go index c68e52bdf1..a831bc156a 100644 --- a/internal/experiment/webconnectivityqa/control.go +++ b/internal/experiment/webconnectivityqa/control.go @@ -11,7 +11,7 @@ import ( func controlFailureWithSuccessfulHTTPWebsite() *TestCase { return &TestCase{ Name: "controlFailureWithSuccessfulHTTPWebsite", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: has "consistent" DNS but still blocking=null and accessible=null Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -56,7 +56,7 @@ func controlFailureWithSuccessfulHTTPWebsite() *TestCase { func controlFailureWithSuccessfulHTTPSWebsite() *TestCase { return &TestCase{ Name: "controlFailureWithSuccessfulHTTPSWebsite", - Flags: 0, + Flags: TestCaseFlagNoLTE, // because it (correctly!) sets the DNS as consistent thanks to TLS Input: "https://www.example.org/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/dnsblocking.go b/internal/experiment/webconnectivityqa/dnsblocking.go index 3335a40cb1..e2bbbf1719 100644 --- a/internal/experiment/webconnectivityqa/dnsblocking.go +++ b/internal/experiment/webconnectivityqa/dnsblocking.go @@ -47,7 +47,8 @@ func dnsBlockingNXDOMAIN() *TestCase { Flags: 0, Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { - // remove the record so that the DNS query returns NXDOMAIN + // remove the record so that the DNS query returns NXDOMAIN, which is then + // converted into android_dns_cache_no_data by the emulation layer env.ISPResolverConfig().RemoveRecord("www.example.com") }, ExpectErr: false, @@ -67,7 +68,7 @@ func dnsBlockingNXDOMAIN() *TestCase { func dnsBlockingBOGON() *TestCase { return &TestCase{ Name: "dnsBlockingBOGON", - Flags: 0, + Flags: TestCaseFlagNoLTE, // We're not ready yet Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { env.ISPResolverConfig().RemoveRecord("www.example.com") diff --git a/internal/experiment/webconnectivityqa/dnshijacking.go b/internal/experiment/webconnectivityqa/dnshijacking.go index a4732630af..75a0cbf66d 100644 --- a/internal/experiment/webconnectivityqa/dnshijacking.go +++ b/internal/experiment/webconnectivityqa/dnshijacking.go @@ -8,9 +8,11 @@ import ( // dnsHijackingToProxyWithHTTPURL is the case where an ISP rule forces clients to always // use an explicity passthrough proxy for a given domain. func dnsHijackingToProxyWithHTTPURL() *TestCase { + // TODO(bassosimone): it's debateable whether this case is actually WAI but the + // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ Name: "dnsHijackingToProxyWithHTTPURL", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks the DNS is consistent Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -47,7 +49,7 @@ func dnsHijackingToProxyWithHTTPSURL() *TestCase { // transparent TLS proxy really makes our analysis a bit more complex return &TestCase{ Name: "dnsHijackingToProxyWithHTTPSURL", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks the DNS is consistent Input: "https://www.example.com/", Configure: func(env *netemx.QAEnv) { diff --git a/internal/experiment/webconnectivityqa/httpdiff.go b/internal/experiment/webconnectivityqa/httpdiff.go index 374cd36014..2a619337f1 100644 --- a/internal/experiment/webconnectivityqa/httpdiff.go +++ b/internal/experiment/webconnectivityqa/httpdiff.go @@ -11,7 +11,7 @@ import ( func httpDiffWithConsistentDNS() *TestCase { return &TestCase{ Name: "httpDiffWithConsistentDNS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE does not set whether the headers match Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { @@ -49,12 +49,12 @@ func httpDiffWithConsistentDNS() *TestCase { func httpDiffWithInconsistentDNS() *TestCase { return &TestCase{ Name: "httpDiffWithInconsistentDNS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE does not detect any HTTP diff here Input: "http://www.example.com/", Configure: func(env *netemx.QAEnv) { // add DPI rule to force all the cleartext DNS queries to - // point the client to use the ISPProxyAddress + // point the client to used the ISPProxyAddress env.DPIEngine().AddRule(&netem.DPISpoofDNSResponse{ Addresses: []string{netemx.ISPProxyAddress}, Logger: env.Logger(), @@ -92,7 +92,7 @@ func httpDiffWithInconsistentDNS() *TestCase { TitleMatch: false, XStatus: 96, // StatusAnomalyHTTPDiff | StatusAnomalyDNS XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 17, // analysisFlagDNSBlocking | analysisFlagHTTPDiff + XBlockingFlags: 35, // analysisFlagSuccess | analysisFlagDNSBlocking | analysisFlagTCPIPBlocking Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/redirect.go b/internal/experiment/webconnectivityqa/redirect.go index 09be893660..0f265090fd 100644 --- a/internal/experiment/webconnectivityqa/redirect.go +++ b/internal/experiment/webconnectivityqa/redirect.go @@ -11,7 +11,7 @@ import ( func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionRefusedForHTTP", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/32447", Configure: func(env *netemx.QAEnv) { @@ -37,7 +37,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 8320, // StatusExperimentHTTP | StatusAnomalyConnect XDNSFlags: 0, - XBlockingFlags: 8, // analysisFlagHTTPBlocking + XBlockingFlags: 32, // analysisFlagSuccess Accessible: false, Blocking: "http-failure", }, @@ -49,7 +49,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTP() *TestCase { func redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -75,7 +75,7 @@ func redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 8320, // StatusExperimentHTTP | StatusAnomalyConnect XDNSFlags: 0, - XBlockingFlags: 8, // analysisFlagHTTPBlocking + XBlockingFlags: 32, // analysisFlagSuccess Accessible: false, Blocking: "http-failure", }, @@ -125,7 +125,7 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTP() *TestCase { func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenConnectionResetForHTTPS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -163,7 +163,7 @@ func redirectWithConsistentDNSAndThenConnectionResetForHTTPS() *TestCase { func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenNXDOMAIN", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -181,8 +181,8 @@ func redirectWithConsistentDNSAndThenNXDOMAIN() *TestCase { DNSConsistency: "consistent", HTTPExperimentFailure: "dns_nxdomain_error", XStatus: 8224, // StatusExperimentHTTP | StatusAnomalyDNS - XDNSFlags: 2, // AnalysisDNSUnexpectedFailure - XBlockingFlags: 1, // analysisFlagDNSBlocking + XDNSFlags: 0, + XBlockingFlags: 8, // analysisFlagHTTPBlocking Accessible: false, Blocking: "dns", }, @@ -232,7 +232,7 @@ func redirectWithConsistentDNSAndThenEOFForHTTP() *TestCase { func redirectWithConsistentDNSAndThenEOFForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenEOFForHTTPS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/21645", Configure: func(env *netemx.QAEnv) { @@ -258,7 +258,7 @@ func redirectWithConsistentDNSAndThenEOFForHTTPS() *TestCase { HTTPExperimentFailure: "eof_error", XStatus: 8448, // StatusExperimentHTTP | StatusAnomalyReadWrite XDNSFlags: 0, - XBlockingFlags: 8, // analysisFlagHTTPBlocking + XBlockingFlags: 32, // analysisFlagSuccess Accessible: false, Blocking: "http-failure", }, @@ -309,7 +309,7 @@ func redirectWithConsistentDNSAndThenTimeoutForHTTP() *TestCase { func redirectWithConsistentDNSAndThenTimeoutForHTTPS() *TestCase { return &TestCase{ Name: "redirectWithConsistentDNSAndThenTimeoutForHTTPS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // BUG: LTE thinks this website is accessible (WTF?!) Input: "https://bit.ly/21645", LongTest: true, Configure: func(env *netemx.QAEnv) { @@ -336,7 +336,7 @@ func redirectWithConsistentDNSAndThenTimeoutForHTTPS() *TestCase { HTTPExperimentFailure: "generic_timeout_error", XStatus: 8704, // StatusExperimentHTTP | StatusAnomalyUnknown XDNSFlags: 0, - XBlockingFlags: 8, // analysisFlagHTTPBlocking + XBlockingFlags: 32, // analysisFlagSuccess Accessible: false, Blocking: "http-failure", }, diff --git a/internal/experiment/webconnectivityqa/success.go b/internal/experiment/webconnectivityqa/success.go index 25906d0df2..1bd25bbaa4 100644 --- a/internal/experiment/webconnectivityqa/success.go +++ b/internal/experiment/webconnectivityqa/success.go @@ -27,7 +27,7 @@ func successWithHTTP() *TestCase { func successWithHTTPS() *TestCase { return &TestCase{ Name: "successWithHTTPS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // it does not set any HTTP comparison value with HTTPS Input: "https://www.example.com/", Configure: nil, ExpectErr: false, diff --git a/internal/experiment/webconnectivityqa/tcpblocking.go b/internal/experiment/webconnectivityqa/tcpblocking.go index 85ee6a7cc7..dc568f9d10 100644 --- a/internal/experiment/webconnectivityqa/tcpblocking.go +++ b/internal/experiment/webconnectivityqa/tcpblocking.go @@ -40,7 +40,7 @@ func tcpBlockingConnectTimeout() *TestCase { func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { return &TestCase{ Name: "tcpBlockingConnectionRefusedWithInconsistentDNS", - Flags: 0, + Flags: TestCaseFlagNoLTE, // with LTE we can bypass the blocking Input: "http://www.example.org/", Configure: func(env *netemx.QAEnv) { @@ -68,7 +68,7 @@ func tcpBlockingConnectionRefusedWithInconsistentDNS() *TestCase { HTTPExperimentFailure: "connection_refused", XStatus: 4256, // StatusExperimentConnect | StatusAnomalyConnect | StatusAnomalyDNS XDNSFlags: 4, // AnalysisDNSUnexpectedAddrs - XBlockingFlags: 3, // analysisFlagDNSBlocking | analysisFlagTCPIPBlocking + XBlockingFlags: 35, // analysisFlagSuccess | analysisFlagDNSBlocking | analysisFlagTCPIPBlocking Accessible: false, Blocking: "dns", }, diff --git a/internal/experiment/webconnectivityqa/testkeys.go b/internal/experiment/webconnectivityqa/testkeys.go index f4035bcfb5..f33e8c040c 100644 --- a/internal/experiment/webconnectivityqa/testkeys.go +++ b/internal/experiment/webconnectivityqa/testkeys.go @@ -77,17 +77,12 @@ func compareTestKeys(expected, got *testKeys) error { // ignore the fields that are specific to v0.4 options = append(options, cmpopts.IgnoreFields(testKeys{}, "XStatus")) - // XXX: just temporarily... - options = append(options, cmpopts.IgnoreFields(testKeys{}, "XDNSFlags", "XBlockingFlags", "XNullNullFlags")) - // BUG: LTE does not set http_experiment_failure options = append(options, cmpopts.IgnoreFields(testKeys{}, "HTTPExperimentFailure")) // BUG: LTE does not set body_proportion options = append(options, cmpopts.IgnoreFields(testKeys{}, "BodyProportion")) - options = append(options, cmpopts.IgnoreFields(testKeys{}, "DNSExperimentFailure")) - default: return fmt.Errorf("unknown experiment version: %s", got.XExperimentVersion) } diff --git a/internal/experiment/webconnectivityqa/websitedown.go b/internal/experiment/webconnectivityqa/websitedown.go index aee748d52e..2918559b99 100644 --- a/internal/experiment/webconnectivityqa/websitedown.go +++ b/internal/experiment/webconnectivityqa/websitedown.go @@ -21,7 +21,7 @@ func websiteDownNXDOMAIN() *TestCase { */ return &TestCase{ Name: "websiteDownNXDOMAIN", - Flags: 0, // see above + Flags: TestCaseFlagNoV04, // see above Input: "http://www.example.xyz/", // domain not defined in the simulation Configure: nil, ExpectErr: false, @@ -31,7 +31,7 @@ func websiteDownNXDOMAIN() *TestCase { XStatus: 2052, // StatusExperimentDNS | StatusSuccessNXDOMAIN XBlockingFlags: 0, XNullNullFlags: 1, // analysisFlagNullNullNoAddrs - Accessible: true, + Accessible: false, Blocking: false, }, } From 5b63d6aebd7e0a7de887b5a854ce9519e00d840c Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 1 Dec 2023 00:19:30 +0100 Subject: [PATCH 95/97] x --- .../webconnectivitylte/analysiscorev2.go | 386 ------------------ .../webconnectivitylte/analysisdns.go | 6 +- .../webconnectivitylte/analysishttpcore.go | 4 +- .../webconnectivitylte/analysishttpdiff.go | 35 +- .../experiment/webconnectivitylte/bigx.go | 36 -- .../webconnectivitylte/bigx_test.go | 47 --- .../experiment/webconnectivitylte/testkeys.go | 25 +- 7 files changed, 35 insertions(+), 504 deletions(-) delete mode 100644 internal/experiment/webconnectivitylte/analysiscorev2.go delete mode 100644 internal/experiment/webconnectivitylte/bigx.go delete mode 100644 internal/experiment/webconnectivitylte/bigx_test.go diff --git a/internal/experiment/webconnectivitylte/analysiscorev2.go b/internal/experiment/webconnectivitylte/analysiscorev2.go deleted file mode 100644 index 6ca6bd1065..0000000000 --- a/internal/experiment/webconnectivitylte/analysiscorev2.go +++ /dev/null @@ -1,386 +0,0 @@ -package webconnectivitylte - -import ( - "fmt" - - "github.com/ooni/probe-cli/v3/internal/minipipeline" - "github.com/ooni/probe-cli/v3/internal/model" - "github.com/ooni/probe-cli/v3/internal/must" - "github.com/ooni/probe-cli/v3/internal/optional" - "github.com/ooni/probe-cli/v3/internal/runtimex" -) - -func (tk *TestKeys) analysisToplevelV2(logger model.Logger) { - // Since we run after all tasks have completed (or so we assume) we're - // not going to use any form of locking here. - - // 1. produce observations using the minipipeline - container := minipipeline.NewWebObservationsContainer() - container.IngestDNSLookupEvents(tk.Queries...) - container.IngestTCPConnectEvents(tk.TCPConnect...) - container.IngestTLSHandshakeEvents(tk.TLSHandshakes...) - container.IngestHTTPRoundTripEvents(tk.Requests...) - - // be defensive in case the control request or control are not defined - if tk.ControlRequest != nil && tk.Control != nil { - // Implementation note: the only error that can happen here is when the input - // doesn't parse as a URL, which should have triggered previous errors - runtimex.Try0(container.IngestControlMessages(tk.ControlRequest, tk.Control)) - } - - // 2. filter observations to only include results collected by the - // system resolver, which approximates v0.4's results - classic := minipipeline.ClassicFilter(container) - - // 3. run the classic analysis algorithm - tk.analysisClassicOld(logger, classic) -} - -func analysisValueToPointer[T any](input T) *T { - return &input -} - -func analysisOptionalToPointer[T any](input optional.Value[T]) *T { - if input.IsNone() { - return nil - } - return analysisValueToPointer(input.Unwrap()) -} - -func (tk *TestKeys) analysisClassicOld(logger model.Logger, container *minipipeline.WebObservationsContainer) { - // dump the observations - fmt.Printf("%s\n", must.MarshalJSON(container)) - - // produce the woa based on the observations - woa := minipipeline.AnalyzeWebObservations(container) - - // dump the analysis - fmt.Printf("%s\n", must.MarshalJSON(woa)) - - // determine the DNS consistency - switch { - case woa.DNSLookupUnexpectedFailure.Len() <= 0 && // no unexpected failures; and - woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() <= 0 && // no invalid addresses; and - (woa.DNSLookupSuccessWithValidAddressClassic.Len() > 0 || // good addrs; or - woa.DNSLookupExpectedFailure.Len() > 0): // expected failures - tk.DNSConsistency = optional.Some("consistent") - - case woa.DNSLookupSuccessWithInvalidAddressesClassic.Len() > 0 || // unexpected addrs; or - woa.DNSLookupUnexpectedFailure.Len() > 0: // unexpected failures - tk.DNSConsistency = optional.Some("inconsistent") - - default: - tk.DNSConsistency = optional.None[string]() - } - - // we must set blocking to "dns" when there's a DNS inconsistency - setBlocking := func(value string) string { - switch { - case !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent": - return "dns" - default: - return value - } - - } - - // set HTTPDiff values - if !woa.HTTPFinalResponseDiffBodyProportionFactor.IsNone() { - tk.BodyLengthMatch = optional.Some(woa.HTTPFinalResponseDiffBodyProportionFactor.Unwrap() > 0.7) - } - if !woa.HTTPFinalResponseDiffUncommonHeadersIntersection.IsNone() { - tk.HeadersMatch = optional.Some(len(woa.HTTPFinalResponseDiffUncommonHeadersIntersection.Unwrap()) > 0) - } - tk.StatusCodeMatch = woa.HTTPFinalResponseDiffStatusCodeMatch - if !woa.HTTPFinalResponseDiffTitleDifferentLongWords.IsNone() { - tk.TitleMatch = optional.Some(len(woa.HTTPFinalResponseDiffTitleDifferentLongWords.Unwrap()) <= 0) - } - - // if we have a final HTTPS response, we're good - if !woa.HTTPFinalResponseSuccessTLSWithoutControl.IsNone() || !woa.HTTPFinalResponseSuccessTLSWithControl.IsNone() { - tk.Blocking = false - tk.Accessible = true - return - } - - // if we have a final HTTP response with control, let's run HTTPDiff - if !woa.HTTPFinalResponseSuccessTCPWithControl.IsNone() { - if !tk.StatusCodeMatch.IsNone() && tk.StatusCodeMatch.Unwrap() { - if !tk.BodyLengthMatch.IsNone() && tk.BodyLengthMatch.Unwrap() { - tk.Blocking = false - tk.Accessible = true - return - } - if !tk.HeadersMatch.IsNone() && tk.HeadersMatch.Unwrap() { - tk.Blocking = false - tk.Accessible = true - return - } - if !tk.TitleMatch.IsNone() && tk.TitleMatch.Unwrap() { - tk.Blocking = false - tk.Accessible = true - return - } - // fallthrough - } - tk.Blocking = setBlocking("http-diff") - tk.Accessible = false - return - } - - // if we have a final HTTP response without control, we don't know what to say - if !woa.HTTPFinalResponseSuccessTCPWithoutControl.IsNone() { - return - } - - // if we have unexpected HTTP round trip failures, it's "http-failure" - if woa.HTTPRoundTripUnexpectedFailure.Len() > 0 { - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false - return - } - - // if we have unexpected TCP connect failures, it's "tcp_ip" - // - // we give precendence to this over TLS handshake because the latter - // always produces "http-failure", which we handle below - if woa.TCPConnectUnexpectedFailureDuringWebFetch.Len() > 0 { - tk.Blocking = setBlocking("tcp_ip") - tk.Accessible = false - return - } - - // if we have unexpected TLS failures, it's "http-failure" - if woa.TLSHandshakeUnexpectedFailureDuringWebFetch.Len() > 0 { - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false - return - } - - // if we have unexplained TCP failures, blame "http-failure" - if woa.TCPConnectUnexplainedFailureDuringWebFetch.Len() > 0 { - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false - return - } - - // likewise but for unexplained TLS handshake failures - if woa.TLSHandshakeUnexplainedFailureDuringWebFetch.Len() > 0 { - tk.Blocking = setBlocking("http-failure") - tk.Accessible = false - return - } - - // if we arrive here and the DNS is still inconsistent, say "dns" - if !tk.DNSConsistency.IsNone() && tk.DNSConsistency.Unwrap() == "inconsistent" { - tk.Blocking = "dns" - tk.Accessible = false - return - } - - // if we don't have any operation but DNS lookup, check for NXDOMAIN - if woa.DNSLookupExpectedFailure.Len() > 0 { - // TODO(bassosimone): this is wrong but we'll change after the A/B comparison - // to correctly say that the website is down due to DNS - tk.Blocking = false - tk.Accessible = true - return - } - - // otherwise, we don't know what to say -} - -/* - -// analysisToplevelV2 is an alternative version of the analysis code that -// uses the [minipipeline] package for processing. -func (tk *TestKeys) analysisToplevelV2Old(logger model.Logger) { - // Since we run after all tasks have completed (or so we assume) we're - // not going to use any form of locking here. - - container := minipipeline.NewWebObservationsContainer() - container.IngestDNSLookupEvents(tk.Queries...) - container.IngestTCPConnectEvents(tk.TCPConnect...) - container.IngestTLSHandshakeEvents(tk.TLSHandshakes...) - container.IngestHTTPRoundTripEvents(tk.Requests...) - - // be defensive in case the control request or control are not defined - if tk.ControlRequest != nil && tk.Control != nil { - // Implementation note: the only error that can happen here is when the input - // doesn't parse as a URL, which should have triggered previous errors - runtimex.Try0(container.IngestControlMessages(tk.ControlRequest, tk.Control)) - } - - // dump the pipeline results for debugging purposes - fmt.Printf("%s\n", must.MarshalJSON(container)) - - // produce the analysis based on the observations - analysis := &minipipeline.WebAnalysis{} - analysis.ComputeDNSExperimentFailure(container) - analysis.ComputeDNSTransactionsWithBogons(container) - analysis.ComputeDNSTransactionsWithUnexpectedFailures(container) - analysis.ComputeDNSPossiblyInvalidAddrs(container) - analysis.ComputeTCPTransactionsWithUnexpectedTCPConnectFailures(container) - analysis.ComputeTCPTransactionsWithUnexpectedTLSHandshakeFailures(container) - analysis.ComputeTCPTransactionsWithUnexpectedHTTPFailures(container) - analysis.ComputeHTTPDiffBodyProportionFactor(container) - analysis.ComputeHTTPDiffStatusCodeMatch(container) - analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) - analysis.ComputeHTTPDiffTitleDifferentLongWords(container) - analysis.ComputeHTTPFinalResponsesWithControl(container) - analysis.ComputeTCPTransactionsWithUnexplainedUnexplainedFailures(container) - analysis.ComputeHTTPFinalResponsesWithTLS(container) - - // dump the analysis results for debugging purposes - fmt.Printf("%s\n", must.MarshalJSON(analysis)) - - // run top-level protocol-specific analysis algorithms - tk.analysisDNSToplevelV2(analysis, logger) - tk.analysisTCPIPToplevelV2(analysis, logger) - tk.analysisTLSToplevelV2(analysis, logger) - tk.analysisHTTPToplevelV2(analysis, logger) -} - -// analysisDNSToplevelV2 is the toplevel analysis function for DNS results. -// -// Note: this function DOES NOT consider failed DNS-over-HTTPS (DoH) submeasurements -// and ONLY considers the IP addrs they have resolved. Failing to contact a DoH service -// provides info about such a DoH service rather than on the measured URL. See the -// https://github.com/ooni/probe/issues/2274 issue for more info. -// -// The goals of this function are the following: -// -// 1. Set the legacy .DNSExperimentFailure field to the failure value of the -// first DNS query that failed among the ones using getaddrinfo. This field is -// legacy because now we perform several DNS lookups. -// -// 2. Compute the XDNSFlags value. -// -// From the XDNSFlags value, we determine, in turn DNSConsistency and -// XBlockingFlags according to the following decision table: -// -// +-----------+----------------+---------------------+ -// | XDNSFlags | DNSConsistency | XBlockingFlags | -// +-----------+----------------+---------------------+ -// | 0 | "consistent" | no change | -// +-----------+----------------+---------------------+ -// | nonzero | "inconsistent" | set FlagDNSBlocking | -// +-----------+----------------+---------------------+ -// -// We explain how XDNSFlags is determined in the documentation of -// the functions that this function calls to do its job. -func (tk *TestKeys) analysisDNSToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { - // TODO(bassosimone): we should probably keep logging as before here - - // assign flags depending on the analysis - if v := analysis.DNSExperimentFailure.UnwrapOr(""); v != "" { - tk.DNSExperimentFailure = &v - } - if v := analysis.DNSTransactionsWithBogons.UnwrapOr(nil); len(v) > 0 { - tk.DNSFlags |= AnalysisDNSBogon - } - if v := analysis.DNSTransactionsWithUnexpectedFailures.UnwrapOr(nil); len(v) > 0 { - tk.DNSFlags |= AnalysisDNSUnexpectedFailure - } - if v := analysis.DNSPossiblyInvalidAddrs.UnwrapOr(nil); len(v) > 0 { - tk.DNSFlags |= AnalysisDNSUnexpectedAddrs - } - - // compute DNS consistency - if tk.DNSFlags != 0 { - logger.Warn("DNSConsistency: inconsistent") - v := "inconsistent" - tk.DNSConsistency = &v - tk.BlockingFlags |= analysisFlagDNSBlocking - } else { - logger.Info("DNSConsistency: consistent") - v := "consistent" - tk.DNSConsistency = &v - } -} - -// analysisTCPIPToplevelV2 is the toplevel analysis function for TCP/IP results. -func (tk *TestKeys) analysisTCPIPToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { - // TODO(bassosimone): we should probably keep logging as before here - // TODO(bassosimone): we're ignoring .Status here - - if v := analysis.TCPTransactionsWithUnexpectedTCPConnectFailures.UnwrapOr(nil); len(v) > 0 { - tk.BlockingFlags |= analysisFlagTCPIPBlocking - } -} - -// analysisTLSToplevelV2 is the toplevel analysis function for TLS results. -func (tk *TestKeys) analysisTLSToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { - // TODO(bassosimone): we should probably keep logging as before here - - if v := analysis.TCPTransactionsWithUnexpectedTLSHandshakeFailures.UnwrapOr(nil); len(v) > 0 { - tk.BlockingFlags |= analysisFlagTLSBlocking - } -} - -// analysisHTTPToplevelV2 is the toplevel analysis function for HTTP results. -func (tk *TestKeys) analysisHTTPToplevelV2(analysis *minipipeline.WebAnalysis, logger model.Logger) { - // TODO(bassosimone): we should probably keep logging as before here - // TODO(bassosimone): we're missing the success with HTTPS flag... - - if v := analysis.TCPTransactionsWithUnexpectedHTTPFailures.UnwrapOr(nil); len(v) > 0 { - tk.BlockingFlags |= analysisFlagHTTPBlocking - } - - // Detect cases where an error occurred during a redirect. For this to happen, we - // need to observe (1) no "final" responses and (2) unexpected, unexplained failures - numFinals := len(analysis.HTTPFinalResponsesWithControl.UnwrapOr(nil)) - numUnexpectedUnexplained := len(analysis.TCPTransactionsWithUnexplainedUnexpectedFailures.UnwrapOr(nil)) - if numFinals <= 0 && numUnexpectedUnexplained > 0 { - tk.BlockingFlags |= analysisFlagHTTPBlocking - } - - // Special case for HTTPS - if len(analysis.HTTPFinalResponsesWithTLS.UnwrapOr(nil)) > 0 { - tk.BlockingFlags |= analysisFlagSuccess - } - - // attempt to fill the comparisons about the body - // - // XXX this code should probably always run - if !analysis.HTTPDiffStatusCodeMatch.IsNone() { - value := analysis.HTTPDiffStatusCodeMatch.Unwrap() - tk.StatusCodeMatch = &value - } - if !analysis.HTTPDiffBodyProportionFactor.IsNone() { - value := analysis.HTTPDiffBodyProportionFactor.UnwrapOr(0) > 0.7 - tk.BodyLengthMatch = &value - } - if !analysis.HTTPDiffUncommonHeadersIntersection.IsNone() { - value := len(analysis.HTTPDiffUncommonHeadersIntersection.Unwrap()) > 0 - tk.HeadersMatch = &value - } - if !analysis.HTTPDiffTitleDifferentLongWords.IsNone() { - value := len(analysis.HTTPDiffTitleDifferentLongWords.Unwrap()) <= 0 - tk.TitleMatch = &value - } - - // same code structure as before - if !analysis.HTTPDiffStatusCodeMatch.IsNone() { - if analysis.HTTPDiffStatusCodeMatch.Unwrap() { - - if analysis.HTTPDiffBodyProportionFactor.UnwrapOr(0) > 0.7 { - tk.BlockingFlags |= analysisFlagSuccess - return - } - - if v := analysis.HTTPDiffUncommonHeadersIntersection.UnwrapOr(nil); len(v) > 0 { - tk.BlockingFlags |= analysisFlagSuccess - return - } - - if !analysis.HTTPDiffTitleDifferentLongWords.IsNone() && - len(analysis.HTTPDiffTitleDifferentLongWords.Unwrap()) <= 0 { - tk.BlockingFlags |= analysisFlagSuccess - return - } - } - tk.BlockingFlags |= analysisFlagHTTPDiff - } -} -*/ diff --git a/internal/experiment/webconnectivitylte/analysisdns.go b/internal/experiment/webconnectivitylte/analysisdns.go index fd1d394890..d68c6e0f11 100644 --- a/internal/experiment/webconnectivitylte/analysisdns.go +++ b/internal/experiment/webconnectivitylte/analysisdns.go @@ -62,13 +62,11 @@ func (tk *TestKeys) analysisDNSToplevel(logger model.Logger, lookupper model.Geo tk.analysisDNSUnexpectedAddrs(logger, lookupper) if tk.DNSFlags != 0 { logger.Warn("DNSConsistency: inconsistent") - //v := "inconsistent" - //tk.DNSConsistency = &v + tk.DNSConsistency = "inconsistent" tk.BlockingFlags |= analysisFlagDNSBlocking } else { logger.Info("DNSConsistency: consistent") - //v := "consistent" - //tk.DNSConsistency = &v + tk.DNSConsistency = "consistent" } } diff --git a/internal/experiment/webconnectivitylte/analysishttpcore.go b/internal/experiment/webconnectivitylte/analysishttpcore.go index e1e990ee38..8d7d34c9e2 100644 --- a/internal/experiment/webconnectivitylte/analysishttpcore.go +++ b/internal/experiment/webconnectivitylte/analysishttpcore.go @@ -31,7 +31,7 @@ func (tk *TestKeys) analysisHTTPToplevel(logger model.Logger) { return } finalRequest := tk.Requests[0] - //tk.HTTPExperimentFailure = finalRequest.Failure + tk.HTTPExperimentFailure = finalRequest.Failure // don't perform any futher analysis without TH data if tk.Control == nil || tk.ControlRequest == nil { @@ -65,5 +65,5 @@ func (tk *TestKeys) analysisHTTPToplevel(logger model.Logger) { } // fallback to the HTTP diff algo. - //tk.analysisHTTPDiff(logger, finalRequest, &ctrl) + tk.analysisHTTPDiff(logger, finalRequest, &ctrl) } diff --git a/internal/experiment/webconnectivitylte/analysishttpdiff.go b/internal/experiment/webconnectivitylte/analysishttpdiff.go index 98455a6bc9..b25a739506 100644 --- a/internal/experiment/webconnectivitylte/analysishttpdiff.go +++ b/internal/experiment/webconnectivitylte/analysishttpdiff.go @@ -4,7 +4,16 @@ package webconnectivitylte // HTTP diff analysis // -/* +import ( + "net/url" + "reflect" + "strings" + + "github.com/ooni/probe-cli/v3/internal/experiment/webconnectivity" + "github.com/ooni/probe-cli/v3/internal/measurexlite" + "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/runtimex" +) // analysisHTTPDiff computes the HTTP diff between the final request-response // observed by the probe and the TH's result. The caller is responsible of passing @@ -17,16 +26,6 @@ func (tk *TestKeys) analysisHTTPDiff(logger model.Logger, "the caller should have passed us successful HTTP observations", ) - // original HTTP diff algorithm adapted for this implementation - // - // we should run this before the check for HTTPS because otherwise - // there are several comparison issues with v0.4 due to the lack - // of analysis of the final HTTP response with the control - tk.httpDiffBodyLengthChecks(probe, th) - tk.httpDiffStatusCodeMatch(probe, th) - tk.httpDiffHeadersMatch(probe, th) - tk.httpDiffTitleMatch(probe, th) - // if we're dealing with an HTTPS request, don't perform any comparison // under the assumption that we're good if we're using TLS URL, err := url.Parse(probe.Request.URL) @@ -39,6 +38,12 @@ func (tk *TestKeys) analysisHTTPDiff(logger model.Logger, return } + // original HTTP diff algorithm adapted for this implementation + tk.httpDiffBodyLengthChecks(probe, th) + tk.httpDiffStatusCodeMatch(probe, th) + tk.httpDiffHeadersMatch(probe, th) + tk.httpDiffTitleMatch(probe, th) + if tk.StatusCodeMatch != nil && *tk.StatusCodeMatch { if tk.BodyLengthMatch != nil && *tk.BodyLengthMatch { logger.Infof( @@ -139,11 +144,11 @@ func (tk *TestKeys) httpDiffStatusCodeMatch( // httpDiffHeadersMatch compares the uncommon headers. func (tk *TestKeys) httpDiffHeadersMatch( probe *model.ArchivalHTTPRequestResult, ctrl *webconnectivity.ControlHTTPRequestResult) { - if ctrl.StatusCode <= 0 || probe.Response.Code <= 0 { - return - } control := ctrl.Headers measurement := probe.Response.Headers + if len(control) <= 0 || len(measurement) <= 0 { + return + } // Implementation note: using map because we only care about the // keys being different and we ignore the values. const ( @@ -262,5 +267,3 @@ func (tk *TestKeys) httpDiffTitleMatch( } tk.TitleMatch = &good } - -*/ diff --git a/internal/experiment/webconnectivitylte/bigx.go b/internal/experiment/webconnectivitylte/bigx.go deleted file mode 100644 index 773b4492ad..0000000000 --- a/internal/experiment/webconnectivitylte/bigx.go +++ /dev/null @@ -1,36 +0,0 @@ -package webconnectivitylte - -// Bitmask is a bitmask using a big integer. -type Bitmask struct { - V []uint8 -} - -// Set sets the bit in position pos. -func (b *Bitmask) Set(pos int) { - idx := pos / 8 - for idx >= len(b.V) { - b.V = append(b.V, 0) - } - off := pos % 8 - b.V[idx] |= uint8(1 << off) -} - -// Clear clears the bit in position pos. -func (b *Bitmask) Clear(pos int) { - idx := pos / 8 - if idx >= len(b.V) { - return - } - off := pos % 8 - b.V[idx] &= ^uint8(1 << off) -} - -// Get gets the bit in position pos. -func (b *Bitmask) Get(pos int) bool { - idx := pos / 8 - if idx >= len(b.V) { - return false - } - off := pos % 8 - return (b.V[idx] >> off) == 1 -} diff --git a/internal/experiment/webconnectivitylte/bigx_test.go b/internal/experiment/webconnectivitylte/bigx_test.go deleted file mode 100644 index 55b0bac6e6..0000000000 --- a/internal/experiment/webconnectivitylte/bigx_test.go +++ /dev/null @@ -1,47 +0,0 @@ -package webconnectivitylte - -import "testing" - -func TestBitmask(t *testing.T) { - bitmask := &Bitmask{} - - bitmask.Set(55) - t.Logf("%v", bitmask.V) - - bitmask.Set(17) - t.Logf("%v", bitmask.V) - - bitmask.Set(4) - t.Logf("%v", bitmask.V) - - v1 := bitmask.Get(55) - t.Logf("%v", v1) - - v2 := bitmask.Get(50) - t.Logf("%v", v2) - - v3 := bitmask.Get(17) - t.Logf("%v", v3) - - v4 := bitmask.Get(14) - t.Logf("%v", v4) - - v5 := bitmask.Get(4) - t.Logf("%v", v5) - - v6 := bitmask.Get(0) - t.Logf("%v", v6) - - bitmask.Clear(55) - bitmask.Clear(4) - t.Logf("%v", bitmask.V) - - v7 := bitmask.Get(55) - t.Logf("%v", v7) - - v8 := bitmask.Get(17) - t.Logf("%v", v8) - - v9 := bitmask.Get(4) - t.Logf("%v", v9) -} diff --git a/internal/experiment/webconnectivitylte/testkeys.go b/internal/experiment/webconnectivitylte/testkeys.go index dc806dafe0..b580659116 100644 --- a/internal/experiment/webconnectivitylte/testkeys.go +++ b/internal/experiment/webconnectivitylte/testkeys.go @@ -14,7 +14,6 @@ import ( "github.com/ooni/probe-cli/v3/internal/experiment/webconnectivity" "github.com/ooni/probe-cli/v3/internal/legacy/tracex" "github.com/ooni/probe-cli/v3/internal/model" - "github.com/ooni/probe-cli/v3/internal/optional" ) // TestKeys contains the results produced by web_connectivity. @@ -82,11 +81,11 @@ type TestKeys struct { // DNSConsistency indicates whether there is consistency between // the TH's DNS results and the probe's DNS results. - DNSConsistency optional.Value[string] `json:"dns_consistency"` + DNSConsistency string `json:"dns_consistency"` // HTTPExperimentFailure indicates whether there was a failure in // the final HTTP request that we recorded. - HTTPExperimentFailure optional.Value[string] `json:"http_experiment_failure"` + HTTPExperimentFailure *string `json:"http_experiment_failure"` // BlockingFlags explains why we think that the website is blocked. BlockingFlags int64 `json:"x_blocking_flags"` @@ -96,16 +95,16 @@ type TestKeys struct { NullNullFlags int64 `json:"x_null_null_flags"` // BodyLength match tells us whether the body length matches. - BodyLengthMatch optional.Value[bool] `json:"body_length_match"` + BodyLengthMatch *bool `json:"body_length_match"` // HeadersMatch tells us whether the headers match. - HeadersMatch optional.Value[bool] `json:"headers_match"` + HeadersMatch *bool `json:"headers_match"` // StatusCodeMatch tells us whether the status code matches. - StatusCodeMatch optional.Value[bool] `json:"status_code_match"` + StatusCodeMatch *bool `json:"status_code_match"` // TitleMatch tells us whether the title matches. - TitleMatch optional.Value[bool] `json:"title_match"` + TitleMatch *bool `json:"title_match"` // Blocking indicates the reason for blocking. This is notoriously a bad // type because it can be one of the following values: @@ -355,14 +354,14 @@ func NewTestKeys() *TestKeys { ControlFailure: nil, DNSFlags: 0, DNSExperimentFailure: nil, - DNSConsistency: optional.None[string](), - HTTPExperimentFailure: optional.None[string](), + DNSConsistency: "", + HTTPExperimentFailure: nil, BlockingFlags: 0, NullNullFlags: 0, - BodyLengthMatch: optional.None[bool](), - HeadersMatch: optional.None[bool](), - StatusCodeMatch: optional.None[bool](), - TitleMatch: optional.None[bool](), + BodyLengthMatch: nil, + HeadersMatch: nil, + StatusCodeMatch: nil, + TitleMatch: nil, Blocking: nil, Accessible: nil, ControlRequest: nil, From fa6723bf48ae80872e3e14cf9fb2a89498ce5678 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 1 Dec 2023 00:26:16 +0100 Subject: [PATCH 96/97] adapt --- .../webconnectivitylte/analysisclassic.go | 23 ++++++++++++------- .../webconnectivitylte/analysisdns.go | 5 ++-- .../experiment/webconnectivitylte/testkeys.go | 5 ++-- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/internal/experiment/webconnectivitylte/analysisclassic.go b/internal/experiment/webconnectivitylte/analysisclassic.go index 52a2aa4960..937054e153 100644 --- a/internal/experiment/webconnectivitylte/analysisclassic.go +++ b/internal/experiment/webconnectivitylte/analysisclassic.go @@ -68,16 +68,23 @@ func analysisClassicDNSConsistency(woa *minipipeline.WebAnalysis) optional.Value func (tk *TestKeys) setHTTPDiffValues(woa *minipipeline.WebAnalysis) { const bodyProportionFactor = 0.7 if !woa.HTTPFinalResponseDiffBodyProportionFactor.IsNone() { - tk.BodyLengthMatch = optional.Some(woa.HTTPFinalResponseDiffBodyProportionFactor.Unwrap() > bodyProportionFactor) + value := woa.HTTPFinalResponseDiffBodyProportionFactor.Unwrap() > bodyProportionFactor + tk.BodyLengthMatch = &value } if !woa.HTTPFinalResponseDiffUncommonHeadersIntersection.IsNone() { - tk.HeadersMatch = optional.Some(len(woa.HTTPFinalResponseDiffUncommonHeadersIntersection.Unwrap()) > 0) + value := len(woa.HTTPFinalResponseDiffUncommonHeadersIntersection.Unwrap()) > 0 + tk.HeadersMatch = &value + } + + if !woa.HTTPFinalResponseDiffStatusCodeMatch.IsNone() { + value := woa.HTTPFinalResponseDiffStatusCodeMatch.Unwrap() + tk.StatusCodeMatch = &value } - tk.StatusCodeMatch = woa.HTTPFinalResponseDiffStatusCodeMatch if !woa.HTTPFinalResponseDiffTitleDifferentLongWords.IsNone() { - tk.TitleMatch = optional.Some(len(woa.HTTPFinalResponseDiffTitleDifferentLongWords.Unwrap()) <= 0) + value := len(woa.HTTPFinalResponseDiffTitleDifferentLongWords.Unwrap()) <= 0 + tk.TitleMatch = &value } } @@ -99,14 +106,14 @@ var _ analysisClassicTestKeysProxy = &TestKeys{} // httpDiff implements analysisClassicTestKeysProxy. func (tk *TestKeys) httpDiff() bool { - if !tk.StatusCodeMatch.IsNone() && tk.StatusCodeMatch.Unwrap() { - if !tk.BodyLengthMatch.IsNone() && tk.BodyLengthMatch.Unwrap() { + if tk.StatusCodeMatch != nil && *tk.StatusCodeMatch { + if tk.BodyLengthMatch != nil && *tk.BodyLengthMatch { return false } - if !tk.HeadersMatch.IsNone() && tk.HeadersMatch.Unwrap() { + if tk.HeadersMatch != nil && *tk.HeadersMatch { return false } - if !tk.TitleMatch.IsNone() && tk.TitleMatch.Unwrap() { + if tk.TitleMatch != nil && *tk.TitleMatch { return false } // fallthrough diff --git a/internal/experiment/webconnectivitylte/analysisdns.go b/internal/experiment/webconnectivitylte/analysisdns.go index d68c6e0f11..06f4567441 100644 --- a/internal/experiment/webconnectivitylte/analysisdns.go +++ b/internal/experiment/webconnectivitylte/analysisdns.go @@ -10,6 +10,7 @@ import ( "github.com/ooni/probe-cli/v3/internal/model" "github.com/ooni/probe-cli/v3/internal/netxlite" + "github.com/ooni/probe-cli/v3/internal/optional" ) const ( @@ -62,11 +63,11 @@ func (tk *TestKeys) analysisDNSToplevel(logger model.Logger, lookupper model.Geo tk.analysisDNSUnexpectedAddrs(logger, lookupper) if tk.DNSFlags != 0 { logger.Warn("DNSConsistency: inconsistent") - tk.DNSConsistency = "inconsistent" + tk.DNSConsistency = optional.Some("inconsistent") tk.BlockingFlags |= analysisFlagDNSBlocking } else { logger.Info("DNSConsistency: consistent") - tk.DNSConsistency = "consistent" + tk.DNSConsistency = optional.Some("consistent") } } diff --git a/internal/experiment/webconnectivitylte/testkeys.go b/internal/experiment/webconnectivitylte/testkeys.go index b580659116..03e14f5740 100644 --- a/internal/experiment/webconnectivitylte/testkeys.go +++ b/internal/experiment/webconnectivitylte/testkeys.go @@ -14,6 +14,7 @@ import ( "github.com/ooni/probe-cli/v3/internal/experiment/webconnectivity" "github.com/ooni/probe-cli/v3/internal/legacy/tracex" "github.com/ooni/probe-cli/v3/internal/model" + "github.com/ooni/probe-cli/v3/internal/optional" ) // TestKeys contains the results produced by web_connectivity. @@ -81,7 +82,7 @@ type TestKeys struct { // DNSConsistency indicates whether there is consistency between // the TH's DNS results and the probe's DNS results. - DNSConsistency string `json:"dns_consistency"` + DNSConsistency optional.Value[string] `json:"dns_consistency"` // HTTPExperimentFailure indicates whether there was a failure in // the final HTTP request that we recorded. @@ -354,7 +355,7 @@ func NewTestKeys() *TestKeys { ControlFailure: nil, DNSFlags: 0, DNSExperimentFailure: nil, - DNSConsistency: "", + DNSConsistency: optional.None[string](), HTTPExperimentFailure: nil, BlockingFlags: 0, NullNullFlags: 0, From 78d9218cf33646870180eeb427969c920a3eecd2 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Fri, 1 Dec 2023 00:29:03 +0100 Subject: [PATCH 97/97] x --- internal/experiment/webconnectivitylte/analysiscore.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/experiment/webconnectivitylte/analysiscore.go b/internal/experiment/webconnectivitylte/analysiscore.go index bba798798e..cc399ddb87 100644 --- a/internal/experiment/webconnectivitylte/analysiscore.go +++ b/internal/experiment/webconnectivitylte/analysiscore.go @@ -38,7 +38,7 @@ const ( // AnalysisEngineFn is the function that runs the analysis engine for // processing and scoring measurements collected by LTE. -var AnalysisEngineFn func(tk *TestKeys, logger model.Logger) = AnalysisEngineClassic +var AnalysisEngineFn func(tk *TestKeys, logger model.Logger) = AnalysisEngineOrig // analysisToplevel is the toplevel function that analyses the results // of the experiment once all network tasks have completed.