blob: dba0d2934e2242f1763a51451f9ed8f6e66914dc [file] [log] [blame]
// services/network/public/mojom/network_service.mojom.h is auto generated by mojom_bindings_generator.py, do not edit
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_H_
#define SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_H_
#include <stdint.h>
#include <limits>
#include <optional>
#include <type_traits>
#include <utility>
#include "base/types/cxx23_to_underlying.h"
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "services/network/public/mojom/network_service.mojom-features.h"
#include "services/network/public/mojom/network_service.mojom-shared.h"
#include "services/network/public/mojom/network_service.mojom-forward.h"
#include "components/content_settings/core/common/content_settings.mojom.h"
#include "mojo/public/mojom/base/byte_string.mojom.h"
#include "mojo/public/mojom/base/file.mojom.h"
#include "mojo/public/mojom/base/memory_pressure_level.mojom.h"
#include "mojo/public/mojom/base/proto_wrapper.mojom.h"
#include "mojo/public/mojom/base/read_only_file.mojom-forward.h"
#include "mojo/public/mojom/base/time.mojom.h"
#include "mojo/public/mojom/base/values.mojom.h"
#include "sandbox/policy/mojom/context.mojom-forward.h"
#include "sandbox/policy/mojom/sandbox.mojom-forward.h"
#include "services/network/public/mojom/client_security_state.mojom-forward.h"
#include "services/network/public/mojom/first_party_sets.mojom.h"
#include "services/network/public/mojom/host_resolver.mojom.h"
#include "services/network/public/mojom/http_raw_headers.mojom-forward.h"
#include "services/network/public/mojom/ip_address_space.mojom-forward.h"
#include "services/network/public/mojom/key_pinning.mojom-forward.h"
#include "services/network/public/mojom/mutable_network_traffic_annotation_tag.mojom.h"
#include "services/network/public/mojom/net_log.mojom.h"
#include "services/network/public/mojom/network_annotation_monitor.mojom-forward.h"
#include "services/network/public/mojom/network_change_manager.mojom-forward.h"
#include "services/network/public/mojom/network_context.mojom-forward.h"
#include "services/network/public/mojom/network_interface.mojom.h"
#include "services/network/public/mojom/network_interface_change_listener.mojom-forward.h"
#include "services/network/public/mojom/network_param.mojom.h"
#include "services/network/public/mojom/network_quality_estimator_manager.mojom-forward.h"
#include "services/network/public/mojom/network_service_test.mojom-forward.h"
#include "services/network/public/mojom/parsed_headers.mojom-forward.h"
#include "services/network/public/mojom/proxy_config.mojom-forward.h"
#include "services/network/public/mojom/schemeful_site.mojom-forward.h"
#include "services/network/public/mojom/system_dns_resolution.mojom-forward.h"
#include "services/network/public/mojom/trust_tokens.mojom-forward.h"
#include "services/network/public/mojom/url_loader_network_service_observer.mojom-forward.h"
#include "services/network/public/mojom/url_response_head.mojom-forward.h"
#include "url/mojom/origin.mojom.h"
#include "url/mojom/url.mojom.h"
#include "services/network/public/mojom/ct_log_info.mojom-forward.h"
#include <string>
#include <vector>
#include "mojo/public/cpp/bindings/lib/control_message_handler.h"
#include "mojo/public/cpp/bindings/lib/message_size_estimator.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace network::mojom {
class NetworkServiceProxy;
template <typename ImplRefTraits>
class NetworkServiceStub;
class NetworkServiceRequestValidator;
class NetworkServiceResponseValidator;
// @generated_from: network.mojom.NetworkService
class NetworkService
: public NetworkServiceInterfaceBase {
public:
using IPCStableHashFunction = uint32_t(*)();
static const char Name_[];
static IPCStableHashFunction MessageToMethodInfo_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr auto kServiceSandbox = sandbox::mojom::Sandbox::kNetwork;
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = NetworkServiceInterfaceBase;
using Proxy_ = NetworkServiceProxy;
template <typename ImplRefTraits>
using Stub_ = NetworkServiceStub<ImplRefTraits>;
using RequestValidator_ = NetworkServiceRequestValidator;
using ResponseValidator_ = NetworkServiceResponseValidator;
enum MethodMinVersions : uint32_t {
kSetParamsMinVersion = 0,
kStartNetLogMinVersion = 0,
kAttachNetLogProxyMinVersion = 0,
kSetSSLKeyLogFileMinVersion = 0,
kCreateNetworkContextMinVersion = 0,
kConfigureStubHostResolverMinVersion = 0,
kDisableQuicMinVersion = 0,
kSetUpHttpAuthMinVersion = 0,
kConfigureHttpAuthPrefsMinVersion = 0,
kSetRawHeadersAccessMinVersion = 0,
kSetMaxConnectionsPerProxyChainMinVersion = 0,
kGetNetworkChangeManagerMinVersion = 0,
kGetNetworkQualityEstimatorManagerMinVersion = 0,
kGetDnsConfigChangeManagerMinVersion = 0,
kGetNetworkListMinVersion = 0,
kOnTrustStoreChangedMinVersion = 0,
kOnClientCertStoreChangedMinVersion = 0,
kSetEncryptionKeyMinVersion = 0,
kOnMemoryPressureMinVersion = 0,
kOnPeerToPeerConnectionsCountChangeMinVersion = 0,
kSetTrustTokenKeyCommitmentsMinVersion = 0,
kClearSCTAuditingCacheMinVersion = 0,
kConfigureSCTAuditingMinVersion = 0,
kUpdateCtLogListMinVersion = 0,
kUpdateCtKnownPopularSCTsMinVersion = 0,
kSetCtEnforcementEnabledMinVersion = 0,
kUpdateKeyPinsListMinVersion = 0,
kBindTestInterfaceForTestingMinVersion = 0,
kSetFirstPartySetsMinVersion = 0,
kSetExplicitlyAllowedPortsMinVersion = 0,
kUpdateMaskedDomainListMinVersion = 0,
kParseHeadersMinVersion = 0,
kEnableDataUseUpdatesMinVersion = 0,
kSetIPv6ReachabilityOverrideMinVersion = 0,
kSetNetworkAnnotationMonitorMinVersion = 0,
kSetTpcdMetadataGrantsMinVersion = 0,
};
// crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK
// with not having this data in traces there.
#if !BUILDFLAG(IS_FUCHSIA)
struct SetParams_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct StartNetLog_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct AttachNetLogProxy_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetSSLKeyLogFile_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct CreateNetworkContext_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ConfigureStubHostResolver_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct DisableQuic_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetUpHttpAuth_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ConfigureHttpAuthPrefs_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetRawHeadersAccess_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetMaxConnectionsPerProxyChain_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetNetworkChangeManager_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetNetworkQualityEstimatorManager_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetDnsConfigChangeManager_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct GetNetworkList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnTrustStoreChanged_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnClientCertStoreChanged_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetEncryptionKey_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnMemoryPressure_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnPeerToPeerConnectionsCountChange_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetTrustTokenKeyCommitments_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ClearSCTAuditingCache_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ConfigureSCTAuditing_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateCtLogList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateCtKnownPopularSCTs_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetCtEnforcementEnabled_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateKeyPinsList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct BindTestInterfaceForTesting_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetFirstPartySets_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetExplicitlyAllowedPorts_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct UpdateMaskedDomainList_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ParseHeaders_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EnableDataUseUpdates_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetIPv6ReachabilityOverride_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetNetworkAnnotationMonitor_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct SetTpcdMetadataGrants_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~NetworkService() = default;
// @generated_from: network.mojom.NetworkService.SetParams
virtual void SetParams(NetworkServiceParamsPtr params) = 0;
// @generated_from: network.mojom.NetworkService.StartNetLog
virtual void StartNetLog(::base::File file, uint64_t max_total_size, ::net::NetLogCaptureMode capture_mode, ::base::Value::Dict constants) = 0;
// @generated_from: network.mojom.NetworkService.AttachNetLogProxy
virtual void AttachNetLogProxy(::mojo::PendingRemote<::network::mojom::NetLogProxySource> proxy_source, ::mojo::PendingReceiver<::network::mojom::NetLogProxySink> proxy_sink) = 0;
// @generated_from: network.mojom.NetworkService.SetSSLKeyLogFile
virtual void SetSSLKeyLogFile(::base::File file) = 0;
// @generated_from: network.mojom.NetworkService.CreateNetworkContext
virtual void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::NetworkContext> context, ::network::mojom::NetworkContextParamsPtr params) = 0;
// @generated_from: network.mojom.NetworkService.ConfigureStubHostResolver
virtual void ConfigureStubHostResolver(bool insecure_dns_client_enabled, ::net::SecureDnsMode secure_dns_mode, const ::net::DnsOverHttpsConfig& dns_over_https_config, bool additional_dns_types_enabled) = 0;
// @generated_from: network.mojom.NetworkService.DisableQuic
virtual void DisableQuic() = 0;
// @generated_from: network.mojom.NetworkService.SetUpHttpAuth
virtual void SetUpHttpAuth(HttpAuthStaticParamsPtr http_auth_static_params) = 0;
// @generated_from: network.mojom.NetworkService.ConfigureHttpAuthPrefs
virtual void ConfigureHttpAuthPrefs(HttpAuthDynamicParamsPtr http_auth_dynamic_params) = 0;
// @generated_from: network.mojom.NetworkService.SetRawHeadersAccess
virtual void SetRawHeadersAccess(int32_t process_id, const std::vector<::url::Origin>& origins) = 0;
// @generated_from: network.mojom.NetworkService.SetMaxConnectionsPerProxyChain
virtual void SetMaxConnectionsPerProxyChain(int32_t max_connections) = 0;
// @generated_from: network.mojom.NetworkService.GetNetworkChangeManager
virtual void GetNetworkChangeManager(::mojo::PendingReceiver<::network::mojom::NetworkChangeManager> network_change_manager) = 0;
// @generated_from: network.mojom.NetworkService.GetNetworkQualityEstimatorManager
virtual void GetNetworkQualityEstimatorManager(::mojo::PendingReceiver<::network::mojom::NetworkQualityEstimatorManager> receiver) = 0;
// @generated_from: network.mojom.NetworkService.GetDnsConfigChangeManager
virtual void GetDnsConfigChangeManager(::mojo::PendingReceiver<::network::mojom::DnsConfigChangeManager> receiver) = 0;
using GetNetworkListCallback = base::OnceCallback<void(const std::optional<std::vector<::net::NetworkInterface>>&)>;
// @generated_from: network.mojom.NetworkService.GetNetworkList
virtual void GetNetworkList(uint32_t policy, GetNetworkListCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.OnTrustStoreChanged
virtual void OnTrustStoreChanged() = 0;
// @generated_from: network.mojom.NetworkService.OnClientCertStoreChanged
virtual void OnClientCertStoreChanged() = 0;
// @generated_from: network.mojom.NetworkService.SetEncryptionKey
virtual void SetEncryptionKey(const std::string& encryption_key) = 0;
// @generated_from: network.mojom.NetworkService.OnMemoryPressure
virtual void OnMemoryPressure(::base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) = 0;
// @generated_from: network.mojom.NetworkService.OnPeerToPeerConnectionsCountChange
virtual void OnPeerToPeerConnectionsCountChange(uint32_t count) = 0;
using SetTrustTokenKeyCommitmentsCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.SetTrustTokenKeyCommitments
virtual void SetTrustTokenKeyCommitments(const std::string& raw_commitments, SetTrustTokenKeyCommitmentsCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.ClearSCTAuditingCache
virtual void ClearSCTAuditingCache() = 0;
// @generated_from: network.mojom.NetworkService.ConfigureSCTAuditing
virtual void ConfigureSCTAuditing(SCTAuditingConfigurationPtr configuration) = 0;
using UpdateCtLogListCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.UpdateCtLogList
virtual void UpdateCtLogList(std::vector<::network::mojom::CTLogInfoPtr> log_list, UpdateCtLogListCallback callback) = 0;
using UpdateCtKnownPopularSCTsCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.UpdateCtKnownPopularSCTs
virtual void UpdateCtKnownPopularSCTs(const std::vector<std::vector<uint8_t>>& sct_hashes, UpdateCtKnownPopularSCTsCallback callback) = 0;
using SetCtEnforcementEnabledCallback = base::OnceCallback<void()>;
// @generated_from: network.mojom.NetworkService.SetCtEnforcementEnabled
virtual void SetCtEnforcementEnabled(bool enabled, SetCtEnforcementEnabledCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.UpdateKeyPinsList
virtual void UpdateKeyPinsList(::network::mojom::PinListPtr pin_list, ::base::Time update_time) = 0;
// @generated_from: network.mojom.NetworkService.BindTestInterfaceForTesting
virtual void BindTestInterfaceForTesting(::mojo::PendingReceiver<::network::mojom::NetworkServiceTest> receiver) = 0;
// @generated_from: network.mojom.NetworkService.SetFirstPartySets
virtual void SetFirstPartySets(::net::GlobalFirstPartySets sets) = 0;
// @generated_from: network.mojom.NetworkService.SetExplicitlyAllowedPorts
virtual void SetExplicitlyAllowedPorts(const std::vector<uint16_t>& ports) = 0;
// @generated_from: network.mojom.NetworkService.UpdateMaskedDomainList
virtual void UpdateMaskedDomainList(::mojo_base::ProtoWrapper masked_domain_list, const std::vector<std::string>& exclusion_list) = 0;
using ParseHeadersCallback = base::OnceCallback<void(::network::mojom::ParsedHeadersPtr)>;
// @generated_from: network.mojom.NetworkService.ParseHeaders
virtual void ParseHeaders(const ::GURL& url, const ::scoped_refptr<::net::HttpResponseHeaders>& headers, ParseHeadersCallback callback) = 0;
// @generated_from: network.mojom.NetworkService.EnableDataUseUpdates
virtual void EnableDataUseUpdates(bool enable) = 0;
// @generated_from: network.mojom.NetworkService.SetIPv6ReachabilityOverride
virtual void SetIPv6ReachabilityOverride(bool reachability_override) = 0;
// @generated_from: network.mojom.NetworkService.SetNetworkAnnotationMonitor
virtual void SetNetworkAnnotationMonitor(::mojo::PendingRemote<::network::mojom::NetworkAnnotationMonitor> remote) = 0;
// @generated_from: network.mojom.NetworkService.SetTpcdMetadataGrants
virtual void SetTpcdMetadataGrants(const std::vector<::ContentSettingPatternSource>& settings) = 0;
};
// @generated_from: network.mojom.NetworkService
class NetworkServiceProxy
: public NetworkService {
public:
using InterfaceType = NetworkService;
explicit NetworkServiceProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: network.mojom.NetworkService.SetParams
void SetParams(NetworkServiceParamsPtr params) final;
// @generated_from: network.mojom.NetworkService.StartNetLog
void StartNetLog(::base::File file, uint64_t max_total_size, ::net::NetLogCaptureMode capture_mode, ::base::Value::Dict constants) final;
// @generated_from: network.mojom.NetworkService.AttachNetLogProxy
void AttachNetLogProxy(::mojo::PendingRemote<::network::mojom::NetLogProxySource> proxy_source, ::mojo::PendingReceiver<::network::mojom::NetLogProxySink> proxy_sink) final;
// @generated_from: network.mojom.NetworkService.SetSSLKeyLogFile
void SetSSLKeyLogFile(::base::File file) final;
// @generated_from: network.mojom.NetworkService.CreateNetworkContext
void CreateNetworkContext(::mojo::PendingReceiver<::network::mojom::NetworkContext> context, ::network::mojom::NetworkContextParamsPtr params) final;
// @generated_from: network.mojom.NetworkService.ConfigureStubHostResolver
void ConfigureStubHostResolver(bool insecure_dns_client_enabled, ::net::SecureDnsMode secure_dns_mode, const ::net::DnsOverHttpsConfig& dns_over_https_config, bool additional_dns_types_enabled) final;
// @generated_from: network.mojom.NetworkService.DisableQuic
void DisableQuic() final;
// @generated_from: network.mojom.NetworkService.SetUpHttpAuth
void SetUpHttpAuth(HttpAuthStaticParamsPtr http_auth_static_params) final;
// @generated_from: network.mojom.NetworkService.ConfigureHttpAuthPrefs
void ConfigureHttpAuthPrefs(HttpAuthDynamicParamsPtr http_auth_dynamic_params) final;
// @generated_from: network.mojom.NetworkService.SetRawHeadersAccess
void SetRawHeadersAccess(int32_t process_id, const std::vector<::url::Origin>& origins) final;
// @generated_from: network.mojom.NetworkService.SetMaxConnectionsPerProxyChain
void SetMaxConnectionsPerProxyChain(int32_t max_connections) final;
// @generated_from: network.mojom.NetworkService.GetNetworkChangeManager
void GetNetworkChangeManager(::mojo::PendingReceiver<::network::mojom::NetworkChangeManager> network_change_manager) final;
// @generated_from: network.mojom.NetworkService.GetNetworkQualityEstimatorManager
void GetNetworkQualityEstimatorManager(::mojo::PendingReceiver<::network::mojom::NetworkQualityEstimatorManager> receiver) final;
// @generated_from: network.mojom.NetworkService.GetDnsConfigChangeManager
void GetDnsConfigChangeManager(::mojo::PendingReceiver<::network::mojom::DnsConfigChangeManager> receiver) final;
// @generated_from: network.mojom.NetworkService.GetNetworkList
void GetNetworkList(uint32_t policy, GetNetworkListCallback callback) final;
// @generated_from: network.mojom.NetworkService.OnTrustStoreChanged
void OnTrustStoreChanged() final;
// @generated_from: network.mojom.NetworkService.OnClientCertStoreChanged
void OnClientCertStoreChanged() final;
// @generated_from: network.mojom.NetworkService.SetEncryptionKey
void SetEncryptionKey(const std::string& encryption_key) final;
// @generated_from: network.mojom.NetworkService.OnMemoryPressure
void OnMemoryPressure(::base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) final;
// @generated_from: network.mojom.NetworkService.OnPeerToPeerConnectionsCountChange
void OnPeerToPeerConnectionsCountChange(uint32_t count) final;
// @generated_from: network.mojom.NetworkService.SetTrustTokenKeyCommitments
void SetTrustTokenKeyCommitments(const std::string& raw_commitments, SetTrustTokenKeyCommitmentsCallback callback) final;
// @generated_from: network.mojom.NetworkService.ClearSCTAuditingCache
void ClearSCTAuditingCache() final;
// @generated_from: network.mojom.NetworkService.ConfigureSCTAuditing
void ConfigureSCTAuditing(SCTAuditingConfigurationPtr configuration) final;
// @generated_from: network.mojom.NetworkService.UpdateCtLogList
void UpdateCtLogList(std::vector<::network::mojom::CTLogInfoPtr> log_list, UpdateCtLogListCallback callback) final;
// @generated_from: network.mojom.NetworkService.UpdateCtKnownPopularSCTs
void UpdateCtKnownPopularSCTs(const std::vector<std::vector<uint8_t>>& sct_hashes, UpdateCtKnownPopularSCTsCallback callback) final;
// @generated_from: network.mojom.NetworkService.SetCtEnforcementEnabled
void SetCtEnforcementEnabled(bool enabled, SetCtEnforcementEnabledCallback callback) final;
// @generated_from: network.mojom.NetworkService.UpdateKeyPinsList
void UpdateKeyPinsList(::network::mojom::PinListPtr pin_list, ::base::Time update_time) final;
// @generated_from: network.mojom.NetworkService.BindTestInterfaceForTesting
void BindTestInterfaceForTesting(::mojo::PendingReceiver<::network::mojom::NetworkServiceTest> receiver) final;
// @generated_from: network.mojom.NetworkService.SetFirstPartySets
void SetFirstPartySets(::net::GlobalFirstPartySets sets) final;
// @generated_from: network.mojom.NetworkService.SetExplicitlyAllowedPorts
void SetExplicitlyAllowedPorts(const std::vector<uint16_t>& ports) final;
// @generated_from: network.mojom.NetworkService.UpdateMaskedDomainList
void UpdateMaskedDomainList(::mojo_base::ProtoWrapper masked_domain_list, const std::vector<std::string>& exclusion_list) final;
// @generated_from: network.mojom.NetworkService.ParseHeaders
void ParseHeaders(const ::GURL& url, const ::scoped_refptr<::net::HttpResponseHeaders>& headers, ParseHeadersCallback callback) final;
// @generated_from: network.mojom.NetworkService.EnableDataUseUpdates
void EnableDataUseUpdates(bool enable) final;
// @generated_from: network.mojom.NetworkService.SetIPv6ReachabilityOverride
void SetIPv6ReachabilityOverride(bool reachability_override) final;
// @generated_from: network.mojom.NetworkService.SetNetworkAnnotationMonitor
void SetNetworkAnnotationMonitor(::mojo::PendingRemote<::network::mojom::NetworkAnnotationMonitor> remote) final;
// @generated_from: network.mojom.NetworkService.SetTpcdMetadataGrants
void SetTpcdMetadataGrants(const std::vector<::ContentSettingPatternSource>& settings) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class NetworkServiceStubDispatch {
public:
static bool Accept(NetworkService* impl, mojo::Message* message);
static bool AcceptWithResponder(
NetworkService* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<NetworkService>>
class NetworkServiceStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
NetworkServiceStub() = default;
~NetworkServiceStub() override = default;
void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
ImplPointerType& sink() { return sink_; }
bool Accept(mojo::Message* message) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return NetworkServiceStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return NetworkServiceStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class NetworkServiceRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class NetworkServiceResponseValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
// @generated_from: network.mojom.HttpAuthStaticParams
class HttpAuthStaticParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<HttpAuthStaticParams, T>::value>;
using DataView = HttpAuthStaticParamsDataView;
using Data_ = internal::HttpAuthStaticParams_Data;
template <typename... Args>
static HttpAuthStaticParamsPtr New(Args&&... args) {
return HttpAuthStaticParamsPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static HttpAuthStaticParamsPtr From(const U& u) {
return mojo::TypeConverter<HttpAuthStaticParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, HttpAuthStaticParams>::Convert(*this);
}
HttpAuthStaticParams();
explicit HttpAuthStaticParams(
const std::string& gssapi_library_name);
~HttpAuthStaticParams();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = HttpAuthStaticParamsPtr>
HttpAuthStaticParamsPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
size_t Hash(size_t seed) const;
template <typename UserType>
static std::vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
HttpAuthStaticParams::DataView, std::vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
HttpAuthStaticParams::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::HttpAuthStaticParams_UnserializedMessageContext<
UserType, HttpAuthStaticParams::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<HttpAuthStaticParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const std::vector<uint8_t>& input,
UserType* output) {
return HttpAuthStaticParams::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::HttpAuthStaticParams_UnserializedMessageContext<
UserType, HttpAuthStaticParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<HttpAuthStaticParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.HttpAuthStaticParams.gssapi_library_name
std::string gssapi_library_name;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.EnvironmentVariable
class EnvironmentVariable {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<EnvironmentVariable, T>::value>;
using DataView = EnvironmentVariableDataView;
using Data_ = internal::EnvironmentVariable_Data;
template <typename... Args>
static EnvironmentVariablePtr New(Args&&... args) {
return EnvironmentVariablePtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static EnvironmentVariablePtr From(const U& u) {
return mojo::TypeConverter<EnvironmentVariablePtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, EnvironmentVariable>::Convert(*this);
}
EnvironmentVariable();
EnvironmentVariable(
const std::string& name,
const std::string& value);
~EnvironmentVariable();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = EnvironmentVariablePtr>
EnvironmentVariablePtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
size_t Hash(size_t seed) const;
template <typename UserType>
static std::vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
EnvironmentVariable::DataView, std::vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
EnvironmentVariable::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::EnvironmentVariable_UnserializedMessageContext<
UserType, EnvironmentVariable::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<EnvironmentVariable::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const std::vector<uint8_t>& input,
UserType* output) {
return EnvironmentVariable::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::EnvironmentVariable_UnserializedMessageContext<
UserType, EnvironmentVariable::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<EnvironmentVariable::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.EnvironmentVariable.name
std::string name;
// @generated_from: network.mojom.EnvironmentVariable.value
std::string value;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, EnvironmentVariable::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.HttpAuthDynamicParams
class HttpAuthDynamicParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<HttpAuthDynamicParams, T>::value>;
using DataView = HttpAuthDynamicParamsDataView;
using Data_ = internal::HttpAuthDynamicParams_Data;
template <typename... Args>
static HttpAuthDynamicParamsPtr New(Args&&... args) {
return HttpAuthDynamicParamsPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static HttpAuthDynamicParamsPtr From(const U& u) {
return mojo::TypeConverter<HttpAuthDynamicParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, HttpAuthDynamicParams>::Convert(*this);
}
HttpAuthDynamicParams();
HttpAuthDynamicParams(
std::optional<std::vector<std::string>> allowed_schemes,
std::vector<std::string> patterns_allowed_to_use_all_schemes,
const std::string& server_allowlist,
const std::string& delegate_allowlist,
bool delegate_by_kdc_policy,
bool negotiate_disable_cname_lookup,
bool enable_negotiate_port,
bool ntlm_v2_enabled,
const std::string& android_negotiate_account_type,
bool allow_gssapi_library_load,
bool basic_over_http_enabled);
~HttpAuthDynamicParams();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = HttpAuthDynamicParamsPtr>
HttpAuthDynamicParamsPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
template <typename UserType>
static std::vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
HttpAuthDynamicParams::DataView, std::vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
HttpAuthDynamicParams::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::HttpAuthDynamicParams_UnserializedMessageContext<
UserType, HttpAuthDynamicParams::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<HttpAuthDynamicParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const std::vector<uint8_t>& input,
UserType* output) {
return HttpAuthDynamicParams::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::HttpAuthDynamicParams_UnserializedMessageContext<
UserType, HttpAuthDynamicParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<HttpAuthDynamicParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.HttpAuthDynamicParams.allowed_schemes
std::optional<std::vector<std::string>> allowed_schemes;
// @generated_from: network.mojom.HttpAuthDynamicParams.patterns_allowed_to_use_all_schemes
std::vector<std::string> patterns_allowed_to_use_all_schemes;
// @generated_from: network.mojom.HttpAuthDynamicParams.server_allowlist
std::string server_allowlist;
// @generated_from: network.mojom.HttpAuthDynamicParams.delegate_allowlist
std::string delegate_allowlist;
// @generated_from: network.mojom.HttpAuthDynamicParams.delegate_by_kdc_policy
bool delegate_by_kdc_policy;
// @generated_from: network.mojom.HttpAuthDynamicParams.negotiate_disable_cname_lookup
bool negotiate_disable_cname_lookup;
// @generated_from: network.mojom.HttpAuthDynamicParams.enable_negotiate_port
bool enable_negotiate_port;
// @generated_from: network.mojom.HttpAuthDynamicParams.ntlm_v2_enabled
bool ntlm_v2_enabled;
// @generated_from: network.mojom.HttpAuthDynamicParams.android_negotiate_account_type
std::string android_negotiate_account_type;
// @generated_from: network.mojom.HttpAuthDynamicParams.allow_gssapi_library_load
bool allow_gssapi_library_load;
// @generated_from: network.mojom.HttpAuthDynamicParams.basic_over_http_enabled
bool basic_over_http_enabled;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.NetworkServiceParams
class NetworkServiceParams {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<NetworkServiceParams, T>::value>;
using DataView = NetworkServiceParamsDataView;
using Data_ = internal::NetworkServiceParams_Data;
template <typename... Args>
static NetworkServiceParamsPtr New(Args&&... args) {
return NetworkServiceParamsPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static NetworkServiceParamsPtr From(const U& u) {
return mojo::TypeConverter<NetworkServiceParamsPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, NetworkServiceParams>::Convert(*this);
}
NetworkServiceParams();
NetworkServiceParams(
::network::mojom::ConnectionType initial_connection_type,
::network::mojom::ConnectionSubtype initial_connection_subtype,
std::vector<EnvironmentVariablePtr> environment,
::mojo::PendingRemote<::network::mojom::URLLoaderNetworkServiceObserver> default_observer,
bool first_party_sets_enabled,
::mojo::PendingRemote<::network::mojom::SystemDnsResolver> system_dns_resolver,
::network::mojom::IpProtectionProxyBypassPolicy ip_protection_proxy_bypass_policy);
NetworkServiceParams(const NetworkServiceParams&) = delete;
NetworkServiceParams& operator=(const NetworkServiceParams&) = delete;
~NetworkServiceParams();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = NetworkServiceParamsPtr>
NetworkServiceParamsPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
NetworkServiceParams::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::NetworkServiceParams_UnserializedMessageContext<
UserType, NetworkServiceParams::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<NetworkServiceParams::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const std::vector<uint8_t>& input,
UserType* output) {
return NetworkServiceParams::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::NetworkServiceParams_UnserializedMessageContext<
UserType, NetworkServiceParams::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<NetworkServiceParams::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.NetworkServiceParams.initial_connection_type
::network::mojom::ConnectionType initial_connection_type;
// @generated_from: network.mojom.NetworkServiceParams.initial_connection_subtype
::network::mojom::ConnectionSubtype initial_connection_subtype;
// @generated_from: network.mojom.NetworkServiceParams.environment
std::vector<EnvironmentVariablePtr> environment;
// @generated_from: network.mojom.NetworkServiceParams.default_observer
::mojo::PendingRemote<::network::mojom::URLLoaderNetworkServiceObserver> default_observer;
// @generated_from: network.mojom.NetworkServiceParams.first_party_sets_enabled
bool first_party_sets_enabled;
// @generated_from: network.mojom.NetworkServiceParams.system_dns_resolver
::mojo::PendingRemote<::network::mojom::SystemDnsResolver> system_dns_resolver;
// @generated_from: network.mojom.NetworkServiceParams.ip_protection_proxy_bypass_policy
::network::mojom::IpProtectionProxyBypassPolicy ip_protection_proxy_bypass_policy;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, NetworkServiceParams::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
// @generated_from: network.mojom.SCTAuditingConfiguration
class SCTAuditingConfiguration {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<SCTAuditingConfiguration, T>::value>;
using DataView = SCTAuditingConfigurationDataView;
using Data_ = internal::SCTAuditingConfiguration_Data;
template <typename... Args>
static SCTAuditingConfigurationPtr New(Args&&... args) {
return SCTAuditingConfigurationPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static SCTAuditingConfigurationPtr From(const U& u) {
return mojo::TypeConverter<SCTAuditingConfigurationPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, SCTAuditingConfiguration>::Convert(*this);
}
SCTAuditingConfiguration();
SCTAuditingConfiguration(
double sampling_rate,
::base::TimeDelta log_expected_ingestion_delay,
::base::TimeDelta log_max_ingestion_random_delay,
const ::GURL& report_uri,
const ::GURL& hashdance_lookup_uri,
const ::net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
const ::net::MutableNetworkTrafficAnnotationTag& hashdance_traffic_annotation);
~SCTAuditingConfiguration();
// Clone() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Clone() or copy
// constructor/assignment are available for members.
template <typename StructPtrType = SCTAuditingConfigurationPtr>
SCTAuditingConfigurationPtr Clone() const;
// Equals() is a template so it is only instantiated if it is used. Thus, the
// bindings generator does not need to know whether Equals() or == operator
// are available for members.
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator!=(const T& rhs) const { return !operator==(rhs); }
template <typename UserType>
static std::vector<uint8_t> Serialize(UserType* input) {
return mojo::internal::SerializeImpl<
SCTAuditingConfiguration::DataView, std::vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
SCTAuditingConfiguration::DataView>(input);
}
// The returned Message is serialized only if the message is moved
// cross-process or cross-language. Otherwise if the message is Deserialized
// as the same UserType |input| will just be moved to |output| in
// DeserializeFromMessage.
template <typename UserType>
static mojo::Message WrapAsMessage(UserType input) {
return mojo::Message(std::make_unique<
internal::SCTAuditingConfiguration_UnserializedMessageContext<
UserType, SCTAuditingConfiguration::DataView>>(0, 0, std::move(input)),
MOJO_CREATE_MESSAGE_FLAG_NONE);
}
template <typename UserType>
static bool Deserialize(const void* data,
size_t data_num_bytes,
UserType* output) {
mojo::Message message;
return mojo::internal::DeserializeImpl<SCTAuditingConfiguration::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const std::vector<uint8_t>& input,
UserType* output) {
return SCTAuditingConfiguration::Deserialize(
input.size() == 0 ? nullptr : &input.front(), input.size(), output);
}
template <typename UserType>
static bool DeserializeFromMessage(mojo::Message input,
UserType* output) {
auto context = input.TakeUnserializedContext<
internal::SCTAuditingConfiguration_UnserializedMessageContext<
UserType, SCTAuditingConfiguration::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<SCTAuditingConfiguration::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: network.mojom.SCTAuditingConfiguration.sampling_rate
double sampling_rate;
// @generated_from: network.mojom.SCTAuditingConfiguration.log_expected_ingestion_delay
::base::TimeDelta log_expected_ingestion_delay;
// @generated_from: network.mojom.SCTAuditingConfiguration.log_max_ingestion_random_delay
::base::TimeDelta log_max_ingestion_random_delay;
// @generated_from: network.mojom.SCTAuditingConfiguration.report_uri
::GURL report_uri;
// @generated_from: network.mojom.SCTAuditingConfiguration.hashdance_lookup_uri
::GURL hashdance_lookup_uri;
// @generated_from: network.mojom.SCTAuditingConfiguration.traffic_annotation
::net::MutableNetworkTrafficAnnotationTag traffic_annotation;
// @generated_from: network.mojom.SCTAuditingConfiguration.hashdance_traffic_annotation
::net::MutableNetworkTrafficAnnotationTag hashdance_traffic_annotation;
// Serialise this struct into a trace.
void WriteIntoTrace(perfetto::TracedValue traced_context) const;
private:
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
};
// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
template <typename StructPtrType>
HttpAuthStaticParamsPtr HttpAuthStaticParams::Clone() const {
return New(
mojo::Clone(gssapi_library_name)
);
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>*>
bool HttpAuthStaticParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->gssapi_library_name, other_struct.gssapi_library_name))
return false;
return true;
}
template <typename T, HttpAuthStaticParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.gssapi_library_name < rhs.gssapi_library_name)
return true;
if (rhs.gssapi_library_name < lhs.gssapi_library_name)
return false;
return false;
}
template <typename StructPtrType>
HttpAuthDynamicParamsPtr HttpAuthDynamicParams::Clone() const {
return New(
mojo::Clone(allowed_schemes),
mojo::Clone(patterns_allowed_to_use_all_schemes),
mojo::Clone(server_allowlist),
mojo::Clone(delegate_allowlist),
mojo::Clone(delegate_by_kdc_policy),
mojo::Clone(negotiate_disable_cname_lookup),
mojo::Clone(enable_negotiate_port),
mojo::Clone(ntlm_v2_enabled),
mojo::Clone(android_negotiate_account_type),
mojo::Clone(allow_gssapi_library_load),
mojo::Clone(basic_over_http_enabled)
);
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>*>
bool HttpAuthDynamicParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->allowed_schemes, other_struct.allowed_schemes))
return false;
if (!mojo::Equals(this->patterns_allowed_to_use_all_schemes, other_struct.patterns_allowed_to_use_all_schemes))
return false;
if (!mojo::Equals(this->server_allowlist, other_struct.server_allowlist))
return false;
if (!mojo::Equals(this->delegate_allowlist, other_struct.delegate_allowlist))
return false;
if (!mojo::Equals(this->delegate_by_kdc_policy, other_struct.delegate_by_kdc_policy))
return false;
if (!mojo::Equals(this->negotiate_disable_cname_lookup, other_struct.negotiate_disable_cname_lookup))
return false;
if (!mojo::Equals(this->enable_negotiate_port, other_struct.enable_negotiate_port))
return false;
if (!mojo::Equals(this->ntlm_v2_enabled, other_struct.ntlm_v2_enabled))
return false;
if (!mojo::Equals(this->android_negotiate_account_type, other_struct.android_negotiate_account_type))
return false;
if (!mojo::Equals(this->allow_gssapi_library_load, other_struct.allow_gssapi_library_load))
return false;
if (!mojo::Equals(this->basic_over_http_enabled, other_struct.basic_over_http_enabled))
return false;
return true;
}
template <typename T, HttpAuthDynamicParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.allowed_schemes < rhs.allowed_schemes)
return true;
if (rhs.allowed_schemes < lhs.allowed_schemes)
return false;
if (lhs.patterns_allowed_to_use_all_schemes < rhs.patterns_allowed_to_use_all_schemes)
return true;
if (rhs.patterns_allowed_to_use_all_schemes < lhs.patterns_allowed_to_use_all_schemes)
return false;
if (lhs.server_allowlist < rhs.server_allowlist)
return true;
if (rhs.server_allowlist < lhs.server_allowlist)
return false;
if (lhs.delegate_allowlist < rhs.delegate_allowlist)
return true;
if (rhs.delegate_allowlist < lhs.delegate_allowlist)
return false;
if (lhs.delegate_by_kdc_policy < rhs.delegate_by_kdc_policy)
return true;
if (rhs.delegate_by_kdc_policy < lhs.delegate_by_kdc_policy)
return false;
if (lhs.negotiate_disable_cname_lookup < rhs.negotiate_disable_cname_lookup)
return true;
if (rhs.negotiate_disable_cname_lookup < lhs.negotiate_disable_cname_lookup)
return false;
if (lhs.enable_negotiate_port < rhs.enable_negotiate_port)
return true;
if (rhs.enable_negotiate_port < lhs.enable_negotiate_port)
return false;
if (lhs.ntlm_v2_enabled < rhs.ntlm_v2_enabled)
return true;
if (rhs.ntlm_v2_enabled < lhs.ntlm_v2_enabled)
return false;
if (lhs.android_negotiate_account_type < rhs.android_negotiate_account_type)
return true;
if (rhs.android_negotiate_account_type < lhs.android_negotiate_account_type)
return false;
if (lhs.allow_gssapi_library_load < rhs.allow_gssapi_library_load)
return true;
if (rhs.allow_gssapi_library_load < lhs.allow_gssapi_library_load)
return false;
if (lhs.basic_over_http_enabled < rhs.basic_over_http_enabled)
return true;
if (rhs.basic_over_http_enabled < lhs.basic_over_http_enabled)
return false;
return false;
}
template <typename StructPtrType>
EnvironmentVariablePtr EnvironmentVariable::Clone() const {
return New(
mojo::Clone(name),
mojo::Clone(value)
);
}
template <typename T, EnvironmentVariable::EnableIfSame<T>*>
bool EnvironmentVariable::Equals(const T& other_struct) const {
if (!mojo::Equals(this->name, other_struct.name))
return false;
if (!mojo::Equals(this->value, other_struct.value))
return false;
return true;
}
template <typename T, EnvironmentVariable::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.name < rhs.name)
return true;
if (rhs.name < lhs.name)
return false;
if (lhs.value < rhs.value)
return true;
if (rhs.value < lhs.value)
return false;
return false;
}
template <typename StructPtrType>
NetworkServiceParamsPtr NetworkServiceParams::Clone() const {
return New(
mojo::Clone(initial_connection_type),
mojo::Clone(initial_connection_subtype),
mojo::Clone(environment),
mojo::Clone(default_observer),
mojo::Clone(first_party_sets_enabled),
mojo::Clone(system_dns_resolver),
mojo::Clone(ip_protection_proxy_bypass_policy)
);
}
template <typename T, NetworkServiceParams::EnableIfSame<T>*>
bool NetworkServiceParams::Equals(const T& other_struct) const {
if (!mojo::Equals(this->initial_connection_type, other_struct.initial_connection_type))
return false;
if (!mojo::Equals(this->initial_connection_subtype, other_struct.initial_connection_subtype))
return false;
if (!mojo::Equals(this->environment, other_struct.environment))
return false;
if (!mojo::Equals(this->default_observer, other_struct.default_observer))
return false;
if (!mojo::Equals(this->first_party_sets_enabled, other_struct.first_party_sets_enabled))
return false;
if (!mojo::Equals(this->system_dns_resolver, other_struct.system_dns_resolver))
return false;
if (!mojo::Equals(this->ip_protection_proxy_bypass_policy, other_struct.ip_protection_proxy_bypass_policy))
return false;
return true;
}
template <typename T, NetworkServiceParams::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.initial_connection_type < rhs.initial_connection_type)
return true;
if (rhs.initial_connection_type < lhs.initial_connection_type)
return false;
if (lhs.initial_connection_subtype < rhs.initial_connection_subtype)
return true;
if (rhs.initial_connection_subtype < lhs.initial_connection_subtype)
return false;
if (lhs.environment < rhs.environment)
return true;
if (rhs.environment < lhs.environment)
return false;
if (lhs.default_observer < rhs.default_observer)
return true;
if (rhs.default_observer < lhs.default_observer)
return false;
if (lhs.first_party_sets_enabled < rhs.first_party_sets_enabled)
return true;
if (rhs.first_party_sets_enabled < lhs.first_party_sets_enabled)
return false;
if (lhs.system_dns_resolver < rhs.system_dns_resolver)
return true;
if (rhs.system_dns_resolver < lhs.system_dns_resolver)
return false;
if (lhs.ip_protection_proxy_bypass_policy < rhs.ip_protection_proxy_bypass_policy)
return true;
if (rhs.ip_protection_proxy_bypass_policy < lhs.ip_protection_proxy_bypass_policy)
return false;
return false;
}
template <typename StructPtrType>
SCTAuditingConfigurationPtr SCTAuditingConfiguration::Clone() const {
return New(
mojo::Clone(sampling_rate),
mojo::Clone(log_expected_ingestion_delay),
mojo::Clone(log_max_ingestion_random_delay),
mojo::Clone(report_uri),
mojo::Clone(hashdance_lookup_uri),
mojo::Clone(traffic_annotation),
mojo::Clone(hashdance_traffic_annotation)
);
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>*>
bool SCTAuditingConfiguration::Equals(const T& other_struct) const {
if (!mojo::Equals(this->sampling_rate, other_struct.sampling_rate))
return false;
if (!mojo::Equals(this->log_expected_ingestion_delay, other_struct.log_expected_ingestion_delay))
return false;
if (!mojo::Equals(this->log_max_ingestion_random_delay, other_struct.log_max_ingestion_random_delay))
return false;
if (!mojo::Equals(this->report_uri, other_struct.report_uri))
return false;
if (!mojo::Equals(this->hashdance_lookup_uri, other_struct.hashdance_lookup_uri))
return false;
if (!mojo::Equals(this->traffic_annotation, other_struct.traffic_annotation))
return false;
if (!mojo::Equals(this->hashdance_traffic_annotation, other_struct.hashdance_traffic_annotation))
return false;
return true;
}
template <typename T, SCTAuditingConfiguration::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.sampling_rate < rhs.sampling_rate)
return true;
if (rhs.sampling_rate < lhs.sampling_rate)
return false;
if (lhs.log_expected_ingestion_delay < rhs.log_expected_ingestion_delay)
return true;
if (rhs.log_expected_ingestion_delay < lhs.log_expected_ingestion_delay)
return false;
if (lhs.log_max_ingestion_random_delay < rhs.log_max_ingestion_random_delay)
return true;
if (rhs.log_max_ingestion_random_delay < lhs.log_max_ingestion_random_delay)
return false;
if (lhs.report_uri < rhs.report_uri)
return true;
if (rhs.report_uri < lhs.report_uri)
return false;
if (lhs.hashdance_lookup_uri < rhs.hashdance_lookup_uri)
return true;
if (rhs.hashdance_lookup_uri < lhs.hashdance_lookup_uri)
return false;
if (lhs.traffic_annotation < rhs.traffic_annotation)
return true;
if (rhs.traffic_annotation < lhs.traffic_annotation)
return false;
if (lhs.hashdance_traffic_annotation < rhs.hashdance_traffic_annotation)
return true;
if (rhs.hashdance_traffic_annotation < lhs.hashdance_traffic_annotation)
return false;
return false;
}
} // network::mojom
namespace mojo {
template <>
struct StructTraits<::network::mojom::HttpAuthStaticParams::DataView,
::network::mojom::HttpAuthStaticParamsPtr> {
static bool IsNull(const ::network::mojom::HttpAuthStaticParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::HttpAuthStaticParamsPtr* output) { output->reset(); }
static const decltype(::network::mojom::HttpAuthStaticParams::gssapi_library_name)& gssapi_library_name(
const ::network::mojom::HttpAuthStaticParamsPtr& input) {
return input->gssapi_library_name;
}
static bool Read(::network::mojom::HttpAuthStaticParams::DataView input, ::network::mojom::HttpAuthStaticParamsPtr* output);
};
template <>
struct StructTraits<::network::mojom::HttpAuthDynamicParams::DataView,
::network::mojom::HttpAuthDynamicParamsPtr> {
static bool IsNull(const ::network::mojom::HttpAuthDynamicParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::HttpAuthDynamicParamsPtr* output) { output->reset(); }
static const decltype(::network::mojom::HttpAuthDynamicParams::allowed_schemes)& allowed_schemes(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->allowed_schemes;
}
static const decltype(::network::mojom::HttpAuthDynamicParams::patterns_allowed_to_use_all_schemes)& patterns_allowed_to_use_all_schemes(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->patterns_allowed_to_use_all_schemes;
}
static const decltype(::network::mojom::HttpAuthDynamicParams::server_allowlist)& server_allowlist(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->server_allowlist;
}
static const decltype(::network::mojom::HttpAuthDynamicParams::delegate_allowlist)& delegate_allowlist(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->delegate_allowlist;
}
static decltype(::network::mojom::HttpAuthDynamicParams::delegate_by_kdc_policy) delegate_by_kdc_policy(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->delegate_by_kdc_policy;
}
static decltype(::network::mojom::HttpAuthDynamicParams::negotiate_disable_cname_lookup) negotiate_disable_cname_lookup(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->negotiate_disable_cname_lookup;
}
static decltype(::network::mojom::HttpAuthDynamicParams::enable_negotiate_port) enable_negotiate_port(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->enable_negotiate_port;
}
static decltype(::network::mojom::HttpAuthDynamicParams::ntlm_v2_enabled) ntlm_v2_enabled(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->ntlm_v2_enabled;
}
static const decltype(::network::mojom::HttpAuthDynamicParams::android_negotiate_account_type)& android_negotiate_account_type(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->android_negotiate_account_type;
}
static decltype(::network::mojom::HttpAuthDynamicParams::allow_gssapi_library_load) allow_gssapi_library_load(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->allow_gssapi_library_load;
}
static decltype(::network::mojom::HttpAuthDynamicParams::basic_over_http_enabled) basic_over_http_enabled(
const ::network::mojom::HttpAuthDynamicParamsPtr& input) {
return input->basic_over_http_enabled;
}
static bool Read(::network::mojom::HttpAuthDynamicParams::DataView input, ::network::mojom::HttpAuthDynamicParamsPtr* output);
};
template <>
struct StructTraits<::network::mojom::EnvironmentVariable::DataView,
::network::mojom::EnvironmentVariablePtr> {
static bool IsNull(const ::network::mojom::EnvironmentVariablePtr& input) { return !input; }
static void SetToNull(::network::mojom::EnvironmentVariablePtr* output) { output->reset(); }
static const decltype(::network::mojom::EnvironmentVariable::name)& name(
const ::network::mojom::EnvironmentVariablePtr& input) {
return input->name;
}
static const decltype(::network::mojom::EnvironmentVariable::value)& value(
const ::network::mojom::EnvironmentVariablePtr& input) {
return input->value;
}
static bool Read(::network::mojom::EnvironmentVariable::DataView input, ::network::mojom::EnvironmentVariablePtr* output);
};
template <>
struct StructTraits<::network::mojom::NetworkServiceParams::DataView,
::network::mojom::NetworkServiceParamsPtr> {
static bool IsNull(const ::network::mojom::NetworkServiceParamsPtr& input) { return !input; }
static void SetToNull(::network::mojom::NetworkServiceParamsPtr* output) { output->reset(); }
static decltype(::network::mojom::NetworkServiceParams::initial_connection_type) initial_connection_type(
const ::network::mojom::NetworkServiceParamsPtr& input) {
return input->initial_connection_type;
}
static decltype(::network::mojom::NetworkServiceParams::initial_connection_subtype) initial_connection_subtype(
const ::network::mojom::NetworkServiceParamsPtr& input) {
return input->initial_connection_subtype;
}
static const decltype(::network::mojom::NetworkServiceParams::environment)& environment(
const ::network::mojom::NetworkServiceParamsPtr& input) {
return input->environment;
}
static decltype(::network::mojom::NetworkServiceParams::default_observer)& default_observer(
::network::mojom::NetworkServiceParamsPtr& input) {
return input->default_observer;
}
static decltype(::network::mojom::NetworkServiceParams::first_party_sets_enabled) first_party_sets_enabled(
const ::network::mojom::NetworkServiceParamsPtr& input) {
return input->first_party_sets_enabled;
}
static decltype(::network::mojom::NetworkServiceParams::system_dns_resolver)& system_dns_resolver(
::network::mojom::NetworkServiceParamsPtr& input) {
return input->system_dns_resolver;
}
static decltype(::network::mojom::NetworkServiceParams::ip_protection_proxy_bypass_policy) ip_protection_proxy_bypass_policy(
const ::network::mojom::NetworkServiceParamsPtr& input) {
return input->ip_protection_proxy_bypass_policy;
}
static bool Read(::network::mojom::NetworkServiceParams::DataView input, ::network::mojom::NetworkServiceParamsPtr* output);
};
template <>
struct StructTraits<::network::mojom::SCTAuditingConfiguration::DataView,
::network::mojom::SCTAuditingConfigurationPtr> {
static bool IsNull(const ::network::mojom::SCTAuditingConfigurationPtr& input) { return !input; }
static void SetToNull(::network::mojom::SCTAuditingConfigurationPtr* output) { output->reset(); }
static decltype(::network::mojom::SCTAuditingConfiguration::sampling_rate) sampling_rate(
const ::network::mojom::SCTAuditingConfigurationPtr& input) {
return input->sampling_rate;
}
static const decltype(::network::mojom::SCTAuditingConfiguration::log_expected_ingestion_delay)& log_expected_ingestion_delay(
const ::network::mojom::SCTAuditingConfigurationPtr& input) {
return input->log_expected_ingestion_delay;
}
static const decltype(::network::mojom::SCTAuditingConfiguration::log_max_ingestion_random_delay)& log_max_ingestion_random_delay(
const ::network::mojom::SCTAuditingConfigurationPtr& input) {
return input->log_max_ingestion_random_delay;
}
static const decltype(::network::mojom::SCTAuditingConfiguration::report_uri)& report_uri(
const ::network::mojom::SCTAuditingConfigurationPtr& input) {
return input->report_uri;
}
static const decltype(::network::mojom::SCTAuditingConfiguration::hashdance_lookup_uri)& hashdance_lookup_uri(
const ::network::mojom::SCTAuditingConfigurationPtr& input) {
return input->hashdance_lookup_uri;
}
static const decltype(::network::mojom::SCTAuditingConfiguration::traffic_annotation)& traffic_annotation(
const ::network::mojom::SCTAuditingConfigurationPtr& input) {
return input->traffic_annotation;
}
static const decltype(::network::mojom::SCTAuditingConfiguration::hashdance_traffic_annotation)& hashdance_traffic_annotation(
const ::network::mojom::SCTAuditingConfigurationPtr& input) {
return input->hashdance_traffic_annotation;
}
static bool Read(::network::mojom::SCTAuditingConfiguration::DataView input, ::network::mojom::SCTAuditingConfigurationPtr* output);
};
} // namespace mojo
#endif // SERVICES_NETWORK_PUBLIC_MOJOM_NETWORK_SERVICE_MOJOM_H_
/* Metadata comment
eyJ0eXBlIjogImt5dGhlMCIsICJtZXRhIjogW3sidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
ZWdpbiI6IDQxNTEsICJlbmQiOiA0MTY1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlIn0s
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgImJlZ2luIjogOTk2NiwgImVuZCI6IDk5NzUsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAi
bW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9j
aHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1Nl
cnZpY2UuU2V0UGFyYW1zIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTAwOTMsICJlbmQiOiAxMDEwNCwgInZu
YW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0
d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TdGFydE5ldExvZyJ9LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEw
MzEwLCAiZW5kIjogMTAzMjcsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
aW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQXR0YWNoTmV0
TG9nUHJveHkifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMDU2MiwgImVuZCI6IDEwNTc4LCAidm5hbWUiOiB7
Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1v
am9tLk5ldHdvcmtTZXJ2aWNlLlNldFNTTEtleUxvZ0ZpbGUifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMDY5
MiwgImVuZCI6IDEwNzEyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNyZWF0ZU5ldHdv
cmtDb250ZXh0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTA5MjksICJlbmQiOiAxMDk1NCwgInZuYW1lIjog
eyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5t
b2pvbS5OZXR3b3JrU2VydmljZS5Db25maWd1cmVTdHViSG9zdFJlc29sdmVyIn0sICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJl
Z2luIjogMTEyMDMsICJlbmQiOiAxMTIxNCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVt
L3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5E
aXNhYmxlUXVpYyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDExMzA0LCAiZW5kIjogMTEzMTcsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuU2V0VXBIdHRwQXV0aCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDExNDYz
LCAiZW5kIjogMTE0ODUsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjog
ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4i
LCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuQ29uZmlndXJlSHR0
cEF1dGhQcmVmcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDExNjMwLCAiZW5kIjogMTE2NDksICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuU2V0UmF3SGVhZGVyc0FjY2VzcyJ9LCAiZWRnZSI6ICIlL2t5
dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6
IDExODE3LCAiZW5kIjogMTE4NDcsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMv
L21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0TWF4
Q29ubmVjdGlvbnNQZXJQcm94eUNoYWluIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTE5NzAsICJlbmQiOiAx
MTk5MywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5HZXROZXR3b3JrQ2hhbmdlTWFuYWdl
ciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJiZWdpbiI6IDEyMTg5LCAiZW5kIjogMTIyMjIsICJ2bmFtZSI6IHsibGFuZ3Vh
Z2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNl
YXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0
d29ya1NlcnZpY2UuR2V0TmV0d29ya1F1YWxpdHlFc3RpbWF0b3JNYW5hZ2VyIn0sICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJl
Z2luIjogMTI0MDYsICJlbmQiOiAxMjQzMSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVt
L3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5H
ZXREbnNDb25maWdDaGFuZ2VNYW5hZ2VyIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTI3MTYsICJlbmQiOiAx
MjczMCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5HZXROZXR3b3JrTGlzdCJ9LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJiZWdpbiI6IDEyODc0LCAiZW5kIjogMTI4OTMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZp
Y2UuT25UcnVzdFN0b3JlQ2hhbmdlZCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
In0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEyOTk0LCAiZW5kIjogMTMw
MTgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJl
IjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuT25DbGllbnRDZXJ0U3RvcmVDaGFuZ2Vk
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogMTMxMTEsICJlbmQiOiAxMzEyNywgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3
b3JrU2VydmljZS5TZXRFbmNyeXB0aW9uS2V5In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTMyNTMsICJlbmQi
OiAxMzI2OSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5Pbk1lbW9yeVByZXNzdXJlIn0s
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgImJlZ2luIjogMTM0NTMsICJlbmQiOiAxMzQ4NywgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3Jr
U2VydmljZS5PblBlZXJUb1BlZXJDb25uZWN0aW9uc0NvdW50Q2hhbmdlIn0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogMTM2ODAsICJlbmQiOiAxMzcwNywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRU
cnVzdFRva2VuS2V5Q29tbWl0bWVudHMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
cyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMzg4NSwgImVuZCI6IDEz
OTA2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVy
ZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNsZWFyU0NUQXVkaXRpbmdDYWNoZSJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDE0MDAzLCAiZW5kIjogMTQwMjMsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29y
a1NlcnZpY2UuQ29uZmlndXJlU0NUQXVkaXRpbmcifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNDIxOSwgImVu
ZCI6IDE0MjM0LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNp
Z25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZUN0TG9nTGlzdCJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDE0NDkzLCAiZW5kIjogMTQ1MTcsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29y
a1NlcnZpY2UuVXBkYXRlQ3RLbm93blBvcHVsYXJTQ1RzIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTQ3ODIs
ICJlbmQiOiAxNDgwNSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRDdEVuZm9yY2Vt
ZW50RW5hYmxlZCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE0OTUzLCAiZW5kIjogMTQ5NzAsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2UuVXBkYXRlS2V5UGluc0xpc3QifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAx
NTEzNywgImVuZCI6IDE1MTY0LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9t
YWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkJpbmRUZXN0
SW50ZXJmYWNlRm9yVGVzdGluZyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0s
IHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE1MzI4LCAiZW5kIjogMTUzNDUs
ICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2ds
ZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjog
Im5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0Rmlyc3RQYXJ0eVNldHMifSwgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
YmVnaW4iOiAxNTQ3OSwgImVuZCI6IDE1NTA0LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9t
IiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21p
dW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNl
LlNldEV4cGxpY2l0bHlBbGxvd2VkUG9ydHMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNTYzNywgImVuZCI6
IDE1NjU5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZU1hc2tlZERvbWFpbkxp
c3QifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAiYmVnaW4iOiAxNTkzNCwgImVuZCI6IDE1OTQ2LCAidm5hbWUiOiB7Imxhbmd1
YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5l
dHdvcmtTZXJ2aWNlLlBhcnNlSGVhZGVycyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE2MTUxLCAiZW5kIjog
MTYxNzEsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0
dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuRW5hYmxlRGF0YVVzZVVwZGF0ZXMi
fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAiYmVnaW4iOiAxNjI4NiwgImVuZCI6IDE2MzEzLCAidm5hbWUiOiB7Imxhbmd1YWdl
IjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFy
Y2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdv
cmtTZXJ2aWNlLlNldElQdjZSZWFjaGFiaWxpdHlPdmVycmlkZSJ9LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE2
NDQzLCAiZW5kIjogMTY0NzAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
aW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0TmV0d29y
a0Fubm90YXRpb25Nb25pdG9yIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwg
eyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTY2NDAsICJlbmQiOiAxNjY2MSwg
InZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAi
bmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5TZXRUcGNkTWV0YWRhdGFHcmFudHMifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiAxNzAzNiwgImVuZCI6IDE3MDQ1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1v
am9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hy
b21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2
aWNlLlNldFBhcmFtcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlw
ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE3MTU2LCAiZW5kIjogMTcxNjcsICJ2bmFt
ZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj
ZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdv
cmsubW9qb20uTmV0d29ya1NlcnZpY2UuU3RhcnROZXRMb2cifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNzM2
NiwgImVuZCI6IDE3MzgzLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkF0dGFjaE5ldExv
Z1Byb3h5In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFu
Y2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTc2MTEsICJlbmQiOiAxNzYyNywgInZuYW1lIjogeyJs
YW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9j
b2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pv
bS5OZXR3b3JrU2VydmljZS5TZXRTU0xLZXlMb2dGaWxlIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTc3MzQs
ICJlbmQiOiAxNzc1NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5DcmVhdGVOZXR3b3Jr
Q29udGV4dCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJh
bmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE3OTY0LCAiZW5kIjogMTc5ODksICJ2bmFtZSI6IHsi
bGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
Y29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9q
b20uTmV0d29ya1NlcnZpY2UuQ29uZmlndXJlU3R1Ykhvc3RSZXNvbHZlciJ9LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdp
biI6IDE4MjMxLCAiZW5kIjogMTgyNDIsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9z
cmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuRGlz
YWJsZVF1aWMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxODMyNSwgImVuZCI6IDE4MzM4LCAidm5hbWUiOiB7
Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1v
am9tLk5ldHdvcmtTZXJ2aWNlLlNldFVwSHR0cEF1dGgifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxODQ3Nywg
ImVuZCI6IDE4NDk5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJj
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwg
InNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkNvbmZpZ3VyZUh0dHBB
dXRoUHJlZnMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxODYzNywgImVuZCI6IDE4NjU2LCAidm5hbWUiOiB7
Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1v
am9tLk5ldHdvcmtTZXJ2aWNlLlNldFJhd0hlYWRlcnNBY2Nlc3MifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAx
ODgxNywgImVuZCI6IDE4ODQ3LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9t
YWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldE1heENv
bm5lY3Rpb25zUGVyUHJveHlDaGFpbiJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
In0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE4OTYzLCAiZW5kIjogMTg5
ODYsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJl
IjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuR2V0TmV0d29ya0NoYW5nZU1hbmFnZXIi
fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAiYmVnaW4iOiAxOTE3NSwgImVuZCI6IDE5MjA4LCAidm5hbWUiOiB7Imxhbmd1YWdl
IjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFy
Y2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdv
cmtTZXJ2aWNlLkdldE5ldHdvcmtRdWFsaXR5RXN0aW1hdG9yTWFuYWdlciJ9LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdp
biI6IDE5Mzg1LCAiZW5kIjogMTk0MTAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9z
cmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuR2V0
RG5zQ29uZmlnQ2hhbmdlTWFuYWdlciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
In0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDE5NTY4LCAiZW5kIjogMTk1
ODIsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJl
IjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuR2V0TmV0d29ya0xpc3QifSwgImVkZ2Ui
OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
YmVnaW4iOiAxOTcxOSwgImVuZCI6IDE5NzM4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9t
IiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21p
dW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNl
Lk9uVHJ1c3RTdG9yZUNoYW5nZWQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9
LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxOTgzMiwgImVuZCI6IDE5ODU2
LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6
ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLk9uQ2xpZW50Q2VydFN0b3JlQ2hhbmdlZCJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDE5OTQyLCAiZW5kIjogMTk5NTgsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29y
a1NlcnZpY2UuU2V0RW5jcnlwdGlvbktleSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIwMDc3LCAiZW5kIjog
MjAwOTMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0
dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuT25NZW1vcnlQcmVzc3VyZSJ9LCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5l
cyIsICJiZWdpbiI6IDIwMjcwLCAiZW5kIjogMjAzMDQsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAi
bW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9j
aHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1Nl
cnZpY2UuT25QZWVyVG9QZWVyQ29ubmVjdGlvbnNDb3VudENoYW5nZSJ9LCAiZWRnZSI6ICIlL2t5
dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6
IDIwNDE1LCAiZW5kIjogMjA0NDIsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMv
L21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0VHJ1
c3RUb2tlbktleUNvbW1pdG1lbnRzIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
fSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjA2MTMsICJlbmQiOiAyMDYz
NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUi
OiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5DbGVhclNDVEF1ZGl0aW5nQ2FjaGUifSwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAiYmVnaW4iOiAyMDcyNCwgImVuZCI6IDIwNzQ0LCAidm5hbWUiOiB7Imxhbmd1YWdlIjog
Im1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gv
Y2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtT
ZXJ2aWNlLkNvbmZpZ3VyZVNDVEF1ZGl0aW5nIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjA4NzAsICJlbmQi
OiAyMDg4NSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5VcGRhdGVDdExvZ0xpc3QifSwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAiYmVnaW4iOiAyMTA2NSwgImVuZCI6IDIxMDg5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjog
Im1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gv
Y2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtT
ZXJ2aWNlLlVwZGF0ZUN0S25vd25Qb3B1bGFyU0NUcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv
Z2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIxMjc2LCAi
ZW5kIjogMjEyOTksICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAi
c2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0Q3RFbmZvcmNlbWVu
dEVuYWJsZWQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMTQ0MCwgImVuZCI6IDIxNDU3LCAidm5hbWUiOiB7
Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1v
am9tLk5ldHdvcmtTZXJ2aWNlLlVwZGF0ZUtleVBpbnNMaXN0In0sICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjE2
MTcsICJlbmQiOiAyMTY0NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5CaW5kVGVzdElu
dGVyZmFjZUZvclRlc3RpbmcifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7
InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMTgwMSwgImVuZCI6IDIxODE4LCAi
dm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJu
ZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldEZpcnN0UGFydHlTZXRzIn0sICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJl
Z2luIjogMjE5NDUsICJlbmQiOiAyMTk3MCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIs
ICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVt
L3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5T
ZXRFeHBsaWNpdGx5QWxsb3dlZFBvcnRzIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjIwOTYsICJlbmQiOiAy
MjExOCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZS5VcGRhdGVNYXNrZWREb21haW5MaXN0
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogMjIyOTIsICJlbmQiOiAyMjMwNCwgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3
b3JrU2VydmljZS5QYXJzZUhlYWRlcnMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
cyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMjUwMiwgImVuZCI6IDIy
NTIyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVy
ZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLkVuYWJsZURhdGFVc2VVcGRhdGVzIn0s
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgImJlZ2luIjogMjI2MzAsICJlbmQiOiAyMjY1NywgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3Jr
U2VydmljZS5TZXRJUHY2UmVhY2hhYmlsaXR5T3ZlcnJpZGUifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMjc4
MCwgImVuZCI6IDIyODA3LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2aWNlLlNldE5ldHdvcmtB
bm5vdGF0aW9uTW9uaXRvciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsi
dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIyOTcwLCAiZW5kIjogMjI5OTEsICJ2
bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5l
dHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2UuU2V0VHBjZE1ldGFkYXRhR3JhbnRzIn0sICJlZGdl
IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg
ImJlZ2luIjogMjQ3NTUsICJlbmQiOiAyNDc3NSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pv
bSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9t
aXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5IdHRwQXV0aFN0YXRp
Y1BhcmFtcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJh
bmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDI4NzgxLCAiZW5kIjogMjg4MDAsICJ2bmFtZSI6IHsi
bGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
Y29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9q
b20uSHR0cEF1dGhTdGF0aWNQYXJhbXMuZ3NzYXBpX2xpYnJhcnlfbmFtZSJ9LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdp
biI6IDI5ODYxLCAiZW5kIjogMjk4ODAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9z
cmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uRW52aXJvbm1lbnRWYXJpYWJs
ZSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJiZWdpbiI6IDMzODUzLCAiZW5kIjogMzM4NTcsICJ2bmFtZSI6IHsibGFuZ3Vh
Z2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNl
YXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uRW52
aXJvbm1lbnRWYXJpYWJsZS5uYW1lIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
fSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMzM5MzYsICJlbmQiOiAzMzk0
MSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUi
OiAibmV0d29yay5tb2pvbS5FbnZpcm9ubWVudFZhcmlhYmxlLnZhbHVlIn0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogMzUwMDQsICJlbmQiOiAzNTAyNSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJh
bXMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAiYmVnaW4iOiAzOTQ4MiwgImVuZCI6IDM5NDk3LCAidm5hbWUiOiB7Imxhbmd1
YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0
dHBBdXRoRHluYW1pY1BhcmFtcy5hbGxvd2VkX3NjaGVtZXMifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAzOTYy
MSwgImVuZCI6IDM5NjU2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoRHluYW1pY1BhcmFtcy5wYXR0
ZXJuc19hbGxvd2VkX3RvX3VzZV9hbGxfc2NoZW1lcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv
Z2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDM5NzQ4LCAi
ZW5kIjogMzk3NjQsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAi
c2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uSHR0cEF1dGhEeW5hbWljUGFyYW1zLnNlcnZlcl9h
bGxvd2xpc3QifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAi
YW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAzOTg1OCwgImVuZCI6IDM5ODc2LCAidm5hbWUiOiB7
Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1v
am9tLkh0dHBBdXRoRHluYW1pY1BhcmFtcy5kZWxlZ2F0ZV9hbGxvd2xpc3QifSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVn
aW4iOiAzOTk2NywgImVuZCI6IDM5OTg5LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLkh0dHBBdXRoRHluYW1pY1Bh
cmFtcy5kZWxlZ2F0ZV9ieV9rZGNfcG9saWN5In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDAwODgsICJlbmQi
OiA0MDExOCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWdu
YXR1cmUiOiAibmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMubmVnb3RpYXRlX2Rp
c2FibGVfY25hbWVfbG9va3VwIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwg
eyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDAyMDgsICJlbmQiOiA0MDIyOSwg
InZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
c291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAi
bmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuZW5hYmxlX25lZ290aWF0ZV9wb3J0
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogNDAzMTMsICJlbmQiOiA0MDMyOCwgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5IdHRw
QXV0aER5bmFtaWNQYXJhbXMubnRsbV92Ml9lbmFibGVkIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDA0MzQs
ICJlbmQiOiA0MDQ2NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuYW5kcm9p
ZF9uZWdvdGlhdGVfYWNjb3VudF90eXBlIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDA1NTgsICJlbmQiOiA0
MDU4MywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5IdHRwQXV0aER5bmFtaWNQYXJhbXMuYWxsb3dfZ3NzYXBpX2xp
YnJhcnlfbG9hZCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDQwNjc1LCAiZW5kIjogNDA2OTgsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uSHR0cEF1dGhEeW5hbWljUGFyYW1zLmJhc2ljX292ZXJfaHR0cF9lbmFibGVkIn0sICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgImJlZ2luIjogNDE3NjQsICJlbmQiOiA0MTc4NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2Vy
dmljZVBhcmFtcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDQ2MTQ5LCAiZW5kIjogNDYxNzIsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uTmV0d29ya1NlcnZpY2VQYXJhbXMuaW5pdGlhbF9jb25uZWN0aW9uX3R5cGUifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiA0NjI5NywgImVuZCI6IDQ2MzIzLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1v
am9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hy
b21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLk5ldHdvcmtTZXJ2
aWNlUGFyYW1zLmluaXRpYWxfY29ubmVjdGlvbl9zdWJ0eXBlIn0sICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDY0
MzMsICJlbmQiOiA0NjQ0NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZVBhcmFtcy5lbnZp
cm9ubWVudCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJh
bmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDQ2NTk2LCAiZW5kIjogNDY2MTIsICJ2bmFtZSI6IHsi
bGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
Y29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9q
b20uTmV0d29ya1NlcnZpY2VQYXJhbXMuZGVmYXVsdF9vYnNlcnZlciJ9LCAiZWRnZSI6ICIlL2t5
dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6
IDQ2NzA0LCAiZW5kIjogNDY3MjgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMv
L21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsubW9qb20uTmV0d29ya1NlcnZpY2VQYXJhbXMu
Zmlyc3RfcGFydHlfc2V0c19lbmFibGVkIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNDY4NjksICJlbmQiOiA0
Njg4OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAibmV0d29yay5tb2pvbS5OZXR3b3JrU2VydmljZVBhcmFtcy5zeXN0ZW1fZG5zX3Jlc29s
dmVyIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgImJlZ2luIjogNDcwMzIsICJlbmQiOiA0NzA2NSwgInZuYW1lIjogeyJsYW5n
dWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rl
c2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5O
ZXR3b3JrU2VydmljZVBhcmFtcy5pcF9wcm90ZWN0aW9uX3Byb3h5X2J5cGFzc19wb2xpY3kifSwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAiYmVnaW4iOiA0ODEzMCwgImVuZCI6IDQ4MTU0LCAidm5hbWUiOiB7Imxhbmd1YWdlIjog
Im1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gv
Y2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1ZGl0
aW5nQ29uZmlndXJhdGlvbiJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsi
dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDUyNTM2LCAiZW5kIjogNTI1NDksICJ2
bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5l
dHdvcmsubW9qb20uU0NUQXVkaXRpbmdDb25maWd1cmF0aW9uLnNhbXBsaW5nX3JhdGUifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiA1MjY2MiwgImVuZCI6IDUyNjkwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1v
am9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hy
b21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJuZXR3b3JrLm1vam9tLlNDVEF1ZGl0aW5n
Q29uZmlndXJhdGlvbi5sb2dfZXhwZWN0ZWRfaW5nZXN0aW9uX2RlbGF5In0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogNTI4MDUsICJlbmQiOiA1MjgzNSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5TQ1RBdWRpdGluZ0NvbmZpZ3Vy
YXRpb24ubG9nX21heF9pbmdlc3Rpb25fcmFuZG9tX2RlbGF5In0sICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNTI5
MTksICJlbmQiOiA1MjkyOSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5TQ1RBdWRpdGluZ0NvbmZpZ3VyYXRpb24u
cmVwb3J0X3VyaSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDUzMDIzLCAiZW5kIjogNTMwNDMsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm5ldHdvcmsu
bW9qb20uU0NUQXVkaXRpbmdDb25maWd1cmF0aW9uLmhhc2hkYW5jZV9sb29rdXBfdXJpIn0sICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgImJlZ2luIjogNTMxNzAsICJlbmQiOiA1MzE4OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5TQ1RBdWRpdGlu
Z0NvbmZpZ3VyYXRpb24udHJhZmZpY19hbm5vdGF0aW9uIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNTMzMjUs
ICJlbmQiOiA1MzM1MywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAibmV0d29yay5tb2pvbS5TQ1RBdWRpdGluZ0NvbmZpZ3VyYXRpb24uaGFz
aGRhbmNlX3RyYWZmaWNfYW5ub3RhdGlvbiJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIn1dfQ==
*/