| // services/media_session/public/mojom/audio_focus.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit |
| |
| // Copyright 2016 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_MEDIA_SESSION_PUBLIC_MOJOM_AUDIO_FOCUS_MOJOM_SHARED_H_ |
| #define SERVICES_MEDIA_SESSION_PUBLIC_MOJOM_AUDIO_FOCUS_MOJOM_SHARED_H_ |
| |
| #include <stdint.h> |
| |
| #include <functional> |
| #include <iosfwd> |
| #include <type_traits> |
| #include <utility> |
| #include "mojo/public/cpp/bindings/array_data_view.h" |
| #include "mojo/public/cpp/bindings/enum_traits.h" |
| #include "mojo/public/cpp/bindings/interface_data_view.h" |
| #include "mojo/public/cpp/bindings/lib/bindings_internal.h" |
| #include "mojo/public/cpp/bindings/lib/serialization.h" |
| #include "mojo/public/cpp/bindings/map_data_view.h" |
| #include "mojo/public/cpp/bindings/string_data_view.h" |
| |
| #include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h" |
| |
| #include "services/media_session/public/mojom/audio_focus.mojom-shared-internal.h" |
| #include "mojo/public/mojom/base/unguessable_token.mojom-shared.h" |
| #include "services/media_session/public/mojom/media_session.mojom-shared.h" |
| #include "mojo/public/cpp/bindings/lib/interface_serialization.h" |
| #include "mojo/public/cpp/system/data_pipe.h" |
| |
| |
| |
| #ifdef KYTHE_IS_RUNNING |
| #pragma kythe_inline_metadata "Metadata comment" |
| #endif |
| |
| |
| namespace media_session::mojom { |
| class AudioFocusRequestStateDataView; |
| |
| |
| |
| } // media_session::mojom |
| |
| namespace mojo { |
| namespace internal { |
| |
| template <> |
| struct MojomTypeTraits<::media_session::mojom::AudioFocusRequestStateDataView> { |
| using Data = ::media_session::mojom::internal::AudioFocusRequestState_Data; |
| using DataAsArrayElement = Pointer<Data>; |
| static constexpr MojomTypeCategory category = MojomTypeCategory::kStruct; |
| }; |
| |
| } // namespace internal |
| } // namespace mojo |
| |
| |
| namespace media_session::mojom { |
| |
| |
| // @generated_from: media_session.mojom.EnforcementMode |
| enum class EnforcementMode : int32_t { |
| |
| // @generated_from: media_session.mojom.EnforcementMode.kDefault |
| kDefault = 0, |
| |
| // @generated_from: media_session.mojom.EnforcementMode.kNone |
| kNone = 1, |
| |
| // @generated_from: media_session.mojom.EnforcementMode.kSingleGroup |
| kSingleGroup = 2, |
| |
| // @generated_from: media_session.mojom.EnforcementMode.kSingleSession |
| kSingleSession = 3, |
| kMinValue = 0, |
| kMaxValue = 3, |
| }; |
| |
| std::ostream& operator<<(std::ostream& os, EnforcementMode value); |
| inline bool IsKnownEnumValue(EnforcementMode value) { |
| return internal::EnforcementMode_Data::IsKnownValue( |
| static_cast<int32_t>(value)); |
| } |
| |
| |
| // @generated_from: media_session.mojom.AudioFocusType |
| enum class AudioFocusType : int32_t { |
| |
| // @generated_from: media_session.mojom.AudioFocusType.kGain |
| kGain = 0, |
| |
| // @generated_from: media_session.mojom.AudioFocusType.kGainTransientMayDuck |
| kGainTransientMayDuck = 1, |
| |
| // @generated_from: media_session.mojom.AudioFocusType.kGainTransient |
| kGainTransient = 2, |
| |
| // @generated_from: media_session.mojom.AudioFocusType.kAmbient |
| kAmbient = 3, |
| kMinValue = 0, |
| kMaxValue = 3, |
| }; |
| |
| std::ostream& operator<<(std::ostream& os, AudioFocusType value); |
| inline bool IsKnownEnumValue(AudioFocusType value) { |
| return internal::AudioFocusType_Data::IsKnownValue( |
| static_cast<int32_t>(value)); |
| } |
| // Interface base classes. They are used for type safety check. |
| class AudioFocusObserverInterfaceBase {}; |
| |
| using AudioFocusObserverPtrDataView = |
| mojo::InterfacePtrDataView<AudioFocusObserverInterfaceBase>; |
| using AudioFocusObserverRequestDataView = |
| mojo::InterfaceRequestDataView<AudioFocusObserverInterfaceBase>; |
| using AudioFocusObserverAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AudioFocusObserverInterfaceBase>; |
| using AudioFocusObserverAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AudioFocusObserverInterfaceBase>; |
| class AudioFocusRequestClientInterfaceBase {}; |
| |
| using AudioFocusRequestClientPtrDataView = |
| mojo::InterfacePtrDataView<AudioFocusRequestClientInterfaceBase>; |
| using AudioFocusRequestClientRequestDataView = |
| mojo::InterfaceRequestDataView<AudioFocusRequestClientInterfaceBase>; |
| using AudioFocusRequestClientAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AudioFocusRequestClientInterfaceBase>; |
| using AudioFocusRequestClientAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AudioFocusRequestClientInterfaceBase>; |
| class AudioFocusManagerInterfaceBase {}; |
| |
| using AudioFocusManagerPtrDataView = |
| mojo::InterfacePtrDataView<AudioFocusManagerInterfaceBase>; |
| using AudioFocusManagerRequestDataView = |
| mojo::InterfaceRequestDataView<AudioFocusManagerInterfaceBase>; |
| using AudioFocusManagerAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AudioFocusManagerInterfaceBase>; |
| using AudioFocusManagerAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AudioFocusManagerInterfaceBase>; |
| class AudioFocusManagerDebugInterfaceBase {}; |
| |
| using AudioFocusManagerDebugPtrDataView = |
| mojo::InterfacePtrDataView<AudioFocusManagerDebugInterfaceBase>; |
| using AudioFocusManagerDebugRequestDataView = |
| mojo::InterfaceRequestDataView<AudioFocusManagerDebugInterfaceBase>; |
| using AudioFocusManagerDebugAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AudioFocusManagerDebugInterfaceBase>; |
| using AudioFocusManagerDebugAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AudioFocusManagerDebugInterfaceBase>; |
| |
| |
| class AudioFocusRequestStateDataView { |
| public: |
| AudioFocusRequestStateDataView() = default; |
| |
| AudioFocusRequestStateDataView( |
| internal::AudioFocusRequestState_Data* data, |
| mojo::Message* message) |
| : data_(data), message_(message) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetSessionInfoDataView( |
| ::media_session::mojom::MediaSessionInfoDataView* output); |
| |
| template <typename UserType> |
| [[nodiscard]] bool ReadSessionInfo(UserType* output) { |
| |
| auto* pointer = data_->session_info.Get(); |
| return mojo::internal::Deserialize<::media_session::mojom::MediaSessionInfoDataView>( |
| pointer, output, message_); |
| } |
| template <typename UserType> |
| [[nodiscard]] bool ReadAudioFocusType(UserType* output) const { |
| auto data_value = data_->audio_focus_type; |
| return mojo::internal::Deserialize<::media_session::mojom::AudioFocusType>( |
| data_value, output); |
| } |
| AudioFocusType audio_focus_type() const { |
| return ::mojo::internal::ToKnownEnumValueHelper( |
| static_cast<::media_session::mojom::AudioFocusType>(data_->audio_focus_type)); |
| } |
| inline void GetSourceNameDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| [[nodiscard]] bool ReadSourceName(UserType* output) { |
| |
| static_assert( |
| mojo::internal::IsValidUserTypeForOptionalValue< |
| mojo::StringDataView, UserType>(), |
| "Attempting to read the optional `source_name` field into a type which " |
| "cannot represent a null value. Either wrap the destination object " |
| "with std::optional, ensure that any corresponding " |
| "{Struct/Union/Array/String}Traits define the necessary IsNull and " |
| "SetToNull methods, or use `MaybeReadSourceName` instead " |
| "of `ReadSourceName if you're fine with null values being " |
| "silently ignored in this case."); |
| auto* pointer = data_->header_.version >= 2 |
| ? data_->source_name.Get() : nullptr; |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, message_); |
| } |
| inline void GetRequestIdDataView( |
| ::mojo_base::mojom::UnguessableTokenDataView* output); |
| |
| template <typename UserType> |
| [[nodiscard]] bool ReadRequestId(UserType* output) { |
| |
| static_assert( |
| mojo::internal::IsValidUserTypeForOptionalValue< |
| ::mojo_base::mojom::UnguessableTokenDataView, UserType>(), |
| "Attempting to read the optional `request_id` field into a type which " |
| "cannot represent a null value. Either wrap the destination object " |
| "with std::optional, ensure that any corresponding " |
| "{Struct/Union/Array/String}Traits define the necessary IsNull and " |
| "SetToNull methods, or use `MaybeReadRequestId` instead " |
| "of `ReadRequestId if you're fine with null values being " |
| "silently ignored in this case."); |
| auto* pointer = data_->header_.version >= 3 |
| ? data_->request_id.Get() : nullptr; |
| return mojo::internal::Deserialize<::mojo_base::mojom::UnguessableTokenDataView>( |
| pointer, output, message_); |
| } |
| inline void GetSourceIdDataView( |
| ::mojo_base::mojom::UnguessableTokenDataView* output); |
| |
| template <typename UserType> |
| [[nodiscard]] bool ReadSourceId(UserType* output) { |
| |
| static_assert( |
| mojo::internal::IsValidUserTypeForOptionalValue< |
| ::mojo_base::mojom::UnguessableTokenDataView, UserType>(), |
| "Attempting to read the optional `source_id` field into a type which " |
| "cannot represent a null value. Either wrap the destination object " |
| "with std::optional, ensure that any corresponding " |
| "{Struct/Union/Array/String}Traits define the necessary IsNull and " |
| "SetToNull methods, or use `MaybeReadSourceId` instead " |
| "of `ReadSourceId if you're fine with null values being " |
| "silently ignored in this case."); |
| auto* pointer = data_->header_.version >= 9 |
| ? data_->source_id.Get() : nullptr; |
| return mojo::internal::Deserialize<::mojo_base::mojom::UnguessableTokenDataView>( |
| pointer, output, message_); |
| } |
| private: |
| internal::AudioFocusRequestState_Data* data_ = nullptr; |
| mojo::Message* message_ = nullptr; |
| }; |
| |
| |
| } // media_session::mojom |
| |
| namespace std { |
| |
| template <> |
| struct hash<::media_session::mojom::EnforcementMode> |
| : public mojo::internal::EnumHashImpl<::media_session::mojom::EnforcementMode> {}; |
| |
| template <> |
| struct hash<::media_session::mojom::AudioFocusType> |
| : public mojo::internal::EnumHashImpl<::media_session::mojom::AudioFocusType> {}; |
| |
| } // namespace std |
| |
| namespace mojo { |
| |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::media_session::mojom::EnforcementMode, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = EnumTraits<::media_session::mojom::EnforcementMode, UserType>; |
| |
| static void Serialize(UserType input, int32_t* output) { |
| *output = static_cast<int32_t>(Traits::ToMojom(input)); |
| } |
| |
| static bool Deserialize(int32_t input, UserType* output) { |
| return Traits::FromMojom(::mojo::internal::ToKnownEnumValueHelper( |
| static_cast<::media_session::mojom::EnforcementMode>(input)), output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::media_session::mojom::AudioFocusType, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = EnumTraits<::media_session::mojom::AudioFocusType, UserType>; |
| |
| static void Serialize(UserType input, int32_t* output) { |
| *output = static_cast<int32_t>(Traits::ToMojom(input)); |
| } |
| |
| static bool Deserialize(int32_t input, UserType* output) { |
| return Traits::FromMojom(::mojo::internal::ToKnownEnumValueHelper( |
| static_cast<::media_session::mojom::AudioFocusType>(input)), output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::media_session::mojom::AudioFocusRequestStateDataView, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = StructTraits<::media_session::mojom::AudioFocusRequestStateDataView, UserType>; |
| |
| static void Serialize( |
| MaybeConstUserType& input, |
| mojo::internal::MessageFragment<::media_session::mojom::internal::AudioFocusRequestState_Data>& fragment) { |
| if (CallIsNullIfExists<Traits>(input)) |
| return; |
| fragment.Allocate(); |
| decltype(Traits::session_info(input)) in_session_info = Traits::session_info(input); |
| mojo::internal::MessageFragment< |
| typename decltype(fragment->session_info)::BaseType> session_info_fragment( |
| fragment.message()); |
| mojo::internal::Serialize<::media_session::mojom::MediaSessionInfoDataView>( |
| in_session_info, session_info_fragment); |
| fragment->session_info.Set( |
| session_info_fragment.is_null() ? nullptr : session_info_fragment.data()); |
| MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( |
| fragment->session_info.is_null(), |
| mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, |
| "null session_info in AudioFocusRequestState struct"); |
| mojo::internal::Serialize<::media_session::mojom::AudioFocusType>( |
| Traits::audio_focus_type(input), &fragment->audio_focus_type); |
| decltype(Traits::source_name(input)) in_source_name = Traits::source_name(input); |
| mojo::internal::MessageFragment< |
| typename decltype(fragment->source_name)::BaseType> source_name_fragment( |
| fragment.message()); |
| mojo::internal::Serialize<mojo::StringDataView>( |
| in_source_name, source_name_fragment); |
| fragment->source_name.Set( |
| source_name_fragment.is_null() ? nullptr : source_name_fragment.data()); |
| decltype(Traits::request_id(input)) in_request_id = Traits::request_id(input); |
| mojo::internal::MessageFragment< |
| typename decltype(fragment->request_id)::BaseType> request_id_fragment( |
| fragment.message()); |
| mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView>( |
| in_request_id, request_id_fragment); |
| fragment->request_id.Set( |
| request_id_fragment.is_null() ? nullptr : request_id_fragment.data()); |
| decltype(Traits::source_id(input)) in_source_id = Traits::source_id(input); |
| mojo::internal::MessageFragment< |
| typename decltype(fragment->source_id)::BaseType> source_id_fragment( |
| fragment.message()); |
| mojo::internal::Serialize<::mojo_base::mojom::UnguessableTokenDataView>( |
| in_source_id, source_id_fragment); |
| fragment->source_id.Set( |
| source_id_fragment.is_null() ? nullptr : source_id_fragment.data()); |
| } |
| |
| static bool Deserialize(::media_session::mojom::internal::AudioFocusRequestState_Data* input, |
| UserType* output, |
| Message* message) { |
| if (!input) |
| return CallSetToNullIfExists<Traits>(output); |
| |
| ::media_session::mojom::AudioFocusRequestStateDataView data_view(input, message); |
| return Traits::Read(data_view, output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| } // namespace mojo |
| |
| |
| namespace media_session::mojom { |
| |
| inline void AudioFocusRequestStateDataView::GetSessionInfoDataView( |
| ::media_session::mojom::MediaSessionInfoDataView* output) { |
| auto pointer = data_->session_info.Get(); |
| *output = ::media_session::mojom::MediaSessionInfoDataView(pointer, message_); |
| } |
| inline void AudioFocusRequestStateDataView::GetSourceNameDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->header_.version >= 2 |
| ? data_->source_name.Get() : nullptr; |
| *output = mojo::StringDataView(pointer, message_); |
| } |
| inline void AudioFocusRequestStateDataView::GetRequestIdDataView( |
| ::mojo_base::mojom::UnguessableTokenDataView* output) { |
| auto pointer = data_->header_.version >= 3 |
| ? data_->request_id.Get() : nullptr; |
| *output = ::mojo_base::mojom::UnguessableTokenDataView(pointer, message_); |
| } |
| inline void AudioFocusRequestStateDataView::GetSourceIdDataView( |
| ::mojo_base::mojom::UnguessableTokenDataView* output) { |
| auto pointer = data_->header_.version >= 9 |
| ? data_->source_id.Get() : nullptr; |
| *output = ::mojo_base::mojom::UnguessableTokenDataView(pointer, message_); |
| } |
| |
| |
| |
| } // media_session::mojom |
| |
| // Declare TraceFormatTraits for enums, which should be defined in ::perfetto |
| // namespace. |
| |
| namespace perfetto { |
| |
| template <> |
| struct TraceFormatTraits<::media_session::mojom::EnforcementMode> { |
| static void WriteIntoTrace(perfetto::TracedValue context, ::media_session::mojom::EnforcementMode value); |
| }; |
| |
| } // namespace perfetto |
| |
| namespace perfetto { |
| |
| template <> |
| struct TraceFormatTraits<::media_session::mojom::AudioFocusType> { |
| static void WriteIntoTrace(perfetto::TracedValue context, ::media_session::mojom::AudioFocusType value); |
| }; |
| |
| } // namespace perfetto |
| |
| #endif // SERVICES_MEDIA_SESSION_PUBLIC_MOJOM_AUDIO_FOCUS_MOJOM_SHARED_H_
|
| /* Metadata comment
|
| eyJ0eXBlIjogImt5dGhlMCIsICJtZXRhIjogW3sidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
|
| ZWdpbiI6IDE5OTcsICJlbmQiOiAyMDEyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
|
| ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
|
| c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJtZWRpYV9zZXNzaW9uLm1vam9tLkVuZm9yY2VtZW50
|
| TW9kZSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNo
|
| b3JfZGVmaW5lcyIsICJiZWdpbiI6IDIwOTUsICJlbmQiOiAyMTAzLCAidm5hbWUiOiB7Imxhbmd1
|
| YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
|
| ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJtZWRpYV9zZXNzaW9uLm1v
|
| am9tLkVuZm9yY2VtZW50TW9kZS5rRGVmYXVsdCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2Vu
|
| ZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIxNzYsICJlbmQi
|
| OiAyMTgxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
|
| bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
|
| dHVyZSI6ICJtZWRpYV9zZXNzaW9uLm1vam9tLkVuZm9yY2VtZW50TW9kZS5rTm9uZSJ9LCAiZWRn
|
| ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
|
| ICJiZWdpbiI6IDIyNjEsICJlbmQiOiAyMjczLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9t
|
| IiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21p
|
| dW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJtZWRpYV9zZXNzaW9uLm1vam9tLkVuZm9yY2Vt
|
| ZW50TW9kZS5rU2luZ2xlR3JvdXAifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9
|
| LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMzU1LCAiZW5kIjogMjM2OSwg
|
| InZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
|
| c291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAi
|
| bWVkaWFfc2Vzc2lvbi5tb2pvbS5FbmZvcmNlbWVudE1vZGUua1NpbmdsZVNlc3Npb24ifSwgImVk
|
| Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
|
| LCAiYmVnaW4iOiAyNjk2LCAiZW5kIjogMjcxMCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pv
|
| bSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9t
|
| aXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAibWVkaWFfc2Vzc2lvbi5tb2pvbS5BdWRpb0Zv
|
| Y3VzVHlwZSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJh
|
| bmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDI3ODksICJlbmQiOiAyNzk0LCAidm5hbWUiOiB7Imxh
|
| bmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nv
|
| ZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJtZWRpYV9zZXNzaW9u
|
| Lm1vam9tLkF1ZGlvRm9jdXNUeXBlLmtHYWluIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
|
| cmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjg4MiwgImVuZCI6
|
| IDI5MDMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVt
|
| Lmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0
|
| dXJlIjogIm1lZGlhX3Nlc3Npb24ubW9qb20uQXVkaW9Gb2N1c1R5cGUua0dhaW5UcmFuc2llbnRN
|
| YXlEdWNrIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFu
|
| Y2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjk4NCwgImVuZCI6IDI5OTgsICJ2bmFtZSI6IHsibGFu
|
| Z3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29k
|
| ZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogIm1lZGlhX3Nlc3Npb24u
|
| bW9qb20uQXVkaW9Gb2N1c1R5cGUua0dhaW5UcmFuc2llbnQifSwgImVkZ2UiOiAiJS9reXRoZS9l
|
| ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAzMDcz
|
| LCAiZW5kIjogMzA4MSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAi
|
| Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIs
|
| ICJzaWduYXR1cmUiOiAibWVkaWFfc2Vzc2lvbi5tb2pvbS5BdWRpb0ZvY3VzVHlwZS5rQW1iaWVu
|
| dCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn1dfQ==
|
| */ |