blob: 2933c646e36e2b4ebbcb4a87a9291b686384f8e0 [file] [log] [blame]
// gpu/ipc/common/traits_test_service.mojom-blink.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 GPU_IPC_COMMON_TRAITS_TEST_SERVICE_MOJOM_BLINK_H_
#define GPU_IPC_COMMON_TRAITS_TEST_SERVICE_MOJOM_BLINK_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 "gpu/ipc/common/traits_test_service.mojom-features.h"
#include "gpu/ipc/common/traits_test_service.mojom-shared.h"
#include "gpu/ipc/common/traits_test_service.mojom-blink-forward.h"
#include "gpu/ipc/common/gpu_info.mojom-blink-forward.h"
#include "gpu/ipc/common/gpu_preferences.mojom-blink-forward.h"
#include "gpu/ipc/common/mailbox.mojom-blink.h"
#include "gpu/ipc/common/mailbox_holder.mojom-blink.h"
#include "gpu/ipc/common/sync_token.mojom-blink.h"
#include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h"
#include "mojo/public/cpp/bindings/lib/wtf_hash_util.h"
#include "third_party/blink/renderer/platform/wtf/hash_functions.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#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 gpu::mojom::blink {
class TraitsTestServiceProxy;
template <typename ImplRefTraits>
class TraitsTestServiceStub;
class TraitsTestServiceRequestValidator;
class TraitsTestServiceResponseValidator;
// @generated_from: gpu.mojom.TraitsTestService
class TraitsTestService
: public TraitsTestServiceInterfaceBase {
public:
using IPCStableHashFunction = uint32_t(*)();
static const char Name_[];
static IPCStableHashFunction MessageToMethodInfo_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static inline constexpr uint32_t kSyncMethodOrdinals[] = {
0,
1,
2,
3,
4,
5,
6,
7,
8
};
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = TraitsTestServiceInterfaceBase;
using Proxy_ = TraitsTestServiceProxy;
template <typename ImplRefTraits>
using Stub_ = TraitsTestServiceStub<ImplRefTraits>;
using RequestValidator_ = TraitsTestServiceRequestValidator;
using ResponseValidator_ = TraitsTestServiceResponseValidator;
enum MethodMinVersions : uint32_t {
kEchoGpuDeviceMinVersion = 0,
kEchoGpuInfoMinVersion = 0,
kEchoMailboxMinVersion = 0,
kEchoMailboxHolderMinVersion = 0,
kEchoSyncTokenMinVersion = 0,
kEchoVideoDecodeAcceleratorSupportedProfileMinVersion = 0,
kEchoVideoDecodeAcceleratorCapabilitiesMinVersion = 0,
kEchoVideoEncodeAcceleratorSupportedProfileMinVersion = 0,
kEchoGpuPreferencesMinVersion = 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 EchoGpuDevice_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoGpuInfo_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoMailbox_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoMailboxHolder_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoSyncToken_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoVideoDecodeAcceleratorSupportedProfile_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoVideoDecodeAcceleratorCapabilities_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoVideoEncodeAcceleratorSupportedProfile_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct EchoGpuPreferences_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~TraitsTestService() = default;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuDevice
virtual bool EchoGpuDevice(::gpu::mojom::blink::GpuDevicePtr g, ::gpu::mojom::blink::GpuDevicePtr* out_pass);
using EchoGpuDeviceCallback = base::OnceCallback<void(::gpu::mojom::blink::GpuDevicePtr)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuDevice
virtual void EchoGpuDevice(::gpu::mojom::blink::GpuDevicePtr g, EchoGpuDeviceCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuInfo
virtual bool EchoGpuInfo(::gpu::mojom::blink::GpuInfoPtr g, ::gpu::mojom::blink::GpuInfoPtr* out_pass);
using EchoGpuInfoCallback = base::OnceCallback<void(::gpu::mojom::blink::GpuInfoPtr)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuInfo
virtual void EchoGpuInfo(::gpu::mojom::blink::GpuInfoPtr g, EchoGpuInfoCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoMailbox
virtual bool EchoMailbox(const ::gpu::Mailbox& m, ::gpu::Mailbox* out_pass);
using EchoMailboxCallback = base::OnceCallback<void(const ::gpu::Mailbox&)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoMailbox
virtual void EchoMailbox(const ::gpu::Mailbox& m, EchoMailboxCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoMailboxHolder
virtual bool EchoMailboxHolder(const ::gpu::MailboxHolder& m, ::gpu::MailboxHolder* out_pass);
using EchoMailboxHolderCallback = base::OnceCallback<void(const ::gpu::MailboxHolder&)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoMailboxHolder
virtual void EchoMailboxHolder(const ::gpu::MailboxHolder& m, EchoMailboxHolderCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoSyncToken
virtual bool EchoSyncToken(const ::gpu::SyncToken& s, ::gpu::SyncToken* out_pass);
using EchoSyncTokenCallback = base::OnceCallback<void(const ::gpu::SyncToken&)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoSyncToken
virtual void EchoSyncToken(const ::gpu::SyncToken& s, EchoSyncTokenCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorSupportedProfile
virtual bool EchoVideoDecodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr v, ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr* out_pass);
using EchoVideoDecodeAcceleratorSupportedProfileCallback = base::OnceCallback<void(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorSupportedProfile
virtual void EchoVideoDecodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr v, EchoVideoDecodeAcceleratorSupportedProfileCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorCapabilities
virtual bool EchoVideoDecodeAcceleratorCapabilities(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr v, ::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr* out_pass);
using EchoVideoDecodeAcceleratorCapabilitiesCallback = base::OnceCallback<void(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorCapabilities
virtual void EchoVideoDecodeAcceleratorCapabilities(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr v, EchoVideoDecodeAcceleratorCapabilitiesCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoEncodeAcceleratorSupportedProfile
virtual bool EchoVideoEncodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr v, ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr* out_pass);
using EchoVideoEncodeAcceleratorSupportedProfileCallback = base::OnceCallback<void(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoEncodeAcceleratorSupportedProfile
virtual void EchoVideoEncodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr v, EchoVideoEncodeAcceleratorSupportedProfileCallback callback) = 0;
// Sync method. This signature is used by the client side; the service side
// should implement the signature with callback below.
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuPreferences
virtual bool EchoGpuPreferences(::gpu::mojom::blink::GpuPreferencesPtr prefs, ::gpu::mojom::blink::GpuPreferencesPtr* out_pass);
using EchoGpuPreferencesCallback = base::OnceCallback<void(::gpu::mojom::blink::GpuPreferencesPtr)>;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuPreferences
virtual void EchoGpuPreferences(::gpu::mojom::blink::GpuPreferencesPtr prefs, EchoGpuPreferencesCallback callback) = 0;
};
// @generated_from: gpu.mojom.TraitsTestService
class TraitsTestServiceProxy
: public TraitsTestService {
public:
using InterfaceType = TraitsTestService;
explicit TraitsTestServiceProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuDevice
bool EchoGpuDevice(::gpu::mojom::blink::GpuDevicePtr g, ::gpu::mojom::blink::GpuDevicePtr* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuDevice
void EchoGpuDevice(::gpu::mojom::blink::GpuDevicePtr g, EchoGpuDeviceCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuInfo
bool EchoGpuInfo(::gpu::mojom::blink::GpuInfoPtr g, ::gpu::mojom::blink::GpuInfoPtr* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuInfo
void EchoGpuInfo(::gpu::mojom::blink::GpuInfoPtr g, EchoGpuInfoCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoMailbox
bool EchoMailbox(const ::gpu::Mailbox& m, ::gpu::Mailbox* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoMailbox
void EchoMailbox(const ::gpu::Mailbox& m, EchoMailboxCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoMailboxHolder
bool EchoMailboxHolder(const ::gpu::MailboxHolder& m, ::gpu::MailboxHolder* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoMailboxHolder
void EchoMailboxHolder(const ::gpu::MailboxHolder& m, EchoMailboxHolderCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoSyncToken
bool EchoSyncToken(const ::gpu::SyncToken& s, ::gpu::SyncToken* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoSyncToken
void EchoSyncToken(const ::gpu::SyncToken& s, EchoSyncTokenCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorSupportedProfile
bool EchoVideoDecodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr v, ::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorSupportedProfile
void EchoVideoDecodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoDecodeAcceleratorSupportedProfilePtr v, EchoVideoDecodeAcceleratorSupportedProfileCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorCapabilities
bool EchoVideoDecodeAcceleratorCapabilities(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr v, ::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoDecodeAcceleratorCapabilities
void EchoVideoDecodeAcceleratorCapabilities(::gpu::mojom::blink::VideoDecodeAcceleratorCapabilitiesPtr v, EchoVideoDecodeAcceleratorCapabilitiesCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoEncodeAcceleratorSupportedProfile
bool EchoVideoEncodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr v, ::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoVideoEncodeAcceleratorSupportedProfile
void EchoVideoEncodeAcceleratorSupportedProfile(::gpu::mojom::blink::VideoEncodeAcceleratorSupportedProfilePtr v, EchoVideoEncodeAcceleratorSupportedProfileCallback callback) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuPreferences
bool EchoGpuPreferences(::gpu::mojom::blink::GpuPreferencesPtr prefs, ::gpu::mojom::blink::GpuPreferencesPtr* out_pass) final;
// @generated_from: gpu.mojom.TraitsTestService.EchoGpuPreferences
void EchoGpuPreferences(::gpu::mojom::blink::GpuPreferencesPtr prefs, EchoGpuPreferencesCallback callback) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class TraitsTestServiceStubDispatch {
public:
static bool Accept(TraitsTestService* impl, mojo::Message* message);
static bool AcceptWithResponder(
TraitsTestService* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<TraitsTestService>>
class TraitsTestServiceStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
TraitsTestServiceStub() = default;
~TraitsTestServiceStub() 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 TraitsTestServiceStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return TraitsTestServiceStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class TraitsTestServiceRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class TraitsTestServiceResponseValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
} // gpu::mojom::blink
namespace mojo {
} // namespace mojo
#endif // GPU_IPC_COMMON_TRAITS_TEST_SERVICE_MOJOM_BLINK_H_
/* Metadata comment
eyJ0eXBlIjogImt5dGhlMCIsICJtZXRhIjogW3sidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
ZWdpbiI6IDIxODQsICJlbmQiOiAyMjAxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2UifSwg
ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
ZXMiLCAiYmVnaW4iOiA0NzcwLCAiZW5kIjogNDc4MywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2
aWNlLkVjaG9HcHVEZXZpY2UifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7
InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1MDQxLCAiZW5kIjogNTA1NCwgInZu
YW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1
Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9HcHVEZXZpY2UifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1
MzQzLCAiZW5kIjogNTM1NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9HcHVJbmZv
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogNTYwMiwgImVuZCI6IDU2MTMsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5UcmFpdHNUZXN0
U2VydmljZS5FY2hvR3B1SW5mbyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0s
IHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDU4OTgsICJlbmQiOiA1OTA5LCAi
dm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJn
cHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2UuRWNob01haWxib3gifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA2
MTIwLCAiZW5kIjogNjEzMSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9NYWlsYm94
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogNjQxMiwgImVuZCI6IDY0MjksICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5UcmFpdHNUZXN0
U2VydmljZS5FY2hvTWFpbGJveEhvbGRlciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDY2NzAsICJlbmQiOiA2
Njg3LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5n
b29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVy
ZSI6ICJncHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2UuRWNob01haWxib3hIb2xkZXIifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiA2OTc2LCAiZW5kIjogNjk4OSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pv
bSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9t
aXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNl
LkVjaG9TeW5jVG9rZW4ifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5
cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA3MjEwLCAiZW5kIjogNzIyMywgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1v
am9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9TeW5jVG9rZW4ifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA3NTMz
LCAiZW5kIjogNzU3NSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9WaWRlb0RlY29k
ZUFjY2VsZXJhdG9yU3VwcG9ydGVkUHJvZmlsZSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2Vu
ZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDc5NzgsICJlbmQi
OiA4MDIwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJncHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2UuRWNob1ZpZGVvRGVjb2RlQWNjZWxl
cmF0b3JTdXBwb3J0ZWRQcm9maWxlIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
fSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogODM5NCwgImVuZCI6IDg0MzIs
ICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2ds
ZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjog
ImdwdS5tb2pvbS5UcmFpdHNUZXN0U2VydmljZS5FY2hvVmlkZW9EZWNvZGVBY2NlbGVyYXRvckNh
cGFiaWxpdGllcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDg4MTUsICJlbmQiOiA4ODUzLCAidm5hbWUiOiB7
Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20u
VHJhaXRzVGVzdFNlcnZpY2UuRWNob1ZpZGVvRGVjb2RlQWNjZWxlcmF0b3JDYXBhYmlsaXRpZXMi
fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAiYmVnaW4iOiA5MjIzLCAiZW5kIjogOTI2NSwgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RT
ZXJ2aWNlLkVjaG9WaWRlb0VuY29kZUFjY2VsZXJhdG9yU3VwcG9ydGVkUHJvZmlsZSJ9LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJiZWdpbiI6IDk2NjgsICJlbmQiOiA5NzEwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9t
IiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21p
dW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2Uu
RWNob1ZpZGVvRW5jb2RlQWNjZWxlcmF0b3JTdXBwb3J0ZWRQcm9maWxlIn0sICJlZGdlIjogIiUv
a3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2lu
IjogMTAwNjQsICJlbmQiOiAxMDA4MiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9H
cHVQcmVmZXJlbmNlcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlw
ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEwMzY5LCAiZW5kIjogMTAzODcsICJ2bmFt
ZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj
ZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImdwdS5t
b2pvbS5UcmFpdHNUZXN0U2VydmljZS5FY2hvR3B1UHJlZmVyZW5jZXMifSwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4i
OiAxMDc5OSwgImVuZCI6IDEwODEyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNv
cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3Jj
Ly9tYWluIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2UuRWNob0dw
dURldmljZSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJh
bmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEwOTc0LCAiZW5kIjogMTA5ODcsICJ2bmFtZSI6IHsi
bGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
Y29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5U
cmFpdHNUZXN0U2VydmljZS5FY2hvR3B1RGV2aWNlIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
ZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTExMzQsICJl
bmQiOiAxMTE0NSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJz
aWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9HcHVJbmZvIn0sICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgImJlZ2luIjogMTEzMDEsICJlbmQiOiAxMTMxMiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2
aWNlLkVjaG9HcHVJbmZvIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTE0NTUsICJlbmQiOiAxMTQ2NiwgInZu
YW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1
Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9NYWlsYm94In0sICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTE1
OTUsICJlbmQiOiAxMTYwNiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9NYWlsYm94
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogMTE3NDUsICJlbmQiOiAxMTc2MiwgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rl
c3RTZXJ2aWNlLkVjaG9NYWlsYm94SG9sZGVyIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTE5MDksICJlbmQi
OiAxMTkyNiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWdu
YXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9NYWlsYm94SG9sZGVyIn0s
ICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZp
bmVzIiwgImJlZ2luIjogMTIwNzMsICJlbmQiOiAxMjA4NiwgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RT
ZXJ2aWNlLkVjaG9TeW5jVG9rZW4ifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9
LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMjIyMSwgImVuZCI6IDEyMjM0
LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6
ICJncHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2UuRWNob1N5bmNUb2tlbiJ9LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdp
biI6IDEyNDAyLCAiZW5kIjogMTI0NDQsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9z
cmMvL21haW4iLCAic2lnbmF0dXJlIjogImdwdS5tb2pvbS5UcmFpdHNUZXN0U2VydmljZS5FY2hv
VmlkZW9EZWNvZGVBY2NlbGVyYXRvclN1cHBvcnRlZFByb2ZpbGUifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAx
MjY5MywgImVuZCI6IDEyNzM1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9t
YWluIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uVHJhaXRzVGVzdFNlcnZpY2UuRWNob1ZpZGVv
RGVjb2RlQWNjZWxlcmF0b3JTdXBwb3J0ZWRQcm9maWxlIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTI5Njcs
ICJlbmQiOiAxMzAwNSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9WaWRlb0RlY29k
ZUFjY2VsZXJhdG9yQ2FwYWJpbGl0aWVzIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTMyNDIsICJlbmQiOiAx
MzI4MCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1
cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9WaWRlb0RlY29kZUFjY2VsZXJh
dG9yQ2FwYWJpbGl0aWVzIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTM1MDgsICJlbmQiOiAxMzU1MCwgInZu
YW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZ3B1
Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9WaWRlb0VuY29kZUFjY2VsZXJhdG9yU3VwcG9y
dGVkUHJvZmlsZSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEzNzk5LCAiZW5kIjogMTM4NDEsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImdwdS5tb2pv
bS5UcmFpdHNUZXN0U2VydmljZS5FY2hvVmlkZW9FbmNvZGVBY2NlbGVyYXRvclN1cHBvcnRlZFBy
b2ZpbGUifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5j
aG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNDA1MywgImVuZCI6IDE0MDcxLCAidm5hbWUiOiB7Imxh
bmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nv
ZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJncHUubW9qb20uVHJh
aXRzVGVzdFNlcnZpY2UuRWNob0dwdVByZWZlcmVuY2VzIn0sICJlZGdlIjogIiUva3l0aGUvZWRn
ZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTQyNTIs
ICJlbmQiOiAxNDI3MCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
ICJzaWduYXR1cmUiOiAiZ3B1Lm1vam9tLlRyYWl0c1Rlc3RTZXJ2aWNlLkVjaG9HcHVQcmVmZXJl
bmNlcyJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn1dfQ==
*/