blob: 7584266d39e8e3e6075d91f347862bdef119e5ce [file] [log] [blame]
// chrome/common/importer/profile_import.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 CHROME_COMMON_IMPORTER_PROFILE_IMPORT_MOJOM_H_
#define CHROME_COMMON_IMPORTER_PROFILE_IMPORT_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 "chrome/common/importer/profile_import.mojom-features.h"
#include "chrome/common/importer/profile_import.mojom-shared.h"
#include "chrome/common/importer/profile_import.mojom-forward.h"
#include "mojo/public/mojom/base/string16.mojom.h"
#include "sandbox/policy/mojom/sandbox.mojom-forward.h"
#include "url/mojom/url.mojom.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"
#include "mojo/public/cpp/bindings/lib/native_enum_serialization.h"
#include "mojo/public/cpp/bindings/lib/native_struct_serialization.h"
#include "chrome/common/importer/imported_bookmark_entry.h"
#include "chrome/common/importer/importer_autofill_form_data_entry.h"
#include "chrome/common/importer/importer_data_types.h"
#include "chrome/common/importer/importer_url_row.h"
#include "components/favicon_base/favicon_usage_data.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace chrome::mojom {
class ProfileImportObserverProxy;
template <typename ImplRefTraits>
class ProfileImportObserverStub;
class ProfileImportObserverRequestValidator;
// @generated_from: chrome.mojom.ProfileImportObserver
class ProfileImportObserver
: public ProfileImportObserverInterfaceBase {
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 constexpr bool HasUninterruptableMethods_ = false;
using Base_ = ProfileImportObserverInterfaceBase;
using Proxy_ = ProfileImportObserverProxy;
template <typename ImplRefTraits>
using Stub_ = ProfileImportObserverStub<ImplRefTraits>;
using RequestValidator_ = ProfileImportObserverRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kOnImportStartMinVersion = 0,
kOnImportFinishedMinVersion = 0,
kOnImportItemStartMinVersion = 0,
kOnImportItemFinishedMinVersion = 0,
kOnHistoryImportStartMinVersion = 0,
kOnHistoryImportGroupMinVersion = 0,
kOnHomePageImportReadyMinVersion = 0,
kOnBookmarksImportStartMinVersion = 0,
kOnBookmarksImportGroupMinVersion = 0,
kOnFaviconsImportStartMinVersion = 0,
kOnFaviconsImportGroupMinVersion = 0,
kOnPasswordFormImportReadyMinVersion = 0,
kOnKeywordsImportReadyMinVersion = 0,
kOnAutofillFormDataImportStartMinVersion = 0,
kOnAutofillFormDataImportGroupMinVersion = 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 OnImportStart_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnImportFinished_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnImportItemStart_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnImportItemFinished_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnHistoryImportStart_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnHistoryImportGroup_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnHomePageImportReady_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnBookmarksImportStart_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnBookmarksImportGroup_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnFaviconsImportStart_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnFaviconsImportGroup_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnPasswordFormImportReady_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnKeywordsImportReady_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnAutofillFormDataImportStart_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct OnAutofillFormDataImportGroup_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~ProfileImportObserver() = default;
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportStart
virtual void OnImportStart() = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportFinished
virtual void OnImportFinished(bool succeeded, const std::string& error_msg) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportItemStart
virtual void OnImportItemStart(::importer::ImportItem item) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportItemFinished
virtual void OnImportItemFinished(::importer::ImportItem item) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnHistoryImportStart
virtual void OnHistoryImportStart(uint32_t total_history_rows_count) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnHistoryImportGroup
virtual void OnHistoryImportGroup(const std::vector<::ImporterURLRow>& history_rows_group, int32_t visit_source) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnHomePageImportReady
virtual void OnHomePageImportReady(const ::GURL& home_page) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnBookmarksImportStart
virtual void OnBookmarksImportStart(const ::std::u16string& first_folder_name, uint32_t total_bookmarks_count) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnBookmarksImportGroup
virtual void OnBookmarksImportGroup(const std::vector<::ImportedBookmarkEntry>& bookmarks_group) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnFaviconsImportStart
virtual void OnFaviconsImportStart(uint32_t total_favicons_count) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnFaviconsImportGroup
virtual void OnFaviconsImportGroup(const ::favicon_base::FaviconUsageDataList& favicons_group) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnPasswordFormImportReady
virtual void OnPasswordFormImportReady(const ::importer::ImportedPasswordForm& form) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnKeywordsImportReady
virtual void OnKeywordsImportReady(const std::vector<::importer::SearchEngineInfo>& search_engines, bool unique_on_host_and_path) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnAutofillFormDataImportStart
virtual void OnAutofillFormDataImportStart(uint32_t total_autofill_form_data_entry_count) = 0;
// @generated_from: chrome.mojom.ProfileImportObserver.OnAutofillFormDataImportGroup
virtual void OnAutofillFormDataImportGroup(const std::vector<::ImporterAutofillFormDataEntry>& autofill_form_data_entry_group) = 0;
};
class ProfileImportProxy;
template <typename ImplRefTraits>
class ProfileImportStub;
class ProfileImportRequestValidator;
// @generated_from: chrome.mojom.ProfileImport
class ProfileImport
: public ProfileImportInterfaceBase {
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::kNoSandbox;
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = ProfileImportInterfaceBase;
using Proxy_ = ProfileImportProxy;
template <typename ImplRefTraits>
using Stub_ = ProfileImportStub<ImplRefTraits>;
using RequestValidator_ = ProfileImportRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kStartImportMinVersion = 0,
kCancelImportMinVersion = 0,
kReportImportItemFinishedMinVersion = 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 StartImport_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct CancelImport_Sym {
NOINLINE static uint32_t IPCStableHash();
};
struct ReportImportItemFinished_Sym {
NOINLINE static uint32_t IPCStableHash();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~ProfileImport() = default;
// @generated_from: chrome.mojom.ProfileImport.StartImport
virtual void StartImport(const ::importer::SourceProfile& source_profile, uint16_t items, const base::flat_map<uint32_t, std::string>& localized_strings, ::mojo::PendingRemote<ProfileImportObserver> observer) = 0;
// @generated_from: chrome.mojom.ProfileImport.CancelImport
virtual void CancelImport() = 0;
// @generated_from: chrome.mojom.ProfileImport.ReportImportItemFinished
virtual void ReportImportItemFinished(::importer::ImportItem item) = 0;
};
// @generated_from: chrome.mojom.ProfileImportObserver
class ProfileImportObserverProxy
: public ProfileImportObserver {
public:
using InterfaceType = ProfileImportObserver;
explicit ProfileImportObserverProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportStart
void OnImportStart() final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportFinished
void OnImportFinished(bool succeeded, const std::string& error_msg) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportItemStart
void OnImportItemStart(::importer::ImportItem item) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnImportItemFinished
void OnImportItemFinished(::importer::ImportItem item) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnHistoryImportStart
void OnHistoryImportStart(uint32_t total_history_rows_count) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnHistoryImportGroup
void OnHistoryImportGroup(const std::vector<::ImporterURLRow>& history_rows_group, int32_t visit_source) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnHomePageImportReady
void OnHomePageImportReady(const ::GURL& home_page) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnBookmarksImportStart
void OnBookmarksImportStart(const ::std::u16string& first_folder_name, uint32_t total_bookmarks_count) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnBookmarksImportGroup
void OnBookmarksImportGroup(const std::vector<::ImportedBookmarkEntry>& bookmarks_group) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnFaviconsImportStart
void OnFaviconsImportStart(uint32_t total_favicons_count) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnFaviconsImportGroup
void OnFaviconsImportGroup(const ::favicon_base::FaviconUsageDataList& favicons_group) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnPasswordFormImportReady
void OnPasswordFormImportReady(const ::importer::ImportedPasswordForm& form) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnKeywordsImportReady
void OnKeywordsImportReady(const std::vector<::importer::SearchEngineInfo>& search_engines, bool unique_on_host_and_path) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnAutofillFormDataImportStart
void OnAutofillFormDataImportStart(uint32_t total_autofill_form_data_entry_count) final;
// @generated_from: chrome.mojom.ProfileImportObserver.OnAutofillFormDataImportGroup
void OnAutofillFormDataImportGroup(const std::vector<::ImporterAutofillFormDataEntry>& autofill_form_data_entry_group) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: chrome.mojom.ProfileImport
class ProfileImportProxy
: public ProfileImport {
public:
using InterfaceType = ProfileImport;
explicit ProfileImportProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: chrome.mojom.ProfileImport.StartImport
void StartImport(const ::importer::SourceProfile& source_profile, uint16_t items, const base::flat_map<uint32_t, std::string>& localized_strings, ::mojo::PendingRemote<ProfileImportObserver> observer) final;
// @generated_from: chrome.mojom.ProfileImport.CancelImport
void CancelImport() final;
// @generated_from: chrome.mojom.ProfileImport.ReportImportItemFinished
void ReportImportItemFinished(::importer::ImportItem item) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class ProfileImportObserverStubDispatch {
public:
static bool Accept(ProfileImportObserver* impl, mojo::Message* message);
static bool AcceptWithResponder(
ProfileImportObserver* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<ProfileImportObserver>>
class ProfileImportObserverStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
ProfileImportObserverStub() = default;
~ProfileImportObserverStub() 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 ProfileImportObserverStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return ProfileImportObserverStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class ProfileImportStubDispatch {
public:
static bool Accept(ProfileImport* impl, mojo::Message* message);
static bool AcceptWithResponder(
ProfileImport* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<ProfileImport>>
class ProfileImportStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
ProfileImportStub() = default;
~ProfileImportStub() 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 ProfileImportStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return ProfileImportStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class ProfileImportObserverRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class ProfileImportRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
// @generated_from: chrome.mojom.ImportedPasswordForm
class ImportedPasswordForm {
public:
template <typename T>
using EnableIfSame = std::enable_if_t<std::is_same<ImportedPasswordForm, T>::value>;
using DataView = ImportedPasswordFormDataView;
using Data_ = internal::ImportedPasswordForm_Data;
// @generated_from: chrome.mojom.ImportedPasswordForm.Scheme
using Scheme = ImportedPasswordForm_Scheme;
template <typename... Args>
static ImportedPasswordFormPtr New(Args&&... args) {
return ImportedPasswordFormPtr(
std::in_place, std::forward<Args>(args)...);
}
template <typename U>
static ImportedPasswordFormPtr From(const U& u) {
return mojo::TypeConverter<ImportedPasswordFormPtr, U>::Convert(u);
}
template <typename U>
U To() const {
return mojo::TypeConverter<U, ImportedPasswordForm>::Convert(*this);
}
ImportedPasswordForm();
ImportedPasswordForm(
ImportedPasswordForm::Scheme scheme,
const std::string& signon_realm,
const ::GURL& url,
const ::GURL& action,
const ::std::u16string& username_element,
const ::std::u16string& username_value,
const ::std::u16string& password_element,
const ::std::u16string& password_value,
bool blocked_by_user);
~ImportedPasswordForm();
// 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 = ImportedPasswordFormPtr>
ImportedPasswordFormPtr 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, ImportedPasswordForm::EnableIfSame<T>* = nullptr>
bool Equals(const T& other) const;
template <typename T, ImportedPasswordForm::EnableIfSame<T>* = nullptr>
bool operator==(const T& rhs) const { return Equals(rhs); }
template <typename T, ImportedPasswordForm::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<
ImportedPasswordForm::DataView, std::vector<uint8_t>>(input);
}
template <typename UserType>
static mojo::Message SerializeAsMessage(UserType* input) {
return mojo::internal::SerializeAsMessageImpl<
ImportedPasswordForm::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::ImportedPasswordForm_UnserializedMessageContext<
UserType, ImportedPasswordForm::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<ImportedPasswordForm::DataView>(
message, data, data_num_bytes, output, Validate);
}
template <typename UserType>
static bool Deserialize(const std::vector<uint8_t>& input,
UserType* output) {
return ImportedPasswordForm::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::ImportedPasswordForm_UnserializedMessageContext<
UserType, ImportedPasswordForm::DataView>>();
if (context) {
*output = std::move(context->TakeData());
return true;
}
input.SerializeIfNecessary();
return mojo::internal::DeserializeImpl<ImportedPasswordForm::DataView>(
input, input.payload(), input.payload_num_bytes(), output, Validate);
}
// @generated_from: chrome.mojom.ImportedPasswordForm.scheme
ImportedPasswordForm::Scheme scheme;
// @generated_from: chrome.mojom.ImportedPasswordForm.signon_realm
std::string signon_realm;
// @generated_from: chrome.mojom.ImportedPasswordForm.url
::GURL url;
// @generated_from: chrome.mojom.ImportedPasswordForm.action
::GURL action;
// @generated_from: chrome.mojom.ImportedPasswordForm.username_element
::std::u16string username_element;
// @generated_from: chrome.mojom.ImportedPasswordForm.username_value
::std::u16string username_value;
// @generated_from: chrome.mojom.ImportedPasswordForm.password_element
::std::u16string password_element;
// @generated_from: chrome.mojom.ImportedPasswordForm.password_value
::std::u16string password_value;
// @generated_from: chrome.mojom.ImportedPasswordForm.blocked_by_user
bool blocked_by_user;
// 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, ImportedPasswordForm::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);
template <typename T, ImportedPasswordForm::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {
return !(rhs < lhs);
}
template <typename T, ImportedPasswordForm::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {
return rhs < lhs;
}
template <typename T, ImportedPasswordForm::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {
return !(lhs < rhs);
}
template <typename StructPtrType>
ImportedPasswordFormPtr ImportedPasswordForm::Clone() const {
return New(
mojo::Clone(scheme),
mojo::Clone(signon_realm),
mojo::Clone(url),
mojo::Clone(action),
mojo::Clone(username_element),
mojo::Clone(username_value),
mojo::Clone(password_element),
mojo::Clone(password_value),
mojo::Clone(blocked_by_user)
);
}
template <typename T, ImportedPasswordForm::EnableIfSame<T>*>
bool ImportedPasswordForm::Equals(const T& other_struct) const {
if (!mojo::Equals(this->scheme, other_struct.scheme))
return false;
if (!mojo::Equals(this->signon_realm, other_struct.signon_realm))
return false;
if (!mojo::Equals(this->url, other_struct.url))
return false;
if (!mojo::Equals(this->action, other_struct.action))
return false;
if (!mojo::Equals(this->username_element, other_struct.username_element))
return false;
if (!mojo::Equals(this->username_value, other_struct.username_value))
return false;
if (!mojo::Equals(this->password_element, other_struct.password_element))
return false;
if (!mojo::Equals(this->password_value, other_struct.password_value))
return false;
if (!mojo::Equals(this->blocked_by_user, other_struct.blocked_by_user))
return false;
return true;
}
template <typename T, ImportedPasswordForm::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {
if (lhs.scheme < rhs.scheme)
return true;
if (rhs.scheme < lhs.scheme)
return false;
if (lhs.signon_realm < rhs.signon_realm)
return true;
if (rhs.signon_realm < lhs.signon_realm)
return false;
if (lhs.url < rhs.url)
return true;
if (rhs.url < lhs.url)
return false;
if (lhs.action < rhs.action)
return true;
if (rhs.action < lhs.action)
return false;
if (lhs.username_element < rhs.username_element)
return true;
if (rhs.username_element < lhs.username_element)
return false;
if (lhs.username_value < rhs.username_value)
return true;
if (rhs.username_value < lhs.username_value)
return false;
if (lhs.password_element < rhs.password_element)
return true;
if (rhs.password_element < lhs.password_element)
return false;
if (lhs.password_value < rhs.password_value)
return true;
if (rhs.password_value < lhs.password_value)
return false;
if (lhs.blocked_by_user < rhs.blocked_by_user)
return true;
if (rhs.blocked_by_user < lhs.blocked_by_user)
return false;
return false;
}
} // chrome::mojom
namespace mojo {
template <>
struct StructTraits<::chrome::mojom::ImportedPasswordForm::DataView,
::chrome::mojom::ImportedPasswordFormPtr> {
static bool IsNull(const ::chrome::mojom::ImportedPasswordFormPtr& input) { return !input; }
static void SetToNull(::chrome::mojom::ImportedPasswordFormPtr* output) { output->reset(); }
static decltype(::chrome::mojom::ImportedPasswordForm::scheme) scheme(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->scheme;
}
static const decltype(::chrome::mojom::ImportedPasswordForm::signon_realm)& signon_realm(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->signon_realm;
}
static const decltype(::chrome::mojom::ImportedPasswordForm::url)& url(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->url;
}
static const decltype(::chrome::mojom::ImportedPasswordForm::action)& action(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->action;
}
static const decltype(::chrome::mojom::ImportedPasswordForm::username_element)& username_element(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->username_element;
}
static const decltype(::chrome::mojom::ImportedPasswordForm::username_value)& username_value(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->username_value;
}
static const decltype(::chrome::mojom::ImportedPasswordForm::password_element)& password_element(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->password_element;
}
static const decltype(::chrome::mojom::ImportedPasswordForm::password_value)& password_value(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->password_value;
}
static decltype(::chrome::mojom::ImportedPasswordForm::blocked_by_user) blocked_by_user(
const ::chrome::mojom::ImportedPasswordFormPtr& input) {
return input->blocked_by_user;
}
static bool Read(::chrome::mojom::ImportedPasswordForm::DataView input, ::chrome::mojom::ImportedPasswordFormPtr* output);
};
} // namespace mojo
#endif // CHROME_COMMON_IMPORTER_PROFILE_IMPORT_MOJOM_H_
/* Metadata comment
eyJ0eXBlIjogImt5dGhlMCIsICJtZXRhIjogW3sidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
ZWdpbiI6IDIyMjcsICJlbmQiOiAyMjQ4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2Vy
dmVyIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgImJlZ2luIjogNTMxOCwgImVuZCI6IDUzMzEsICJ2bmFtZSI6IHsibGFuZ3Vh
Z2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNl
YXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9m
aWxlSW1wb3J0T2JzZXJ2ZXIuT25JbXBvcnRTdGFydCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv
Z2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDU0MzAsICJl
bmQiOiA1NDQ2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNp
Z25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2VydmVyLk9uSW1wb3J0Rmlu
aXNoZWQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5j
aG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1NTkwLCAiZW5kIjogNTYwNywgInZuYW1lIjogeyJsYW5n
dWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rl
c2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLlBy
b2ZpbGVJbXBvcnRPYnNlcnZlci5PbkltcG9ydEl0ZW1TdGFydCJ9LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDU3
MzcsICJlbmQiOiA1NzU3LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2VydmVyLk9uSW1w
b3J0SXRlbUZpbmlzaGVkIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNTg4NywgImVuZCI6IDU5MDcsICJ2bmFt
ZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj
ZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9t
ZS5tb2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2ZXIuT25IaXN0b3J5SW1wb3J0U3RhcnQifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiA2MDQzLCAiZW5kIjogNjA2MywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pv
bSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9t
aXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLlByb2ZpbGVJbXBvcnRP
YnNlcnZlci5Pbkhpc3RvcnlJbXBvcnRHcm91cCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2Vu
ZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDYyNDQsICJlbmQi
OiA2MjY1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2VydmVyLk9uSG9tZVBhZ2VJbXBv
cnRSZWFkeSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJh
bmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDYzOTMsICJlbmQiOiA2NDE1LCAidm5hbWUiOiB7Imxh
bmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nv
ZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20u
UHJvZmlsZUltcG9ydE9ic2VydmVyLk9uQm9va21hcmtzSW1wb3J0U3RhcnQifSwgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVn
aW4iOiA2NTkzLCAiZW5kIjogNjYxNSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJj
b3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3Ny
Yy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLlByb2ZpbGVJbXBvcnRPYnNlcnZl
ci5PbkJvb2ttYXJrc0ltcG9ydEdyb3VwIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNjc3OCwgImVuZCI6IDY3
OTksICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJl
IjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2ZXIuT25GYXZpY29uc0ltcG9ydFN0
YXJ0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgImJlZ2luIjogNjkzMiwgImVuZCI6IDY5NTMsICJ2bmFtZSI6IHsibGFuZ3Vh
Z2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNl
YXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9m
aWxlSW1wb3J0T2JzZXJ2ZXIuT25GYXZpY29uc0ltcG9ydEdyb3VwIn0sICJlZGdlIjogIiUva3l0
aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjog
NzExOSwgImVuZCI6IDcxNDQsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
aW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2ZXIuT25Q
YXNzd29yZEZvcm1JbXBvcnRSZWFkeSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
In0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDcyOTIsICJlbmQiOiA3MzEz
LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29n
bGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6
ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2VydmVyLk9uS2V5d29yZHNJbXBvcnRSZWFk
eSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJiZWdpbiI6IDc1MTgsICJlbmQiOiA3NTQ3LCAidm5hbWUiOiB7Imxhbmd1YWdl
IjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFy
Y2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmls
ZUltcG9ydE9ic2VydmVyLk9uQXV0b2ZpbGxGb3JtRGF0YUltcG9ydFN0YXJ0In0sICJlZGdlIjog
IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJl
Z2luIjogNzcwNCwgImVuZCI6IDc3MzMsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAi
Y29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9z
cmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2
ZXIuT25BdXRvZmlsbEZvcm1EYXRhSW1wb3J0R3JvdXAifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA4MDA2LCAi
ZW5kIjogODAxOSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJz
aWduYXR1cmUiOiAiY2hyb21lLm1vam9tLlByb2ZpbGVJbXBvcnQifSwgImVkZ2UiOiAiJS9reXRo
ZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA5
NTE0LCAiZW5kIjogOTUyNSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMi
OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFp
biIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLlByb2ZpbGVJbXBvcnQuU3RhcnRJbXBvcnQi
fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
ZmluZXMiLCAiYmVnaW4iOiA5Nzk0LCAiZW5kIjogOTgwNiwgInZuYW1lIjogeyJsYW5ndWFnZSI6
ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLlByb2ZpbGVJ
bXBvcnQuQ2FuY2VsSW1wb3J0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwg
eyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogOTkwNSwgImVuZCI6IDk5MjksICJ2
bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNo
cm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0LlJlcG9ydEltcG9ydEl0ZW1GaW5pc2hlZCJ9LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJiZWdpbiI6IDEwMzE3LCAiZW5kIjogMTAzMzAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0
T2JzZXJ2ZXIuT25JbXBvcnRTdGFydCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVz
In0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEwNDIyLCAiZW5kIjogMTA0
MzgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJl
IjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2ZXIuT25JbXBvcnRGaW5pc2hlZCJ9
LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
aW5lcyIsICJiZWdpbiI6IDEwNTc1LCAiZW5kIjogMTA1OTIsICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9maWxl
SW1wb3J0T2JzZXJ2ZXIuT25JbXBvcnRJdGVtU3RhcnQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
L2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMDcxNSwg
ImVuZCI6IDEwNzM1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJj
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwg
InNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2VydmVyLk9uSW1wb3J0
SXRlbUZpbmlzaGVkIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTA4NTgsICJlbmQiOiAxMDg3OCwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21l
Lm1vam9tLlByb2ZpbGVJbXBvcnRPYnNlcnZlci5Pbkhpc3RvcnlJbXBvcnRTdGFydCJ9LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJiZWdpbiI6IDExMDA3LCAiZW5kIjogMTEwMjcsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0
T2JzZXJ2ZXIuT25IaXN0b3J5SW1wb3J0R3JvdXAifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMTIwMSwgImVu
ZCI6IDExMjIyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNp
Z25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2VydmVyLk9uSG9tZVBhZ2VJ
bXBvcnRSZWFkeSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDExMzQzLCAiZW5kIjogMTEzNjUsICJ2bmFtZSI6
IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5t
b2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2ZXIuT25Cb29rbWFya3NJbXBvcnRTdGFydCJ9LCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
ICJiZWdpbiI6IDExNTM2LCAiZW5kIjogMTE1NTgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0
T2JzZXJ2ZXIuT25Cb29rbWFya3NJbXBvcnRHcm91cCJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv
Z2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDExNzE0LCAi
ZW5kIjogMTE3MzUsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAi
c2lnbmF0dXJlIjogImNocm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2ZXIuT25GYXZpY29u
c0ltcG9ydFN0YXJ0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBl
IjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTE4NjEsICJlbmQiOiAxMTg4MiwgInZuYW1l
IjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21l
Lm1vam9tLlByb2ZpbGVJbXBvcnRPYnNlcnZlci5PbkZhdmljb25zSW1wb3J0R3JvdXAifSwgImVk
Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAiYmVnaW4iOiAxMjA0MSwgImVuZCI6IDEyMDY2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1v
am9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hy
b21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9y
dE9ic2VydmVyLk9uUGFzc3dvcmRGb3JtSW1wb3J0UmVhZHkifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMjIw
NywgImVuZCI6IDEyMjI4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydE9ic2VydmVyLk9uS2V5
d29yZHNJbXBvcnRSZWFkeSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsi
dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEyNDI2LCAiZW5kIjogMTI0NTUsICJ2
bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
dXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNo
cm9tZS5tb2pvbS5Qcm9maWxlSW1wb3J0T2JzZXJ2ZXIuT25BdXRvZmlsbEZvcm1EYXRhSW1wb3J0
U3RhcnQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5j
aG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMjYwNSwgImVuZCI6IDEyNjM0LCAidm5hbWUiOiB7Imxh
bmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nv
ZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20u
UHJvZmlsZUltcG9ydE9ic2VydmVyLk9uQXV0b2ZpbGxGb3JtRGF0YUltcG9ydEdyb3VwIn0sICJl
ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
IiwgImJlZ2luIjogMTMwODksICJlbmQiOiAxMzEwMCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLlByb2ZpbGVJbXBv
cnQuU3RhcnRJbXBvcnQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5
cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMzM2MiwgImVuZCI6IDEzMzc0LCAidm5h
bWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJv
bWUubW9qb20uUHJvZmlsZUltcG9ydC5DYW5jZWxJbXBvcnQifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMzQ2
NiwgImVuZCI6IDEzNDkwLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uUHJvZmlsZUltcG9ydC5SZXBvcnRJbXBvcnRJ
dGVtRmluaXNoZWQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUi
OiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNjYwMSwgImVuZCI6IDE2NjIxLCAidm5hbWUi
OiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2Uu
Y29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUu
bW9qb20uSW1wb3J0ZWRQYXNzd29yZEZvcm0ifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxNjkxNSwgImVuZCI6
IDE2OTIxLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
dHVyZSI6ICJjaHJvbWUubW9qb20uSW1wb3J0ZWRQYXNzd29yZEZvcm0uU2NoZW1lIn0sICJlZGdl
IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg
ImJlZ2luIjogMjA5OTIsICJlbmQiOiAyMDk5OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pv
bSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9t
aXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLkltcG9ydGVkUGFzc3dv
cmRGb3JtLnNjaGVtZSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlw
ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIxMDkxLCAiZW5kIjogMjExMDMsICJ2bmFt
ZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj
ZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImNocm9t
ZS5tb2pvbS5JbXBvcnRlZFBhc3N3b3JkRm9ybS5zaWdub25fcmVhbG0ifSwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4i
OiAyMTE3NSwgImVuZCI6IDIxMTc4LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNv
cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3Jj
Ly9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uSW1wb3J0ZWRQYXNzd29yZEZvcm0u
dXJsIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
cl9kZWZpbmVzIiwgImJlZ2luIjogMjEyNTMsICJlbmQiOiAyMTI1OSwgInZuYW1lIjogeyJsYW5n
dWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rl
c2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLklt
cG9ydGVkUGFzc3dvcmRGb3JtLmFjdGlvbiJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJh
dGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDIxMzU0LCAiZW5kIjog
MjEzNzAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0
dXJlIjogImNocm9tZS5tb2pvbS5JbXBvcnRlZFBhc3N3b3JkRm9ybS51c2VybmFtZV9lbGVtZW50
In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9k
ZWZpbmVzIiwgImJlZ2luIjogMjE0NjMsICJlbmQiOiAyMTQ3NywgInZuYW1lIjogeyJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiY2hyb21lLm1vam9tLkltcG9y
dGVkUGFzc3dvcmRGb3JtLnVzZXJuYW1lX3ZhbHVlIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
ZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjE1NzIsICJl
bmQiOiAyMTU4OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJz
aWduYXR1cmUiOiAiY2hyb21lLm1vam9tLkltcG9ydGVkUGFzc3dvcmRGb3JtLnBhc3N3b3JkX2Vs
ZW1lbnQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5j
aG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMTY4MSwgImVuZCI6IDIxNjk1LCAidm5hbWUiOiB7Imxh
bmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nv
ZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20u
SW1wb3J0ZWRQYXNzd29yZEZvcm0ucGFzc3dvcmRfdmFsdWUifSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMTc3
NywgImVuZCI6IDIxNzkyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
IiwgInNpZ25hdHVyZSI6ICJjaHJvbWUubW9qb20uSW1wb3J0ZWRQYXNzd29yZEZvcm0uYmxvY2tl
ZF9ieV91c2VyIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifV19
*/