From 95e11cca2dac18b727f122bbc4456ea6ab499289 Mon Sep 17 00:00:00 2001 From: Honnix Date: Tue, 18 Jul 2023 15:23:43 +0200 Subject: [PATCH] Pass task execution metadata from agent (#422) * Pass task execution metadata from agent Signed-off-by: Hongxin Liang * Add doc Signed-off-by: Hongxin Liang * Update protos/flyteidl/admin/agent.proto Co-authored-by: Kevin Su Signed-off-by: Honnix * Regenerate --------- Signed-off-by: Hongxin Liang Signed-off-by: Honnix Co-authored-by: Kevin Su --- gen/pb-cpp/flyteidl/admin/agent.pb.cc | 1345 ++++++++- gen/pb-cpp/flyteidl/admin/agent.pb.h | 583 +++- gen/pb-go/flyteidl/admin/agent.pb.go | 198 +- gen/pb-go/flyteidl/admin/agent.pb.validate.go | 97 + gen/pb-go/flyteidl/service/admin.swagger.json | 66 +- gen/pb-go/flyteidl/service/agent.swagger.json | 85 + .../flyteidl/service/flyteadmin/README.md | 2 +- .../service/flyteadmin/api/swagger.yaml | 134 +- .../model_admin_task_execution_closure.go | 2 +- .../model_event_task_execution_event.go | 2 +- ..._flyteidlevent_task_execution_metadata.go} | 2 +- gen/pb-go/flyteidl/service/openapi.go | 4 +- gen/pb-java/flyteidl/admin/Agent.java | 2448 ++++++++++++++++- gen/pb-js/flyteidl.d.ts | 88 + gen/pb-js/flyteidl.js | 252 ++ gen/pb_python/flyteidl/admin/agent_pb2.py | 49 +- gen/pb_python/flyteidl/admin/agent_pb2.pyi | 45 +- .../flyteidl/service/flyteadmin/README.md | 2 +- .../service/flyteadmin/flyteadmin/__init__.py | 2 +- .../flyteadmin/flyteadmin/models/__init__.py | 2 +- .../models/admin_task_execution_closure.py | 8 +- .../models/event_task_execution_event.py | 8 +- ... flyteidlevent_task_execution_metadata.py} | 48 +- ..._flyteidlevent_task_execution_metadata.py} | 12 +- gen/pb_rust/flyteidl.admin.rs | 26 + protos/flyteidl/admin/agent.proto | 19 + 26 files changed, 5255 insertions(+), 274 deletions(-) rename gen/pb-go/flyteidl/service/flyteadmin/{model_event_task_execution_metadata.go => model_flyteidlevent_task_execution_metadata.go} (96%) rename gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/{event_task_execution_metadata.py => flyteidlevent_task_execution_metadata.py} (76%) rename gen/pb_python/flyteidl/service/flyteadmin/test/{test_event_task_execution_metadata.py => test_flyteidlevent_task_execution_metadata.py} (57%) diff --git a/gen/pb-cpp/flyteidl/admin/agent.pb.cc b/gen/pb-cpp/flyteidl/admin/agent.pb.cc index a7aa79d07..3948427bc 100644 --- a/gen/pb-cpp/flyteidl/admin/agent.pb.cc +++ b/gen/pb-cpp/flyteidl/admin/agent.pb.cc @@ -16,11 +16,32 @@ // @@protoc_insertion_point(includes) #include +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fagent_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_TaskExecutionMetadata_AnnotationsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fagent_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fagent_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_TaskExecutionMetadata_LabelsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fagent_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Resource_flyteidl_2fadmin_2fagent_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fagent_2eproto ::google::protobuf::internal::SCCInfo<4> scc_info_TaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fidentifier_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_TaskExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fliterals_2eproto ::google::protobuf::internal::SCCInfo<9> scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2ftasks_2eproto ::google::protobuf::internal::SCCInfo<9> scc_info_TaskTemplate_flyteidl_2fcore_2ftasks_2eproto; namespace flyteidl { namespace admin { +class TaskExecutionMetadata_LabelsEntry_DoNotUseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _TaskExecutionMetadata_LabelsEntry_DoNotUse_default_instance_; +class TaskExecutionMetadata_AnnotationsEntry_DoNotUseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _TaskExecutionMetadata_AnnotationsEntry_DoNotUse_default_instance_; +class TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_default_instance_; +class TaskExecutionMetadataDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _TaskExecutionMetadata_default_instance_; class CreateTaskRequestDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; @@ -51,6 +72,63 @@ class DeleteTaskResponseDefaultTypeInternal { } _DeleteTaskResponse_default_instance_; } // namespace admin } // namespace flyteidl +static void InitDefaultsTaskExecutionMetadata_LabelsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_TaskExecutionMetadata_LabelsEntry_DoNotUse_default_instance_; + new (ptr) ::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse(); + } + ::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_TaskExecutionMetadata_LabelsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTaskExecutionMetadata_LabelsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto}, {}}; + +static void InitDefaultsTaskExecutionMetadata_AnnotationsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_TaskExecutionMetadata_AnnotationsEntry_DoNotUse_default_instance_; + new (ptr) ::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse(); + } + ::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_TaskExecutionMetadata_AnnotationsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTaskExecutionMetadata_AnnotationsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto}, {}}; + +static void InitDefaultsTaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_default_instance_; + new (ptr) ::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse(); + } + ::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto}, {}}; + +static void InitDefaultsTaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_TaskExecutionMetadata_default_instance_; + new (ptr) ::flyteidl::admin::TaskExecutionMetadata(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::TaskExecutionMetadata::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<4> scc_info_TaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 4, InitDefaultsTaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto}, { + &scc_info_TaskExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base, + &scc_info_TaskExecutionMetadata_LabelsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto.base, + &scc_info_TaskExecutionMetadata_AnnotationsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto.base, + &scc_info_TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto.base,}}; + static void InitDefaultsCreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -62,10 +140,11 @@ static void InitDefaultsCreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto() { ::flyteidl::admin::CreateTaskRequest::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<2> scc_info_CreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsCreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto}, { +::google::protobuf::internal::SCCInfo<3> scc_info_CreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsCreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto}, { &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base, - &scc_info_TaskTemplate_flyteidl_2fcore_2ftasks_2eproto.base,}}; + &scc_info_TaskTemplate_flyteidl_2fcore_2ftasks_2eproto.base, + &scc_info_TaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto.base,}}; static void InitDefaultsCreateTaskResponse_flyteidl_2fadmin_2fagent_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -154,6 +233,10 @@ ::google::protobuf::internal::SCCInfo<0> scc_info_DeleteTaskResponse_flyteidl_2f {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsDeleteTaskResponse_flyteidl_2fadmin_2fagent_2eproto}, {}}; void InitDefaults_flyteidl_2fadmin_2fagent_2eproto() { + ::google::protobuf::internal::InitSCC(&scc_info_TaskExecutionMetadata_LabelsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_TaskExecutionMetadata_AnnotationsEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_flyteidl_2fadmin_2fagent_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_TaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_CreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_CreateTaskResponse_flyteidl_2fadmin_2fagent_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_GetTaskRequest_flyteidl_2fadmin_2fagent_2eproto.base); @@ -163,11 +246,49 @@ void InitDefaults_flyteidl_2fadmin_2fagent_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_DeleteTaskResponse_flyteidl_2fadmin_2fagent_2eproto.base); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fagent_2eproto[7]; +::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fagent_2eproto[11]; const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fadmin_2fagent_2eproto[1]; constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fadmin_2fagent_2eproto = nullptr; const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fagent_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse, value_), + 0, + 1, + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse, _has_bits_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse, key_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse, value_), + 0, + 1, + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata, task_execution_id_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata, namespace__), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata, labels_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata, annotations_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata, k8s_service_account_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionMetadata, environment_variables_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::CreateTaskRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -176,6 +297,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fagent_2eproto::o PROTOBUF_FIELD_OFFSET(::flyteidl::admin::CreateTaskRequest, inputs_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::CreateTaskRequest, template__), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::CreateTaskRequest, output_prefix_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::CreateTaskRequest, task_execution_metadata_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::CreateTaskResponse, _internal_metadata_), ~0u, // no _extensions_ @@ -216,16 +338,24 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fagent_2eproto::o ~0u, // no _weak_field_map_ }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, -1, sizeof(::flyteidl::admin::CreateTaskRequest)}, - { 8, -1, sizeof(::flyteidl::admin::CreateTaskResponse)}, - { 14, -1, sizeof(::flyteidl::admin::GetTaskRequest)}, - { 21, -1, sizeof(::flyteidl::admin::GetTaskResponse)}, - { 27, -1, sizeof(::flyteidl::admin::Resource)}, - { 34, -1, sizeof(::flyteidl::admin::DeleteTaskRequest)}, - { 41, -1, sizeof(::flyteidl::admin::DeleteTaskResponse)}, + { 0, 7, sizeof(::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse)}, + { 9, 16, sizeof(::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse)}, + { 18, 25, sizeof(::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse)}, + { 27, -1, sizeof(::flyteidl::admin::TaskExecutionMetadata)}, + { 38, -1, sizeof(::flyteidl::admin::CreateTaskRequest)}, + { 47, -1, sizeof(::flyteidl::admin::CreateTaskResponse)}, + { 53, -1, sizeof(::flyteidl::admin::GetTaskRequest)}, + { 60, -1, sizeof(::flyteidl::admin::GetTaskResponse)}, + { 66, -1, sizeof(::flyteidl::admin::Resource)}, + { 73, -1, sizeof(::flyteidl::admin::DeleteTaskRequest)}, + { 80, -1, sizeof(::flyteidl::admin::DeleteTaskResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { + reinterpret_cast(&::flyteidl::admin::_TaskExecutionMetadata_LabelsEntry_DoNotUse_default_instance_), + reinterpret_cast(&::flyteidl::admin::_TaskExecutionMetadata_AnnotationsEntry_DoNotUse_default_instance_), + reinterpret_cast(&::flyteidl::admin::_TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_default_instance_), + reinterpret_cast(&::flyteidl::admin::_TaskExecutionMetadata_default_instance_), reinterpret_cast(&::flyteidl::admin::_CreateTaskRequest_default_instance_), reinterpret_cast(&::flyteidl::admin::_CreateTaskResponse_default_instance_), reinterpret_cast(&::flyteidl::admin::_GetTaskRequest_default_instance_), @@ -238,45 +368,62 @@ static ::google::protobuf::Message const * const file_default_instances[] = { ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fadmin_2fagent_2eproto = { {}, AddDescriptors_flyteidl_2fadmin_2fagent_2eproto, "flyteidl/admin/agent.proto", schemas, file_default_instances, TableStruct_flyteidl_2fadmin_2fagent_2eproto::offsets, - file_level_metadata_flyteidl_2fadmin_2fagent_2eproto, 7, file_level_enum_descriptors_flyteidl_2fadmin_2fagent_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fagent_2eproto, + file_level_metadata_flyteidl_2fadmin_2fagent_2eproto, 11, file_level_enum_descriptors_flyteidl_2fadmin_2fagent_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fagent_2eproto, }; const char descriptor_table_protodef_flyteidl_2fadmin_2fagent_2eproto[] = "\n\032flyteidl/admin/agent.proto\022\016flyteidl.a" "dmin\032\034flyteidl/core/literals.proto\032\031flyt" "eidl/core/tasks.proto\032\035flyteidl/core/int" - "erface.proto\"\204\001\n\021CreateTaskRequest\022)\n\006in" - "puts\030\001 \001(\0132\031.flyteidl.core.LiteralMap\022-\n" - "\010template\030\002 \001(\0132\033.flyteidl.core.TaskTemp" - "late\022\025\n\routput_prefix\030\003 \001(\t\"+\n\022CreateTas" - "kResponse\022\025\n\rresource_meta\030\001 \001(\014\":\n\016GetT" - "askRequest\022\021\n\ttask_type\030\001 \001(\t\022\025\n\rresourc" - "e_meta\030\002 \001(\014\"=\n\017GetTaskResponse\022*\n\010resou" - "rce\030\001 \001(\0132\030.flyteidl.admin.Resource\"\\\n\010R" - "esource\022$\n\005state\030\001 \001(\0162\025.flyteidl.admin." - "State\022*\n\007outputs\030\002 \001(\0132\031.flyteidl.core.L" - "iteralMap\"=\n\021DeleteTaskRequest\022\021\n\ttask_t" - "ype\030\001 \001(\t\022\025\n\rresource_meta\030\002 \001(\014\"\024\n\022Dele" - "teTaskResponse*^\n\005State\022\025\n\021RETRYABLE_FAI" - "LURE\020\000\022\025\n\021PERMANENT_FAILURE\020\001\022\013\n\007PENDING" - "\020\002\022\013\n\007RUNNING\020\003\022\r\n\tSUCCEEDED\020\004B7Z5github" - ".com/flyteorg/flyteidl/gen/pb-go/flyteid" - "l/adminb\006proto3" + "erface.proto\032\036flyteidl/core/identifier.p" + "roto\"\232\004\n\025TaskExecutionMetadata\022A\n\021task_e" + "xecution_id\030\001 \001(\0132&.flyteidl.core.TaskEx" + "ecutionIdentifier\022\021\n\tnamespace\030\002 \001(\t\022A\n\006" + "labels\030\003 \003(\01321.flyteidl.admin.TaskExecut" + "ionMetadata.LabelsEntry\022K\n\013annotations\030\004" + " \003(\01326.flyteidl.admin.TaskExecutionMetad" + "ata.AnnotationsEntry\022\033\n\023k8s_service_acco" + "unt\030\005 \001(\t\022^\n\025environment_variables\030\006 \003(\013" + "2\?.flyteidl.admin.TaskExecutionMetadata." + "EnvironmentVariablesEntry\032-\n\013LabelsEntry" + "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\0322\n\020Anno" + "tationsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t" + ":\0028\001\032;\n\031EnvironmentVariablesEntry\022\013\n\003key" + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\314\001\n\021CreateTask" + "Request\022)\n\006inputs\030\001 \001(\0132\031.flyteidl.core." + "LiteralMap\022-\n\010template\030\002 \001(\0132\033.flyteidl." + "core.TaskTemplate\022\025\n\routput_prefix\030\003 \001(\t" + "\022F\n\027task_execution_metadata\030\004 \001(\0132%.flyt" + "eidl.admin.TaskExecutionMetadata\"+\n\022Crea" + "teTaskResponse\022\025\n\rresource_meta\030\001 \001(\014\":\n" + "\016GetTaskRequest\022\021\n\ttask_type\030\001 \001(\t\022\025\n\rre" + "source_meta\030\002 \001(\014\"=\n\017GetTaskResponse\022*\n\010" + "resource\030\001 \001(\0132\030.flyteidl.admin.Resource" + "\"\\\n\010Resource\022$\n\005state\030\001 \001(\0162\025.flyteidl.a" + "dmin.State\022*\n\007outputs\030\002 \001(\0132\031.flyteidl.c" + "ore.LiteralMap\"=\n\021DeleteTaskRequest\022\021\n\tt" + "ask_type\030\001 \001(\t\022\025\n\rresource_meta\030\002 \001(\014\"\024\n" + "\022DeleteTaskResponse*^\n\005State\022\025\n\021RETRYABL" + "E_FAILURE\020\000\022\025\n\021PERMANENT_FAILURE\020\001\022\013\n\007PE" + "NDING\020\002\022\013\n\007RUNNING\020\003\022\r\n\tSUCCEEDED\020\004B7Z5g" + "ithub.com/flyteorg/flyteidl/gen/pb-go/fl" + "yteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fagent_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fagent_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fagent_2eproto, - "flyteidl/admin/agent.proto", &assign_descriptors_table_flyteidl_2fadmin_2fagent_2eproto, 775, + "flyteidl/admin/agent.proto", &assign_descriptors_table_flyteidl_2fadmin_2fagent_2eproto, 1420, }; void AddDescriptors_flyteidl_2fadmin_2fagent_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[3] = + static constexpr ::google::protobuf::internal::InitFunc deps[4] = { ::AddDescriptors_flyteidl_2fcore_2fliterals_2eproto, ::AddDescriptors_flyteidl_2fcore_2ftasks_2eproto, ::AddDescriptors_flyteidl_2fcore_2finterface_2eproto, + ::AddDescriptors_flyteidl_2fcore_2fidentifier_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fadmin_2fagent_2eproto, deps, 3); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fadmin_2fagent_2eproto, deps, 4); } // Force running AddDescriptors() at dynamic initialization time. @@ -301,6 +448,1058 @@ bool State_IsValid(int value) { } +// =================================================================== + +TaskExecutionMetadata_LabelsEntry_DoNotUse::TaskExecutionMetadata_LabelsEntry_DoNotUse() {} +TaskExecutionMetadata_LabelsEntry_DoNotUse::TaskExecutionMetadata_LabelsEntry_DoNotUse(::google::protobuf::Arena* arena) + : SuperType(arena) {} +void TaskExecutionMetadata_LabelsEntry_DoNotUse::MergeFrom(const TaskExecutionMetadata_LabelsEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::google::protobuf::Metadata TaskExecutionMetadata_LabelsEntry_DoNotUse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fagent_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fagent_2eproto[0]; +} +void TaskExecutionMetadata_LabelsEntry_DoNotUse::MergeFrom( + const ::google::protobuf::Message& other) { + ::google::protobuf::Message::MergeFrom(other); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool TaskExecutionMetadata_LabelsEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) { + using MF = ::google::protobuf::internal::MapField< + TaskExecutionMetadata_LabelsEntry_DoNotUse, EntryKeyType, EntryValueType, + kEntryKeyFieldType, kEntryValueFieldType, + kEntryDefaultEnumValue>; + auto mf = static_cast(object); + Parser> parser(mf); +#define DO_(x) if (!(x)) return false + DO_(parser.ParseMap(begin, end)); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.key().data(), static_cast(parser.key().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.key")); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.value().data(), static_cast(parser.value().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.value")); +#undef DO_ + return true; +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + + +// =================================================================== + +TaskExecutionMetadata_AnnotationsEntry_DoNotUse::TaskExecutionMetadata_AnnotationsEntry_DoNotUse() {} +TaskExecutionMetadata_AnnotationsEntry_DoNotUse::TaskExecutionMetadata_AnnotationsEntry_DoNotUse(::google::protobuf::Arena* arena) + : SuperType(arena) {} +void TaskExecutionMetadata_AnnotationsEntry_DoNotUse::MergeFrom(const TaskExecutionMetadata_AnnotationsEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::google::protobuf::Metadata TaskExecutionMetadata_AnnotationsEntry_DoNotUse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fagent_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fagent_2eproto[1]; +} +void TaskExecutionMetadata_AnnotationsEntry_DoNotUse::MergeFrom( + const ::google::protobuf::Message& other) { + ::google::protobuf::Message::MergeFrom(other); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool TaskExecutionMetadata_AnnotationsEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) { + using MF = ::google::protobuf::internal::MapField< + TaskExecutionMetadata_AnnotationsEntry_DoNotUse, EntryKeyType, EntryValueType, + kEntryKeyFieldType, kEntryValueFieldType, + kEntryDefaultEnumValue>; + auto mf = static_cast(object); + Parser> parser(mf); +#define DO_(x) if (!(x)) return false + DO_(parser.ParseMap(begin, end)); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.key().data(), static_cast(parser.key().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.key")); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.value().data(), static_cast(parser.value().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.value")); +#undef DO_ + return true; +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + + +// =================================================================== + +TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse() {} +TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse(::google::protobuf::Arena* arena) + : SuperType(arena) {} +void TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::MergeFrom(const TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse& other) { + MergeFromInternal(other); +} +::google::protobuf::Metadata TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fagent_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fagent_2eproto[2]; +} +void TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::MergeFrom( + const ::google::protobuf::Message& other) { + ::google::protobuf::Message::MergeFrom(other); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) { + using MF = ::google::protobuf::internal::MapField< + TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse, EntryKeyType, EntryValueType, + kEntryKeyFieldType, kEntryValueFieldType, + kEntryDefaultEnumValue>; + auto mf = static_cast(object); + Parser> parser(mf); +#define DO_(x) if (!(x)) return false + DO_(parser.ParseMap(begin, end)); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.key().data(), static_cast(parser.key().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.key")); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.value().data(), static_cast(parser.value().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.value")); +#undef DO_ + return true; +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + + +// =================================================================== + +void TaskExecutionMetadata::InitAsDefaultInstance() { + ::flyteidl::admin::_TaskExecutionMetadata_default_instance_._instance.get_mutable()->task_execution_id_ = const_cast< ::flyteidl::core::TaskExecutionIdentifier*>( + ::flyteidl::core::TaskExecutionIdentifier::internal_default_instance()); +} +class TaskExecutionMetadata::HasBitSetters { + public: + static const ::flyteidl::core::TaskExecutionIdentifier& task_execution_id(const TaskExecutionMetadata* msg); +}; + +const ::flyteidl::core::TaskExecutionIdentifier& +TaskExecutionMetadata::HasBitSetters::task_execution_id(const TaskExecutionMetadata* msg) { + return *msg->task_execution_id_; +} +void TaskExecutionMetadata::clear_task_execution_id() { + if (GetArenaNoVirtual() == nullptr && task_execution_id_ != nullptr) { + delete task_execution_id_; + } + task_execution_id_ = nullptr; +} +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int TaskExecutionMetadata::kTaskExecutionIdFieldNumber; +const int TaskExecutionMetadata::kNamespaceFieldNumber; +const int TaskExecutionMetadata::kLabelsFieldNumber; +const int TaskExecutionMetadata::kAnnotationsFieldNumber; +const int TaskExecutionMetadata::kK8SServiceAccountFieldNumber; +const int TaskExecutionMetadata::kEnvironmentVariablesFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +TaskExecutionMetadata::TaskExecutionMetadata() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.TaskExecutionMetadata) +} +TaskExecutionMetadata::TaskExecutionMetadata(const TaskExecutionMetadata& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + labels_.MergeFrom(from.labels_); + annotations_.MergeFrom(from.annotations_); + environment_variables_.MergeFrom(from.environment_variables_); + namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.namespace_().size() > 0) { + namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__); + } + k8s_service_account_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.k8s_service_account().size() > 0) { + k8s_service_account_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.k8s_service_account_); + } + if (from.has_task_execution_id()) { + task_execution_id_ = new ::flyteidl::core::TaskExecutionIdentifier(*from.task_execution_id_); + } else { + task_execution_id_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.TaskExecutionMetadata) +} + +void TaskExecutionMetadata::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_TaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto.base); + namespace__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + k8s_service_account_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + task_execution_id_ = nullptr; +} + +TaskExecutionMetadata::~TaskExecutionMetadata() { + // @@protoc_insertion_point(destructor:flyteidl.admin.TaskExecutionMetadata) + SharedDtor(); +} + +void TaskExecutionMetadata::SharedDtor() { + namespace__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + k8s_service_account_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (this != internal_default_instance()) delete task_execution_id_; +} + +void TaskExecutionMetadata::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const TaskExecutionMetadata& TaskExecutionMetadata::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_TaskExecutionMetadata_flyteidl_2fadmin_2fagent_2eproto.base); + return *internal_default_instance(); +} + + +void TaskExecutionMetadata::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.TaskExecutionMetadata) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + labels_.Clear(); + annotations_.Clear(); + environment_variables_.Clear(); + namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + k8s_service_account_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (GetArenaNoVirtual() == nullptr && task_execution_id_ != nullptr) { + delete task_execution_id_; + } + task_execution_id_ = nullptr; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* TaskExecutionMetadata::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::core::TaskExecutionIdentifier::_InternalParse; + object = msg->mutable_task_execution_id(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + // string namespace = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.TaskExecutionMetadata.namespace"); + object = msg->mutable_namespace_(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // map labels = 3; + case 3: { + if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual; + do { + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::google::protobuf::internal::SlowMapEntryParser; + auto parse_map = ::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse::_ParseMap; + ctx->extra_parse_data().payload.clear(); + ctx->extra_parse_data().parse_map = parse_map; + object = &msg->labels_; + if (size > end - ptr) goto len_delim_till_end; + auto newend = ptr + size; + GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx)); + ptr = newend; + if (ptr >= end) break; + } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 26 && (ptr += 1)); + break; + } + // map annotations = 4; + case 4: { + if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual; + do { + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::google::protobuf::internal::SlowMapEntryParser; + auto parse_map = ::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse::_ParseMap; + ctx->extra_parse_data().payload.clear(); + ctx->extra_parse_data().parse_map = parse_map; + object = &msg->annotations_; + if (size > end - ptr) goto len_delim_till_end; + auto newend = ptr + size; + GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx)); + ptr = newend; + if (ptr >= end) break; + } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1)); + break; + } + // string k8s_service_account = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.TaskExecutionMetadata.k8s_service_account"); + object = msg->mutable_k8s_service_account(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // map environment_variables = 6; + case 6: { + if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual; + do { + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::google::protobuf::internal::SlowMapEntryParser; + auto parse_map = ::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::_ParseMap; + ctx->extra_parse_data().payload.clear(); + ctx->extra_parse_data().parse_map = parse_map; + object = &msg->environment_variables_; + if (size > end - ptr) goto len_delim_till_end; + auto newend = ptr + size; + GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx)); + ptr = newend; + if (ptr >= end) break; + } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 50 && (ptr += 1)); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool TaskExecutionMetadata::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.TaskExecutionMetadata) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_task_execution_id())); + } else { + goto handle_unusual; + } + break; + } + + // string namespace = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_namespace_())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->namespace_().data(), static_cast(this->namespace_().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.namespace")); + } else { + goto handle_unusual; + } + break; + } + + // map labels = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + TaskExecutionMetadata_LabelsEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField< + TaskExecutionMetadata_LabelsEntry_DoNotUse, + ::std::string, ::std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + 0 >, + ::google::protobuf::Map< ::std::string, ::std::string > > parser(&labels_); + DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( + input, &parser)); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.key().data(), static_cast(parser.key().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.key")); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.value().data(), static_cast(parser.value().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.value")); + } else { + goto handle_unusual; + } + break; + } + + // map annotations = 4; + case 4: { + if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) { + TaskExecutionMetadata_AnnotationsEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField< + TaskExecutionMetadata_AnnotationsEntry_DoNotUse, + ::std::string, ::std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + 0 >, + ::google::protobuf::Map< ::std::string, ::std::string > > parser(&annotations_); + DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( + input, &parser)); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.key().data(), static_cast(parser.key().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.key")); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.value().data(), static_cast(parser.value().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.value")); + } else { + goto handle_unusual; + } + break; + } + + // string k8s_service_account = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_k8s_service_account())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->k8s_service_account().data(), static_cast(this->k8s_service_account().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.k8s_service_account")); + } else { + goto handle_unusual; + } + break; + } + + // map environment_variables = 6; + case 6: { + if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) { + TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField< + TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse, + ::std::string, ::std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + 0 >, + ::google::protobuf::Map< ::std::string, ::std::string > > parser(&environment_variables_); + DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( + input, &parser)); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.key().data(), static_cast(parser.key().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.key")); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + parser.value().data(), static_cast(parser.value().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.value")); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.TaskExecutionMetadata) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.TaskExecutionMetadata) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void TaskExecutionMetadata::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.TaskExecutionMetadata) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + if (this->has_task_execution_id()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 1, HasBitSetters::task_execution_id(this), output); + } + + // string namespace = 2; + if (this->namespace_().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->namespace_().data(), static_cast(this->namespace_().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.namespace"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 2, this->namespace_(), output); + } + + // map labels = 3; + if (!this->labels().empty()) { + typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::google::protobuf::internal::CompareByDerefFirst Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast(p->first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.key"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast(p->second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.value"); + } + }; + + if (output->IsSerializationDeterministic() && + this->labels().size() > 1) { + ::std::unique_ptr items( + new SortItem[this->labels().size()]); + typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type; + size_type n = 0; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->labels().begin(); + it != this->labels().end(); ++it, ++n) { + items[static_cast(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast(n)], Less()); + ::std::unique_ptr entry; + for (size_type i = 0; i < n; i++) { + entry.reset(labels_.NewEntryWrapper(items[static_cast(i)]->first, items[static_cast(i)]->second)); + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(3, *entry, output); + Utf8Check::Check(&(*items[static_cast(i)])); + } + } else { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->labels().begin(); + it != this->labels().end(); ++it) { + entry.reset(labels_.NewEntryWrapper(it->first, it->second)); + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(3, *entry, output); + Utf8Check::Check(&(*it)); + } + } + } + + // map annotations = 4; + if (!this->annotations().empty()) { + typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::google::protobuf::internal::CompareByDerefFirst Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast(p->first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.key"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast(p->second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.value"); + } + }; + + if (output->IsSerializationDeterministic() && + this->annotations().size() > 1) { + ::std::unique_ptr items( + new SortItem[this->annotations().size()]); + typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type; + size_type n = 0; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->annotations().begin(); + it != this->annotations().end(); ++it, ++n) { + items[static_cast(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast(n)], Less()); + ::std::unique_ptr entry; + for (size_type i = 0; i < n; i++) { + entry.reset(annotations_.NewEntryWrapper(items[static_cast(i)]->first, items[static_cast(i)]->second)); + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(4, *entry, output); + Utf8Check::Check(&(*items[static_cast(i)])); + } + } else { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->annotations().begin(); + it != this->annotations().end(); ++it) { + entry.reset(annotations_.NewEntryWrapper(it->first, it->second)); + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(4, *entry, output); + Utf8Check::Check(&(*it)); + } + } + } + + // string k8s_service_account = 5; + if (this->k8s_service_account().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->k8s_service_account().data(), static_cast(this->k8s_service_account().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.k8s_service_account"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 5, this->k8s_service_account(), output); + } + + // map environment_variables = 6; + if (!this->environment_variables().empty()) { + typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::google::protobuf::internal::CompareByDerefFirst Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast(p->first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.key"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast(p->second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.value"); + } + }; + + if (output->IsSerializationDeterministic() && + this->environment_variables().size() > 1) { + ::std::unique_ptr items( + new SortItem[this->environment_variables().size()]); + typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type; + size_type n = 0; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->environment_variables().begin(); + it != this->environment_variables().end(); ++it, ++n) { + items[static_cast(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast(n)], Less()); + ::std::unique_ptr entry; + for (size_type i = 0; i < n; i++) { + entry.reset(environment_variables_.NewEntryWrapper(items[static_cast(i)]->first, items[static_cast(i)]->second)); + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(6, *entry, output); + Utf8Check::Check(&(*items[static_cast(i)])); + } + } else { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->environment_variables().begin(); + it != this->environment_variables().end(); ++it) { + entry.reset(environment_variables_.NewEntryWrapper(it->first, it->second)); + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(6, *entry, output); + Utf8Check::Check(&(*it)); + } + } + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.TaskExecutionMetadata) +} + +::google::protobuf::uint8* TaskExecutionMetadata::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.TaskExecutionMetadata) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + if (this->has_task_execution_id()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 1, HasBitSetters::task_execution_id(this), target); + } + + // string namespace = 2; + if (this->namespace_().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->namespace_().data(), static_cast(this->namespace_().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.namespace"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 2, this->namespace_(), target); + } + + // map labels = 3; + if (!this->labels().empty()) { + typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::google::protobuf::internal::CompareByDerefFirst Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast(p->first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.key"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast(p->second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.LabelsEntry.value"); + } + }; + + if (false && + this->labels().size() > 1) { + ::std::unique_ptr items( + new SortItem[this->labels().size()]); + typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type; + size_type n = 0; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->labels().begin(); + it != this->labels().end(); ++it, ++n) { + items[static_cast(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast(n)], Less()); + ::std::unique_ptr entry; + for (size_type i = 0; i < n; i++) { + entry.reset(labels_.NewEntryWrapper(items[static_cast(i)]->first, items[static_cast(i)]->second)); + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(3, *entry, target); + Utf8Check::Check(&(*items[static_cast(i)])); + } + } else { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->labels().begin(); + it != this->labels().end(); ++it) { + entry.reset(labels_.NewEntryWrapper(it->first, it->second)); + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(3, *entry, target); + Utf8Check::Check(&(*it)); + } + } + } + + // map annotations = 4; + if (!this->annotations().empty()) { + typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::google::protobuf::internal::CompareByDerefFirst Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast(p->first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.key"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast(p->second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry.value"); + } + }; + + if (false && + this->annotations().size() > 1) { + ::std::unique_ptr items( + new SortItem[this->annotations().size()]); + typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type; + size_type n = 0; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->annotations().begin(); + it != this->annotations().end(); ++it, ++n) { + items[static_cast(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast(n)], Less()); + ::std::unique_ptr entry; + for (size_type i = 0; i < n; i++) { + entry.reset(annotations_.NewEntryWrapper(items[static_cast(i)]->first, items[static_cast(i)]->second)); + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(4, *entry, target); + Utf8Check::Check(&(*items[static_cast(i)])); + } + } else { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->annotations().begin(); + it != this->annotations().end(); ++it) { + entry.reset(annotations_.NewEntryWrapper(it->first, it->second)); + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(4, *entry, target); + Utf8Check::Check(&(*it)); + } + } + } + + // string k8s_service_account = 5; + if (this->k8s_service_account().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->k8s_service_account().data(), static_cast(this->k8s_service_account().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.k8s_service_account"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 5, this->k8s_service_account(), target); + } + + // map environment_variables = 6; + if (!this->environment_variables().empty()) { + typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer + ConstPtr; + typedef ConstPtr SortItem; + typedef ::google::protobuf::internal::CompareByDerefFirst Less; + struct Utf8Check { + static void Check(ConstPtr p) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->first.data(), static_cast(p->first.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.key"); + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + p->second.data(), static_cast(p->second.length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry.value"); + } + }; + + if (false && + this->environment_variables().size() > 1) { + ::std::unique_ptr items( + new SortItem[this->environment_variables().size()]); + typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type; + size_type n = 0; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->environment_variables().begin(); + it != this->environment_variables().end(); ++it, ++n) { + items[static_cast(n)] = SortItem(&*it); + } + ::std::sort(&items[0], &items[static_cast(n)], Less()); + ::std::unique_ptr entry; + for (size_type i = 0; i < n; i++) { + entry.reset(environment_variables_.NewEntryWrapper(items[static_cast(i)]->first, items[static_cast(i)]->second)); + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(6, *entry, target); + Utf8Check::Check(&(*items[static_cast(i)])); + } + } else { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->environment_variables().begin(); + it != this->environment_variables().end(); ++it) { + entry.reset(environment_variables_.NewEntryWrapper(it->first, it->second)); + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(6, *entry, target); + Utf8Check::Check(&(*it)); + } + } + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.TaskExecutionMetadata) + return target; +} + +size_t TaskExecutionMetadata::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.TaskExecutionMetadata) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // map labels = 3; + total_size += 1 * + ::google::protobuf::internal::FromIntSize(this->labels_size()); + { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->labels().begin(); + it != this->labels().end(); ++it) { + entry.reset(labels_.NewEntryWrapper(it->first, it->second)); + total_size += ::google::protobuf::internal::WireFormatLite:: + MessageSizeNoVirtual(*entry); + } + } + + // map annotations = 4; + total_size += 1 * + ::google::protobuf::internal::FromIntSize(this->annotations_size()); + { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->annotations().begin(); + it != this->annotations().end(); ++it) { + entry.reset(annotations_.NewEntryWrapper(it->first, it->second)); + total_size += ::google::protobuf::internal::WireFormatLite:: + MessageSizeNoVirtual(*entry); + } + } + + // map environment_variables = 6; + total_size += 1 * + ::google::protobuf::internal::FromIntSize(this->environment_variables_size()); + { + ::std::unique_ptr entry; + for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator + it = this->environment_variables().begin(); + it != this->environment_variables().end(); ++it) { + entry.reset(environment_variables_.NewEntryWrapper(it->first, it->second)); + total_size += ::google::protobuf::internal::WireFormatLite:: + MessageSizeNoVirtual(*entry); + } + } + + // string namespace = 2; + if (this->namespace_().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->namespace_()); + } + + // string k8s_service_account = 5; + if (this->k8s_service_account().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->k8s_service_account()); + } + + // .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + if (this->has_task_execution_id()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *task_execution_id_); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void TaskExecutionMetadata::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.TaskExecutionMetadata) + GOOGLE_DCHECK_NE(&from, this); + const TaskExecutionMetadata* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.TaskExecutionMetadata) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.TaskExecutionMetadata) + MergeFrom(*source); + } +} + +void TaskExecutionMetadata::MergeFrom(const TaskExecutionMetadata& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.TaskExecutionMetadata) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + labels_.MergeFrom(from.labels_); + annotations_.MergeFrom(from.annotations_); + environment_variables_.MergeFrom(from.environment_variables_); + if (from.namespace_().size() > 0) { + + namespace__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.namespace__); + } + if (from.k8s_service_account().size() > 0) { + + k8s_service_account_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.k8s_service_account_); + } + if (from.has_task_execution_id()) { + mutable_task_execution_id()->::flyteidl::core::TaskExecutionIdentifier::MergeFrom(from.task_execution_id()); + } +} + +void TaskExecutionMetadata::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.TaskExecutionMetadata) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void TaskExecutionMetadata::CopyFrom(const TaskExecutionMetadata& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.TaskExecutionMetadata) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool TaskExecutionMetadata::IsInitialized() const { + return true; +} + +void TaskExecutionMetadata::Swap(TaskExecutionMetadata* other) { + if (other == this) return; + InternalSwap(other); +} +void TaskExecutionMetadata::InternalSwap(TaskExecutionMetadata* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + labels_.Swap(&other->labels_); + annotations_.Swap(&other->annotations_); + environment_variables_.Swap(&other->environment_variables_); + namespace__.Swap(&other->namespace__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + k8s_service_account_.Swap(&other->k8s_service_account_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(task_execution_id_, other->task_execution_id_); +} + +::google::protobuf::Metadata TaskExecutionMetadata::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fagent_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fagent_2eproto[kIndexInFileMessages]; +} + + // =================================================================== void CreateTaskRequest::InitAsDefaultInstance() { @@ -308,11 +1507,14 @@ void CreateTaskRequest::InitAsDefaultInstance() { ::flyteidl::core::LiteralMap::internal_default_instance()); ::flyteidl::admin::_CreateTaskRequest_default_instance_._instance.get_mutable()->template__ = const_cast< ::flyteidl::core::TaskTemplate*>( ::flyteidl::core::TaskTemplate::internal_default_instance()); + ::flyteidl::admin::_CreateTaskRequest_default_instance_._instance.get_mutable()->task_execution_metadata_ = const_cast< ::flyteidl::admin::TaskExecutionMetadata*>( + ::flyteidl::admin::TaskExecutionMetadata::internal_default_instance()); } class CreateTaskRequest::HasBitSetters { public: static const ::flyteidl::core::LiteralMap& inputs(const CreateTaskRequest* msg); static const ::flyteidl::core::TaskTemplate& template_(const CreateTaskRequest* msg); + static const ::flyteidl::admin::TaskExecutionMetadata& task_execution_metadata(const CreateTaskRequest* msg); }; const ::flyteidl::core::LiteralMap& @@ -323,6 +1525,10 @@ const ::flyteidl::core::TaskTemplate& CreateTaskRequest::HasBitSetters::template_(const CreateTaskRequest* msg) { return *msg->template__; } +const ::flyteidl::admin::TaskExecutionMetadata& +CreateTaskRequest::HasBitSetters::task_execution_metadata(const CreateTaskRequest* msg) { + return *msg->task_execution_metadata_; +} void CreateTaskRequest::clear_inputs() { if (GetArenaNoVirtual() == nullptr && inputs_ != nullptr) { delete inputs_; @@ -339,6 +1545,7 @@ void CreateTaskRequest::clear_template_() { const int CreateTaskRequest::kInputsFieldNumber; const int CreateTaskRequest::kTemplateFieldNumber; const int CreateTaskRequest::kOutputPrefixFieldNumber; +const int CreateTaskRequest::kTaskExecutionMetadataFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 CreateTaskRequest::CreateTaskRequest() @@ -364,6 +1571,11 @@ CreateTaskRequest::CreateTaskRequest(const CreateTaskRequest& from) } else { template__ = nullptr; } + if (from.has_task_execution_metadata()) { + task_execution_metadata_ = new ::flyteidl::admin::TaskExecutionMetadata(*from.task_execution_metadata_); + } else { + task_execution_metadata_ = nullptr; + } // @@protoc_insertion_point(copy_constructor:flyteidl.admin.CreateTaskRequest) } @@ -372,8 +1584,8 @@ void CreateTaskRequest::SharedCtor() { &scc_info_CreateTaskRequest_flyteidl_2fadmin_2fagent_2eproto.base); output_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); ::memset(&inputs_, 0, static_cast( - reinterpret_cast(&template__) - - reinterpret_cast(&inputs_)) + sizeof(template__)); + reinterpret_cast(&task_execution_metadata_) - + reinterpret_cast(&inputs_)) + sizeof(task_execution_metadata_)); } CreateTaskRequest::~CreateTaskRequest() { @@ -385,6 +1597,7 @@ void CreateTaskRequest::SharedDtor() { output_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete inputs_; if (this != internal_default_instance()) delete template__; + if (this != internal_default_instance()) delete task_execution_metadata_; } void CreateTaskRequest::SetCachedSize(int size) const { @@ -411,6 +1624,10 @@ void CreateTaskRequest::Clear() { delete template__; } template__ = nullptr; + if (GetArenaNoVirtual() == nullptr && task_execution_metadata_ != nullptr) { + delete task_execution_metadata_; + } + task_execution_metadata_ = nullptr; _internal_metadata_.Clear(); } @@ -469,6 +1686,19 @@ const char* CreateTaskRequest::_InternalParse(const char* begin, const char* end ptr += size; break; } + // .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + case 4: { + if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::TaskExecutionMetadata::_InternalParse; + object = msg->mutable_task_execution_metadata(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -540,6 +1770,17 @@ bool CreateTaskRequest::MergePartialFromCodedStream( break; } + // .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + case 4: { + if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_task_execution_metadata())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -589,6 +1830,12 @@ void CreateTaskRequest::SerializeWithCachedSizes( 3, this->output_prefix(), output); } + // .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + if (this->has_task_execution_metadata()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 4, HasBitSetters::task_execution_metadata(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -627,6 +1874,13 @@ ::google::protobuf::uint8* CreateTaskRequest::InternalSerializeWithCachedSizesTo 3, this->output_prefix(), target); } + // .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + if (this->has_task_execution_metadata()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 4, HasBitSetters::task_execution_metadata(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -669,6 +1923,13 @@ size_t CreateTaskRequest::ByteSizeLong() const { *template__); } + // .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + if (this->has_task_execution_metadata()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *task_execution_metadata_); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -706,6 +1967,9 @@ void CreateTaskRequest::MergeFrom(const CreateTaskRequest& from) { if (from.has_template_()) { mutable_template_()->::flyteidl::core::TaskTemplate::MergeFrom(from.template_()); } + if (from.has_task_execution_metadata()) { + mutable_task_execution_metadata()->::flyteidl::admin::TaskExecutionMetadata::MergeFrom(from.task_execution_metadata()); + } } void CreateTaskRequest::CopyFrom(const ::google::protobuf::Message& from) { @@ -737,6 +2001,7 @@ void CreateTaskRequest::InternalSwap(CreateTaskRequest* other) { GetArenaNoVirtual()); swap(inputs_, other->inputs_); swap(template__, other->template__); + swap(task_execution_metadata_, other->task_execution_metadata_); } ::google::protobuf::Metadata CreateTaskRequest::GetMetadata() const { @@ -2586,6 +3851,18 @@ ::google::protobuf::Metadata DeleteTaskResponse::GetMetadata() const { } // namespace flyteidl namespace google { namespace protobuf { +template<> PROTOBUF_NOINLINE ::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse* Arena::CreateMaybeMessage< ::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse* Arena::CreateMaybeMessage< ::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse* Arena::CreateMaybeMessage< ::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::TaskExecutionMetadata* Arena::CreateMaybeMessage< ::flyteidl::admin::TaskExecutionMetadata >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::TaskExecutionMetadata >(arena); +} template<> PROTOBUF_NOINLINE ::flyteidl::admin::CreateTaskRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::CreateTaskRequest >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::CreateTaskRequest >(arena); } diff --git a/gen/pb-cpp/flyteidl/admin/agent.pb.h b/gen/pb-cpp/flyteidl/admin/agent.pb.h index d4fe2df8a..5ee08079f 100644 --- a/gen/pb-cpp/flyteidl/admin/agent.pb.h +++ b/gen/pb-cpp/flyteidl/admin/agent.pb.h @@ -30,11 +30,15 @@ #include #include // IWYU pragma: export #include // IWYU pragma: export +#include // IWYU pragma: export +#include +#include #include #include #include "flyteidl/core/literals.pb.h" #include "flyteidl/core/tasks.pb.h" #include "flyteidl/core/interface.pb.h" +#include "flyteidl/core/identifier.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fagent_2eproto @@ -45,7 +49,7 @@ struct TableStruct_flyteidl_2fadmin_2fagent_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::google::protobuf::internal::ParseTable schema[7] + static const ::google::protobuf::internal::ParseTable schema[11] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::FieldMetadata field_metadata[]; static const ::google::protobuf::internal::SerializationTable serialization_table[]; @@ -75,6 +79,18 @@ extern GetTaskResponseDefaultTypeInternal _GetTaskResponse_default_instance_; class Resource; class ResourceDefaultTypeInternal; extern ResourceDefaultTypeInternal _Resource_default_instance_; +class TaskExecutionMetadata; +class TaskExecutionMetadataDefaultTypeInternal; +extern TaskExecutionMetadataDefaultTypeInternal _TaskExecutionMetadata_default_instance_; +class TaskExecutionMetadata_AnnotationsEntry_DoNotUse; +class TaskExecutionMetadata_AnnotationsEntry_DoNotUseDefaultTypeInternal; +extern TaskExecutionMetadata_AnnotationsEntry_DoNotUseDefaultTypeInternal _TaskExecutionMetadata_AnnotationsEntry_DoNotUse_default_instance_; +class TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse; +class TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUseDefaultTypeInternal; +extern TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUseDefaultTypeInternal _TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_default_instance_; +class TaskExecutionMetadata_LabelsEntry_DoNotUse; +class TaskExecutionMetadata_LabelsEntry_DoNotUseDefaultTypeInternal; +extern TaskExecutionMetadata_LabelsEntry_DoNotUseDefaultTypeInternal _TaskExecutionMetadata_LabelsEntry_DoNotUse_default_instance_; } // namespace admin } // namespace flyteidl namespace google { @@ -86,6 +102,10 @@ template<> ::flyteidl::admin::DeleteTaskResponse* Arena::CreateMaybeMessage<::fl template<> ::flyteidl::admin::GetTaskRequest* Arena::CreateMaybeMessage<::flyteidl::admin::GetTaskRequest>(Arena*); template<> ::flyteidl::admin::GetTaskResponse* Arena::CreateMaybeMessage<::flyteidl::admin::GetTaskResponse>(Arena*); template<> ::flyteidl::admin::Resource* Arena::CreateMaybeMessage<::flyteidl::admin::Resource>(Arena*); +template<> ::flyteidl::admin::TaskExecutionMetadata* Arena::CreateMaybeMessage<::flyteidl::admin::TaskExecutionMetadata>(Arena*); +template<> ::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse* Arena::CreateMaybeMessage<::flyteidl::admin::TaskExecutionMetadata_AnnotationsEntry_DoNotUse>(Arena*); +template<> ::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse* Arena::CreateMaybeMessage<::flyteidl::admin::TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse>(Arena*); +template<> ::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse* Arena::CreateMaybeMessage<::flyteidl::admin::TaskExecutionMetadata_LabelsEntry_DoNotUse>(Arena*); } // namespace protobuf } // namespace google namespace flyteidl { @@ -117,6 +137,269 @@ inline bool State_Parse( } // =================================================================== +class TaskExecutionMetadata_LabelsEntry_DoNotUse : public ::google::protobuf::internal::MapEntry { +public: +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +static bool _ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + typedef ::google::protobuf::internal::MapEntry SuperType; + TaskExecutionMetadata_LabelsEntry_DoNotUse(); + TaskExecutionMetadata_LabelsEntry_DoNotUse(::google::protobuf::Arena* arena); + void MergeFrom(const TaskExecutionMetadata_LabelsEntry_DoNotUse& other); + static const TaskExecutionMetadata_LabelsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast(&_TaskExecutionMetadata_LabelsEntry_DoNotUse_default_instance_); } + void MergeFrom(const ::google::protobuf::Message& other) final; + ::google::protobuf::Metadata GetMetadata() const; +}; + +// ------------------------------------------------------------------- + +class TaskExecutionMetadata_AnnotationsEntry_DoNotUse : public ::google::protobuf::internal::MapEntry { +public: +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +static bool _ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + typedef ::google::protobuf::internal::MapEntry SuperType; + TaskExecutionMetadata_AnnotationsEntry_DoNotUse(); + TaskExecutionMetadata_AnnotationsEntry_DoNotUse(::google::protobuf::Arena* arena); + void MergeFrom(const TaskExecutionMetadata_AnnotationsEntry_DoNotUse& other); + static const TaskExecutionMetadata_AnnotationsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast(&_TaskExecutionMetadata_AnnotationsEntry_DoNotUse_default_instance_); } + void MergeFrom(const ::google::protobuf::Message& other) final; + ::google::protobuf::Metadata GetMetadata() const; +}; + +// ------------------------------------------------------------------- + +class TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse : public ::google::protobuf::internal::MapEntry { +public: +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +static bool _ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + typedef ::google::protobuf::internal::MapEntry SuperType; + TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse(); + TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse(::google::protobuf::Arena* arena); + void MergeFrom(const TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse& other); + static const TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast(&_TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse_default_instance_); } + void MergeFrom(const ::google::protobuf::Message& other) final; + ::google::protobuf::Metadata GetMetadata() const; +}; + +// ------------------------------------------------------------------- + +class TaskExecutionMetadata final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.TaskExecutionMetadata) */ { + public: + TaskExecutionMetadata(); + virtual ~TaskExecutionMetadata(); + + TaskExecutionMetadata(const TaskExecutionMetadata& from); + + inline TaskExecutionMetadata& operator=(const TaskExecutionMetadata& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + TaskExecutionMetadata(TaskExecutionMetadata&& from) noexcept + : TaskExecutionMetadata() { + *this = ::std::move(from); + } + + inline TaskExecutionMetadata& operator=(TaskExecutionMetadata&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const TaskExecutionMetadata& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const TaskExecutionMetadata* internal_default_instance() { + return reinterpret_cast( + &_TaskExecutionMetadata_default_instance_); + } + static constexpr int kIndexInFileMessages = + 3; + + void Swap(TaskExecutionMetadata* other); + friend void swap(TaskExecutionMetadata& a, TaskExecutionMetadata& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline TaskExecutionMetadata* New() const final { + return CreateMaybeMessage(nullptr); + } + + TaskExecutionMetadata* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const TaskExecutionMetadata& from); + void MergeFrom(const TaskExecutionMetadata& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(TaskExecutionMetadata* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + + // accessors ------------------------------------------------------- + + // map labels = 3; + int labels_size() const; + void clear_labels(); + static const int kLabelsFieldNumber = 3; + const ::google::protobuf::Map< ::std::string, ::std::string >& + labels() const; + ::google::protobuf::Map< ::std::string, ::std::string >* + mutable_labels(); + + // map annotations = 4; + int annotations_size() const; + void clear_annotations(); + static const int kAnnotationsFieldNumber = 4; + const ::google::protobuf::Map< ::std::string, ::std::string >& + annotations() const; + ::google::protobuf::Map< ::std::string, ::std::string >* + mutable_annotations(); + + // map environment_variables = 6; + int environment_variables_size() const; + void clear_environment_variables(); + static const int kEnvironmentVariablesFieldNumber = 6; + const ::google::protobuf::Map< ::std::string, ::std::string >& + environment_variables() const; + ::google::protobuf::Map< ::std::string, ::std::string >* + mutable_environment_variables(); + + // string namespace = 2; + void clear_namespace_(); + static const int kNamespaceFieldNumber = 2; + const ::std::string& namespace_() const; + void set_namespace_(const ::std::string& value); + #if LANG_CXX11 + void set_namespace_(::std::string&& value); + #endif + void set_namespace_(const char* value); + void set_namespace_(const char* value, size_t size); + ::std::string* mutable_namespace_(); + ::std::string* release_namespace_(); + void set_allocated_namespace_(::std::string* namespace_); + + // string k8s_service_account = 5; + void clear_k8s_service_account(); + static const int kK8SServiceAccountFieldNumber = 5; + const ::std::string& k8s_service_account() const; + void set_k8s_service_account(const ::std::string& value); + #if LANG_CXX11 + void set_k8s_service_account(::std::string&& value); + #endif + void set_k8s_service_account(const char* value); + void set_k8s_service_account(const char* value, size_t size); + ::std::string* mutable_k8s_service_account(); + ::std::string* release_k8s_service_account(); + void set_allocated_k8s_service_account(::std::string* k8s_service_account); + + // .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + bool has_task_execution_id() const; + void clear_task_execution_id(); + static const int kTaskExecutionIdFieldNumber = 1; + const ::flyteidl::core::TaskExecutionIdentifier& task_execution_id() const; + ::flyteidl::core::TaskExecutionIdentifier* release_task_execution_id(); + ::flyteidl::core::TaskExecutionIdentifier* mutable_task_execution_id(); + void set_allocated_task_execution_id(::flyteidl::core::TaskExecutionIdentifier* task_execution_id); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.TaskExecutionMetadata) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::MapField< + TaskExecutionMetadata_LabelsEntry_DoNotUse, + ::std::string, ::std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + 0 > labels_; + ::google::protobuf::internal::MapField< + TaskExecutionMetadata_AnnotationsEntry_DoNotUse, + ::std::string, ::std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + 0 > annotations_; + ::google::protobuf::internal::MapField< + TaskExecutionMetadata_EnvironmentVariablesEntry_DoNotUse, + ::std::string, ::std::string, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + ::google::protobuf::internal::WireFormatLite::TYPE_STRING, + 0 > environment_variables_; + ::google::protobuf::internal::ArenaStringPtr namespace__; + ::google::protobuf::internal::ArenaStringPtr k8s_service_account_; + ::flyteidl::core::TaskExecutionIdentifier* task_execution_id_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fagent_2eproto; +}; +// ------------------------------------------------------------------- + class CreateTaskRequest final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.CreateTaskRequest) */ { public: @@ -155,7 +438,7 @@ class CreateTaskRequest final : &_CreateTaskRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 0; + 4; void Swap(CreateTaskRequest* other); friend void swap(CreateTaskRequest& a, CreateTaskRequest& b) { @@ -244,6 +527,15 @@ class CreateTaskRequest final : ::flyteidl::core::TaskTemplate* mutable_template_(); void set_allocated_template_(::flyteidl::core::TaskTemplate* template_); + // .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + bool has_task_execution_metadata() const; + void clear_task_execution_metadata(); + static const int kTaskExecutionMetadataFieldNumber = 4; + const ::flyteidl::admin::TaskExecutionMetadata& task_execution_metadata() const; + ::flyteidl::admin::TaskExecutionMetadata* release_task_execution_metadata(); + ::flyteidl::admin::TaskExecutionMetadata* mutable_task_execution_metadata(); + void set_allocated_task_execution_metadata(::flyteidl::admin::TaskExecutionMetadata* task_execution_metadata); + // @@protoc_insertion_point(class_scope:flyteidl.admin.CreateTaskRequest) private: class HasBitSetters; @@ -252,6 +544,7 @@ class CreateTaskRequest final : ::google::protobuf::internal::ArenaStringPtr output_prefix_; ::flyteidl::core::LiteralMap* inputs_; ::flyteidl::core::TaskTemplate* template__; + ::flyteidl::admin::TaskExecutionMetadata* task_execution_metadata_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fagent_2eproto; }; @@ -295,7 +588,7 @@ class CreateTaskResponse final : &_CreateTaskResponse_default_instance_); } static constexpr int kIndexInFileMessages = - 1; + 5; void Swap(CreateTaskResponse* other); friend void swap(CreateTaskResponse& a, CreateTaskResponse& b) { @@ -415,7 +708,7 @@ class GetTaskRequest final : &_GetTaskRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 2; + 6; void Swap(GetTaskRequest* other); friend void swap(GetTaskRequest& a, GetTaskRequest& b) { @@ -550,7 +843,7 @@ class GetTaskResponse final : &_GetTaskResponse_default_instance_); } static constexpr int kIndexInFileMessages = - 3; + 7; void Swap(GetTaskResponse* other); friend void swap(GetTaskResponse& a, GetTaskResponse& b) { @@ -665,7 +958,7 @@ class Resource final : &_Resource_default_instance_); } static constexpr int kIndexInFileMessages = - 4; + 8; void Swap(Resource* other); friend void swap(Resource& a, Resource& b) { @@ -787,7 +1080,7 @@ class DeleteTaskRequest final : &_DeleteTaskRequest_default_instance_); } static constexpr int kIndexInFileMessages = - 5; + 9; void Swap(DeleteTaskRequest* other); friend void swap(DeleteTaskRequest& a, DeleteTaskRequest& b) { @@ -922,7 +1215,7 @@ class DeleteTaskResponse final : &_DeleteTaskResponse_default_instance_); } static constexpr int kIndexInFileMessages = - 6; + 10; void Swap(DeleteTaskResponse* other); friend void swap(DeleteTaskResponse& a, DeleteTaskResponse& b) { @@ -996,6 +1289,221 @@ class DeleteTaskResponse final : #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-aliasing" #endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// TaskExecutionMetadata + +// .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; +inline bool TaskExecutionMetadata::has_task_execution_id() const { + return this != internal_default_instance() && task_execution_id_ != nullptr; +} +inline const ::flyteidl::core::TaskExecutionIdentifier& TaskExecutionMetadata::task_execution_id() const { + const ::flyteidl::core::TaskExecutionIdentifier* p = task_execution_id_; + // @@protoc_insertion_point(field_get:flyteidl.admin.TaskExecutionMetadata.task_execution_id) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::core::_TaskExecutionIdentifier_default_instance_); +} +inline ::flyteidl::core::TaskExecutionIdentifier* TaskExecutionMetadata::release_task_execution_id() { + // @@protoc_insertion_point(field_release:flyteidl.admin.TaskExecutionMetadata.task_execution_id) + + ::flyteidl::core::TaskExecutionIdentifier* temp = task_execution_id_; + task_execution_id_ = nullptr; + return temp; +} +inline ::flyteidl::core::TaskExecutionIdentifier* TaskExecutionMetadata::mutable_task_execution_id() { + + if (task_execution_id_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::core::TaskExecutionIdentifier>(GetArenaNoVirtual()); + task_execution_id_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.TaskExecutionMetadata.task_execution_id) + return task_execution_id_; +} +inline void TaskExecutionMetadata::set_allocated_task_execution_id(::flyteidl::core::TaskExecutionIdentifier* task_execution_id) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(task_execution_id_); + } + if (task_execution_id) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + task_execution_id = ::google::protobuf::internal::GetOwnedMessage( + message_arena, task_execution_id, submessage_arena); + } + + } else { + + } + task_execution_id_ = task_execution_id; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.TaskExecutionMetadata.task_execution_id) +} + +// string namespace = 2; +inline void TaskExecutionMetadata::clear_namespace_() { + namespace__.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& TaskExecutionMetadata::namespace_() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.TaskExecutionMetadata.namespace) + return namespace__.GetNoArena(); +} +inline void TaskExecutionMetadata::set_namespace_(const ::std::string& value) { + + namespace__.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.TaskExecutionMetadata.namespace) +} +#if LANG_CXX11 +inline void TaskExecutionMetadata::set_namespace_(::std::string&& value) { + + namespace__.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.TaskExecutionMetadata.namespace) +} +#endif +inline void TaskExecutionMetadata::set_namespace_(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + namespace__.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.TaskExecutionMetadata.namespace) +} +inline void TaskExecutionMetadata::set_namespace_(const char* value, size_t size) { + + namespace__.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.TaskExecutionMetadata.namespace) +} +inline ::std::string* TaskExecutionMetadata::mutable_namespace_() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.TaskExecutionMetadata.namespace) + return namespace__.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* TaskExecutionMetadata::release_namespace_() { + // @@protoc_insertion_point(field_release:flyteidl.admin.TaskExecutionMetadata.namespace) + + return namespace__.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void TaskExecutionMetadata::set_allocated_namespace_(::std::string* namespace_) { + if (namespace_ != nullptr) { + + } else { + + } + namespace__.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), namespace_); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.TaskExecutionMetadata.namespace) +} + +// map labels = 3; +inline int TaskExecutionMetadata::labels_size() const { + return labels_.size(); +} +inline void TaskExecutionMetadata::clear_labels() { + labels_.Clear(); +} +inline const ::google::protobuf::Map< ::std::string, ::std::string >& +TaskExecutionMetadata::labels() const { + // @@protoc_insertion_point(field_map:flyteidl.admin.TaskExecutionMetadata.labels) + return labels_.GetMap(); +} +inline ::google::protobuf::Map< ::std::string, ::std::string >* +TaskExecutionMetadata::mutable_labels() { + // @@protoc_insertion_point(field_mutable_map:flyteidl.admin.TaskExecutionMetadata.labels) + return labels_.MutableMap(); +} + +// map annotations = 4; +inline int TaskExecutionMetadata::annotations_size() const { + return annotations_.size(); +} +inline void TaskExecutionMetadata::clear_annotations() { + annotations_.Clear(); +} +inline const ::google::protobuf::Map< ::std::string, ::std::string >& +TaskExecutionMetadata::annotations() const { + // @@protoc_insertion_point(field_map:flyteidl.admin.TaskExecutionMetadata.annotations) + return annotations_.GetMap(); +} +inline ::google::protobuf::Map< ::std::string, ::std::string >* +TaskExecutionMetadata::mutable_annotations() { + // @@protoc_insertion_point(field_mutable_map:flyteidl.admin.TaskExecutionMetadata.annotations) + return annotations_.MutableMap(); +} + +// string k8s_service_account = 5; +inline void TaskExecutionMetadata::clear_k8s_service_account() { + k8s_service_account_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& TaskExecutionMetadata::k8s_service_account() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) + return k8s_service_account_.GetNoArena(); +} +inline void TaskExecutionMetadata::set_k8s_service_account(const ::std::string& value) { + + k8s_service_account_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) +} +#if LANG_CXX11 +inline void TaskExecutionMetadata::set_k8s_service_account(::std::string&& value) { + + k8s_service_account_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) +} +#endif +inline void TaskExecutionMetadata::set_k8s_service_account(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + k8s_service_account_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) +} +inline void TaskExecutionMetadata::set_k8s_service_account(const char* value, size_t size) { + + k8s_service_account_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) +} +inline ::std::string* TaskExecutionMetadata::mutable_k8s_service_account() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) + return k8s_service_account_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* TaskExecutionMetadata::release_k8s_service_account() { + // @@protoc_insertion_point(field_release:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) + + return k8s_service_account_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void TaskExecutionMetadata::set_allocated_k8s_service_account(::std::string* k8s_service_account) { + if (k8s_service_account != nullptr) { + + } else { + + } + k8s_service_account_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), k8s_service_account); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.TaskExecutionMetadata.k8s_service_account) +} + +// map environment_variables = 6; +inline int TaskExecutionMetadata::environment_variables_size() const { + return environment_variables_.size(); +} +inline void TaskExecutionMetadata::clear_environment_variables() { + environment_variables_.Clear(); +} +inline const ::google::protobuf::Map< ::std::string, ::std::string >& +TaskExecutionMetadata::environment_variables() const { + // @@protoc_insertion_point(field_map:flyteidl.admin.TaskExecutionMetadata.environment_variables) + return environment_variables_.GetMap(); +} +inline ::google::protobuf::Map< ::std::string, ::std::string >* +TaskExecutionMetadata::mutable_environment_variables() { + // @@protoc_insertion_point(field_mutable_map:flyteidl.admin.TaskExecutionMetadata.environment_variables) + return environment_variables_.MutableMap(); +} + +// ------------------------------------------------------------------- + // CreateTaskRequest // .flyteidl.core.LiteralMap inputs = 1; @@ -1141,6 +1649,57 @@ inline void CreateTaskRequest::set_allocated_output_prefix(::std::string* output // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.CreateTaskRequest.output_prefix) } +// .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; +inline bool CreateTaskRequest::has_task_execution_metadata() const { + return this != internal_default_instance() && task_execution_metadata_ != nullptr; +} +inline void CreateTaskRequest::clear_task_execution_metadata() { + if (GetArenaNoVirtual() == nullptr && task_execution_metadata_ != nullptr) { + delete task_execution_metadata_; + } + task_execution_metadata_ = nullptr; +} +inline const ::flyteidl::admin::TaskExecutionMetadata& CreateTaskRequest::task_execution_metadata() const { + const ::flyteidl::admin::TaskExecutionMetadata* p = task_execution_metadata_; + // @@protoc_insertion_point(field_get:flyteidl.admin.CreateTaskRequest.task_execution_metadata) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_TaskExecutionMetadata_default_instance_); +} +inline ::flyteidl::admin::TaskExecutionMetadata* CreateTaskRequest::release_task_execution_metadata() { + // @@protoc_insertion_point(field_release:flyteidl.admin.CreateTaskRequest.task_execution_metadata) + + ::flyteidl::admin::TaskExecutionMetadata* temp = task_execution_metadata_; + task_execution_metadata_ = nullptr; + return temp; +} +inline ::flyteidl::admin::TaskExecutionMetadata* CreateTaskRequest::mutable_task_execution_metadata() { + + if (task_execution_metadata_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::TaskExecutionMetadata>(GetArenaNoVirtual()); + task_execution_metadata_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.CreateTaskRequest.task_execution_metadata) + return task_execution_metadata_; +} +inline void CreateTaskRequest::set_allocated_task_execution_metadata(::flyteidl::admin::TaskExecutionMetadata* task_execution_metadata) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete task_execution_metadata_; + } + if (task_execution_metadata) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + task_execution_metadata = ::google::protobuf::internal::GetOwnedMessage( + message_arena, task_execution_metadata, submessage_arena); + } + + } else { + + } + task_execution_metadata_ = task_execution_metadata; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.CreateTaskRequest.task_execution_metadata) +} + // ------------------------------------------------------------------- // CreateTaskResponse @@ -1555,6 +2114,14 @@ inline void DeleteTaskRequest::set_allocated_resource_meta(::std::string* resour // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/gen/pb-go/flyteidl/admin/agent.pb.go b/gen/pb-go/flyteidl/admin/agent.pb.go index 89448da47..21152a7c9 100644 --- a/gen/pb-go/flyteidl/admin/agent.pb.go +++ b/gen/pb-go/flyteidl/admin/agent.pb.go @@ -56,6 +56,92 @@ func (State) EnumDescriptor() ([]byte, []int) { return fileDescriptor_c434e52bb0028071, []int{0} } +// Represents a subset of runtime task execution metadata that are relevant to external plugins. +type TaskExecutionMetadata struct { + // ID of the task execution + TaskExecutionId *core.TaskExecutionIdentifier `protobuf:"bytes,1,opt,name=task_execution_id,json=taskExecutionId,proto3" json:"task_execution_id,omitempty"` + // k8s namespace where the task is executed in + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + // Labels attached to the task execution + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations attached to the task execution + Annotations map[string]string `protobuf:"bytes,4,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // k8s service account associated with the task execution + K8SServiceAccount string `protobuf:"bytes,5,opt,name=k8s_service_account,json=k8sServiceAccount,proto3" json:"k8s_service_account,omitempty"` + // Environment variables attached to the task execution + EnvironmentVariables map[string]string `protobuf:"bytes,6,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskExecutionMetadata) Reset() { *m = TaskExecutionMetadata{} } +func (m *TaskExecutionMetadata) String() string { return proto.CompactTextString(m) } +func (*TaskExecutionMetadata) ProtoMessage() {} +func (*TaskExecutionMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_c434e52bb0028071, []int{0} +} + +func (m *TaskExecutionMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskExecutionMetadata.Unmarshal(m, b) +} +func (m *TaskExecutionMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskExecutionMetadata.Marshal(b, m, deterministic) +} +func (m *TaskExecutionMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskExecutionMetadata.Merge(m, src) +} +func (m *TaskExecutionMetadata) XXX_Size() int { + return xxx_messageInfo_TaskExecutionMetadata.Size(m) +} +func (m *TaskExecutionMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_TaskExecutionMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskExecutionMetadata proto.InternalMessageInfo + +func (m *TaskExecutionMetadata) GetTaskExecutionId() *core.TaskExecutionIdentifier { + if m != nil { + return m.TaskExecutionId + } + return nil +} + +func (m *TaskExecutionMetadata) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *TaskExecutionMetadata) GetLabels() map[string]string { + if m != nil { + return m.Labels + } + return nil +} + +func (m *TaskExecutionMetadata) GetAnnotations() map[string]string { + if m != nil { + return m.Annotations + } + return nil +} + +func (m *TaskExecutionMetadata) GetK8SServiceAccount() string { + if m != nil { + return m.K8SServiceAccount + } + return "" +} + +func (m *TaskExecutionMetadata) GetEnvironmentVariables() map[string]string { + if m != nil { + return m.EnvironmentVariables + } + return nil +} + // Represents a request structure to create task. type CreateTaskRequest struct { // The inputs required to start the execution. All required inputs must be @@ -65,17 +151,19 @@ type CreateTaskRequest struct { // Template of the task that encapsulates all the metadata of the task. Template *core.TaskTemplate `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` // Prefix for where task output data will be written. (e.g. s3://my-bucket/randomstring) - OutputPrefix string `protobuf:"bytes,3,opt,name=output_prefix,json=outputPrefix,proto3" json:"output_prefix,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OutputPrefix string `protobuf:"bytes,3,opt,name=output_prefix,json=outputPrefix,proto3" json:"output_prefix,omitempty"` + // subset of runtime task execution metadata. + TaskExecutionMetadata *TaskExecutionMetadata `protobuf:"bytes,4,opt,name=task_execution_metadata,json=taskExecutionMetadata,proto3" json:"task_execution_metadata,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CreateTaskRequest) Reset() { *m = CreateTaskRequest{} } func (m *CreateTaskRequest) String() string { return proto.CompactTextString(m) } func (*CreateTaskRequest) ProtoMessage() {} func (*CreateTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c434e52bb0028071, []int{0} + return fileDescriptor_c434e52bb0028071, []int{1} } func (m *CreateTaskRequest) XXX_Unmarshal(b []byte) error { @@ -117,6 +205,13 @@ func (m *CreateTaskRequest) GetOutputPrefix() string { return "" } +func (m *CreateTaskRequest) GetTaskExecutionMetadata() *TaskExecutionMetadata { + if m != nil { + return m.TaskExecutionMetadata + } + return nil +} + // Represents a create response structure. type CreateTaskResponse struct { // Metadata is created by the agent. It could be a string (jobId) or a dict (more complex metadata). @@ -130,7 +225,7 @@ func (m *CreateTaskResponse) Reset() { *m = CreateTaskResponse{} } func (m *CreateTaskResponse) String() string { return proto.CompactTextString(m) } func (*CreateTaskResponse) ProtoMessage() {} func (*CreateTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c434e52bb0028071, []int{1} + return fileDescriptor_c434e52bb0028071, []int{2} } func (m *CreateTaskResponse) XXX_Unmarshal(b []byte) error { @@ -173,7 +268,7 @@ func (m *GetTaskRequest) Reset() { *m = GetTaskRequest{} } func (m *GetTaskRequest) String() string { return proto.CompactTextString(m) } func (*GetTaskRequest) ProtoMessage() {} func (*GetTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c434e52bb0028071, []int{2} + return fileDescriptor_c434e52bb0028071, []int{3} } func (m *GetTaskRequest) XXX_Unmarshal(b []byte) error { @@ -220,7 +315,7 @@ func (m *GetTaskResponse) Reset() { *m = GetTaskResponse{} } func (m *GetTaskResponse) String() string { return proto.CompactTextString(m) } func (*GetTaskResponse) ProtoMessage() {} func (*GetTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c434e52bb0028071, []int{3} + return fileDescriptor_c434e52bb0028071, []int{4} } func (m *GetTaskResponse) XXX_Unmarshal(b []byte) error { @@ -264,7 +359,7 @@ func (m *Resource) Reset() { *m = Resource{} } func (m *Resource) String() string { return proto.CompactTextString(m) } func (*Resource) ProtoMessage() {} func (*Resource) Descriptor() ([]byte, []int) { - return fileDescriptor_c434e52bb0028071, []int{4} + return fileDescriptor_c434e52bb0028071, []int{5} } func (m *Resource) XXX_Unmarshal(b []byte) error { @@ -314,7 +409,7 @@ func (m *DeleteTaskRequest) Reset() { *m = DeleteTaskRequest{} } func (m *DeleteTaskRequest) String() string { return proto.CompactTextString(m) } func (*DeleteTaskRequest) ProtoMessage() {} func (*DeleteTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c434e52bb0028071, []int{5} + return fileDescriptor_c434e52bb0028071, []int{6} } func (m *DeleteTaskRequest) XXX_Unmarshal(b []byte) error { @@ -360,7 +455,7 @@ func (m *DeleteTaskResponse) Reset() { *m = DeleteTaskResponse{} } func (m *DeleteTaskResponse) String() string { return proto.CompactTextString(m) } func (*DeleteTaskResponse) ProtoMessage() {} func (*DeleteTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c434e52bb0028071, []int{6} + return fileDescriptor_c434e52bb0028071, []int{7} } func (m *DeleteTaskResponse) XXX_Unmarshal(b []byte) error { @@ -383,6 +478,10 @@ var xxx_messageInfo_DeleteTaskResponse proto.InternalMessageInfo func init() { proto.RegisterEnum("flyteidl.admin.State", State_name, State_value) + proto.RegisterType((*TaskExecutionMetadata)(nil), "flyteidl.admin.TaskExecutionMetadata") + proto.RegisterMapType((map[string]string)(nil), "flyteidl.admin.TaskExecutionMetadata.AnnotationsEntry") + proto.RegisterMapType((map[string]string)(nil), "flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntry") + proto.RegisterMapType((map[string]string)(nil), "flyteidl.admin.TaskExecutionMetadata.LabelsEntry") proto.RegisterType((*CreateTaskRequest)(nil), "flyteidl.admin.CreateTaskRequest") proto.RegisterType((*CreateTaskResponse)(nil), "flyteidl.admin.CreateTaskResponse") proto.RegisterType((*GetTaskRequest)(nil), "flyteidl.admin.GetTaskRequest") @@ -395,34 +494,51 @@ func init() { func init() { proto.RegisterFile("flyteidl/admin/agent.proto", fileDescriptor_c434e52bb0028071) } var fileDescriptor_c434e52bb0028071 = []byte{ - // 464 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x53, 0x4d, 0x6f, 0xda, 0x40, - 0x10, 0x2d, 0xa4, 0x49, 0x60, 0x42, 0x28, 0xac, 0x1a, 0x89, 0x90, 0x56, 0x8a, 0xdc, 0x4b, 0xd4, - 0xaa, 0xb6, 0x9a, 0xb4, 0x8a, 0x7a, 0x24, 0xe0, 0xa2, 0x48, 0x60, 0xa1, 0x8d, 0x39, 0xb4, 0x87, - 0xa2, 0x85, 0x0c, 0xae, 0x15, 0x63, 0x6f, 0xbd, 0x63, 0xa9, 0xfc, 0x9f, 0xfe, 0xd0, 0x6a, 0xfd, - 0x25, 0x1c, 0x45, 0xbd, 0xe4, 0xe8, 0xf7, 0x31, 0xfb, 0xf6, 0xcd, 0x1a, 0xfa, 0xeb, 0x60, 0x4b, - 0xe8, 0xdf, 0x07, 0x96, 0xb8, 0xdf, 0xf8, 0xa1, 0x25, 0x3c, 0x0c, 0xc9, 0x94, 0x71, 0x44, 0x11, - 0x6b, 0x17, 0x9c, 0x99, 0x72, 0xfd, 0x37, 0xa5, 0x76, 0x15, 0xc5, 0x68, 0x05, 0x3e, 0x61, 0x2c, - 0x02, 0x95, 0xa9, 0xfb, 0xa7, 0x55, 0x96, 0x84, 0x7a, 0x28, 0xa8, 0xb7, 0x55, 0xca, 0x0f, 0x09, - 0xe3, 0xb5, 0x58, 0x61, 0x46, 0x1b, 0x7f, 0x6b, 0xd0, 0x1d, 0xc6, 0x28, 0x08, 0x5d, 0xa1, 0x1e, - 0x38, 0xfe, 0x4e, 0x50, 0x11, 0xfb, 0x04, 0x07, 0x7e, 0x28, 0x13, 0x52, 0xbd, 0xda, 0x79, 0xed, - 0xe2, 0xe8, 0xf2, 0xd4, 0x2c, 0xe3, 0xe8, 0x29, 0xe6, 0x24, 0x3b, 0x7e, 0x2a, 0x24, 0xcf, 0x85, - 0xec, 0x1a, 0x1a, 0x84, 0x1b, 0x19, 0x08, 0xc2, 0x5e, 0x3d, 0x35, 0x9d, 0x3d, 0x32, 0xe9, 0x03, - 0xdc, 0x5c, 0xc2, 0x4b, 0x31, 0x7b, 0x07, 0xc7, 0x51, 0x42, 0x32, 0xa1, 0x85, 0x8c, 0x71, 0xed, - 0xff, 0xe9, 0xed, 0x9d, 0xd7, 0x2e, 0x9a, 0xbc, 0x95, 0x81, 0xb3, 0x14, 0x33, 0xbe, 0x02, 0xdb, - 0x4d, 0xa9, 0x64, 0x14, 0xaa, 0xd4, 0x1a, 0xa3, 0x8a, 0x92, 0x78, 0x85, 0x8b, 0x0d, 0x92, 0x48, - 0xd3, 0xb6, 0x78, 0xab, 0x00, 0xa7, 0x48, 0xc2, 0xe0, 0xd0, 0x1e, 0x23, 0xed, 0xde, 0xee, 0x0c, - 0x9a, 0xba, 0xa1, 0x05, 0x6d, 0x25, 0xa6, 0x96, 0x26, 0x6f, 0x68, 0xc0, 0xdd, 0xca, 0x27, 0x66, - 0xd6, 0x9f, 0x98, 0x39, 0x86, 0x57, 0xe5, 0xcc, 0x3c, 0xcb, 0x67, 0x68, 0x14, 0x92, 0xbc, 0xb4, - 0x9e, 0x59, 0xdd, 0xa1, 0xc9, 0x73, 0x9e, 0x97, 0x4a, 0x23, 0x80, 0x46, 0x81, 0xb2, 0x0f, 0xb0, - 0xaf, 0x48, 0xd7, 0xa7, 0xed, 0xed, 0xcb, 0x93, 0xc7, 0xf6, 0x3b, 0x4d, 0xf2, 0x4c, 0xc3, 0xae, - 0xe0, 0x30, 0x2b, 0x48, 0xe5, 0x6d, 0xff, 0x67, 0x45, 0x85, 0xd2, 0x98, 0x43, 0x77, 0x84, 0x01, - 0x56, 0x77, 0xfd, 0xfc, 0x36, 0x5e, 0x03, 0xdb, 0x1d, 0x9b, 0x15, 0xf2, 0xfe, 0x27, 0xec, 0xa7, - 0x89, 0xd9, 0x09, 0x74, 0xb9, 0xed, 0xf2, 0xef, 0x83, 0x9b, 0x89, 0xbd, 0xf8, 0x36, 0xb8, 0x9d, - 0xcc, 0xb9, 0xdd, 0x79, 0xa1, 0xe1, 0x99, 0xcd, 0xa7, 0x03, 0xc7, 0x76, 0xdc, 0x12, 0xae, 0xb1, - 0x23, 0x38, 0x9c, 0xd9, 0xce, 0xe8, 0xd6, 0x19, 0x77, 0xea, 0xfa, 0x83, 0xcf, 0x1d, 0x47, 0x7f, - 0xec, 0xb1, 0x63, 0x68, 0xde, 0xcd, 0x87, 0x43, 0xdb, 0x1e, 0xd9, 0xa3, 0xce, 0xcb, 0x9b, 0xeb, - 0x1f, 0x5f, 0x3c, 0x9f, 0x7e, 0x25, 0x4b, 0x73, 0x15, 0x6d, 0xac, 0xf4, 0xf2, 0x51, 0xec, 0x59, - 0xe5, 0x73, 0xf7, 0x30, 0xb4, 0xe4, 0xf2, 0xa3, 0x17, 0x59, 0xd5, 0xdf, 0x6c, 0x79, 0x90, 0xbe, - 0xfc, 0xab, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x09, 0x9f, 0xcb, 0x7f, 0x03, 0x00, 0x00, + // 724 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x5d, 0x6f, 0xe2, 0x46, + 0x14, 0x2d, 0x10, 0x08, 0x5c, 0xf2, 0x01, 0xd3, 0xa0, 0x3a, 0x24, 0xad, 0x22, 0xaa, 0x56, 0x51, + 0xab, 0x1a, 0x85, 0xb4, 0x4d, 0xd2, 0x87, 0x56, 0x24, 0xb8, 0x08, 0x89, 0xa0, 0x68, 0x02, 0x55, + 0x5b, 0xa9, 0x45, 0x83, 0xb9, 0xb0, 0x16, 0x66, 0xec, 0xf5, 0x8c, 0x51, 0x78, 0xde, 0x3f, 0xb1, + 0x3f, 0x77, 0xe5, 0xf1, 0x47, 0x00, 0xb1, 0xab, 0x44, 0xfb, 0x86, 0xef, 0x39, 0xf7, 0xcc, 0x99, + 0x73, 0xaf, 0x0d, 0x54, 0x27, 0xf6, 0x52, 0xa2, 0x35, 0xb6, 0xeb, 0x6c, 0x3c, 0xb7, 0x78, 0x9d, + 0x4d, 0x91, 0x4b, 0xdd, 0xf5, 0x1c, 0xe9, 0x90, 0x83, 0x18, 0xd3, 0x15, 0x56, 0x3d, 0x4d, 0xb8, + 0xa6, 0xe3, 0x61, 0xdd, 0xb6, 0x24, 0x7a, 0xcc, 0x16, 0x21, 0xbb, 0x7a, 0xbc, 0x8e, 0x4a, 0x26, + 0x66, 0x31, 0xf4, 0xf5, 0x3a, 0x64, 0x71, 0x89, 0xde, 0x84, 0x99, 0x18, 0xc1, 0xdf, 0x6c, 0xc0, + 0x63, 0xe4, 0xd2, 0x9a, 0x58, 0xe8, 0x85, 0x78, 0xed, 0x7d, 0x16, 0x2a, 0x7d, 0x26, 0x66, 0xc6, + 0x13, 0x9a, 0xbe, 0xb4, 0x1c, 0x7e, 0x8f, 0x92, 0x8d, 0x99, 0x64, 0x84, 0x42, 0x39, 0x38, 0x67, + 0x88, 0x31, 0x32, 0xb4, 0xc6, 0x5a, 0xea, 0x2c, 0x75, 0x5e, 0x6c, 0x7c, 0xaf, 0x27, 0xee, 0x03, + 0x55, 0x7d, 0x4d, 0xa0, 0x93, 0x1c, 0x41, 0x0f, 0xe5, 0x3a, 0x40, 0x4e, 0xa1, 0xc0, 0xd9, 0x1c, + 0x85, 0xcb, 0x4c, 0xd4, 0xd2, 0x67, 0xa9, 0xf3, 0x02, 0x7d, 0x2e, 0x90, 0x0e, 0xe4, 0x6c, 0x36, + 0x42, 0x5b, 0x68, 0x99, 0xb3, 0xcc, 0x79, 0xb1, 0x71, 0xa1, 0xaf, 0x87, 0xa4, 0x6f, 0x35, 0xaa, + 0x77, 0x55, 0x8f, 0xc1, 0xa5, 0xb7, 0xa4, 0x91, 0x00, 0xf9, 0x1b, 0x8a, 0x8c, 0x73, 0x47, 0xb2, + 0x80, 0x29, 0xb4, 0x1d, 0xa5, 0xf7, 0xeb, 0xcb, 0xf4, 0x9a, 0xcf, 0x8d, 0xa1, 0xe8, 0xaa, 0x14, + 0xd1, 0xe1, 0xcb, 0xd9, 0xb5, 0x18, 0x0a, 0xf4, 0x16, 0x96, 0x89, 0x43, 0x66, 0x9a, 0x8e, 0xcf, + 0xa5, 0x96, 0x55, 0x97, 0x29, 0xcf, 0xae, 0xc5, 0x63, 0x88, 0x34, 0x43, 0x80, 0x48, 0xa8, 0x20, + 0x5f, 0x58, 0x9e, 0xc3, 0xe7, 0xc8, 0xe5, 0x70, 0xc1, 0x3c, 0x8b, 0x8d, 0x6c, 0x14, 0x5a, 0x4e, + 0x79, 0xfa, 0xe3, 0x65, 0x9e, 0x8c, 0x67, 0x89, 0xbf, 0x62, 0x85, 0xd0, 0xdc, 0x11, 0x6e, 0x81, + 0xaa, 0x37, 0x50, 0x5c, 0x89, 0x85, 0x94, 0x20, 0x33, 0xc3, 0xa5, 0x9a, 0x5e, 0x81, 0x06, 0x3f, + 0xc9, 0x11, 0x64, 0x17, 0xcc, 0xf6, 0xe3, 0x29, 0x84, 0x0f, 0xbf, 0xa5, 0xaf, 0x53, 0xd5, 0xdf, + 0xa1, 0xb4, 0x99, 0xc0, 0xab, 0xfa, 0xdb, 0x70, 0xfc, 0x51, 0xb7, 0xaf, 0x11, 0xaa, 0xbd, 0x4b, + 0x43, 0xf9, 0xce, 0x43, 0x26, 0x31, 0xc8, 0x84, 0xe2, 0x5b, 0x1f, 0x85, 0x24, 0x17, 0x90, 0xb3, + 0xb8, 0xeb, 0x4b, 0x11, 0xed, 0xe2, 0xf1, 0xc6, 0x2e, 0x76, 0xc3, 0x37, 0xe7, 0x9e, 0xb9, 0x34, + 0x22, 0x92, 0x2b, 0xc8, 0x4b, 0x9c, 0xbb, 0x36, 0x93, 0xe1, 0x29, 0xc5, 0xc6, 0xc9, 0x96, 0x05, + 0xee, 0x47, 0x14, 0x9a, 0x90, 0xc9, 0xb7, 0xb0, 0xef, 0xf8, 0xd2, 0xf5, 0xe5, 0xd0, 0xf5, 0x70, + 0x62, 0x3d, 0x69, 0x19, 0xe5, 0x71, 0x2f, 0x2c, 0x3e, 0xa8, 0x1a, 0xf9, 0x0f, 0xbe, 0xda, 0x78, + 0x4f, 0xe6, 0xd1, 0xd4, 0xb4, 0x1d, 0x75, 0xd8, 0x77, 0x2f, 0x1a, 0x31, 0xad, 0xc8, 0x6d, 0xe5, + 0xda, 0x0d, 0x90, 0xd5, 0x10, 0x84, 0xeb, 0x70, 0xa1, 0x9c, 0x79, 0x28, 0x1c, 0xdf, 0x33, 0x51, + 0x1d, 0xa7, 0xc2, 0xd8, 0xa3, 0x7b, 0x71, 0x31, 0x68, 0xaf, 0x51, 0x38, 0x68, 0xa3, 0x5c, 0x0d, + 0xef, 0x04, 0x0a, 0xca, 0xab, 0x5c, 0xba, 0x18, 0x0d, 0x21, 0x1f, 0x14, 0xfa, 0x4b, 0x77, 0x8b, + 0x66, 0x7a, 0x8b, 0x66, 0x1b, 0x0e, 0x13, 0xcd, 0xc8, 0xcb, 0xcf, 0x90, 0x8f, 0x29, 0xd1, 0x4c, + 0xb4, 0xcd, 0x1b, 0xd3, 0x08, 0xa7, 0x09, 0xb3, 0x66, 0x43, 0x3e, 0xae, 0x92, 0x1f, 0x21, 0x2b, + 0x64, 0x30, 0x9d, 0xa0, 0xfd, 0xa0, 0x51, 0xd9, 0x6c, 0x7f, 0x0c, 0x40, 0x1a, 0x72, 0xc8, 0x25, + 0xec, 0x86, 0xf9, 0x8b, 0x68, 0x98, 0x9f, 0xd8, 0x80, 0x98, 0x59, 0x1b, 0x40, 0xb9, 0x85, 0x36, + 0xae, 0xaf, 0xd2, 0xe7, 0xa7, 0x71, 0x04, 0x64, 0x55, 0x36, 0x0c, 0xe4, 0x87, 0xff, 0x21, 0xab, + 0x1c, 0x93, 0x0a, 0x94, 0xa9, 0xd1, 0xa7, 0xff, 0x34, 0x6f, 0xbb, 0xc6, 0xf0, 0xcf, 0x66, 0xa7, + 0x3b, 0xa0, 0x46, 0xe9, 0x8b, 0xa0, 0xfc, 0x60, 0xd0, 0xfb, 0x66, 0xcf, 0xe8, 0xf5, 0x93, 0x72, + 0x8a, 0x14, 0x61, 0xf7, 0xc1, 0xe8, 0xb5, 0x3a, 0xbd, 0x76, 0x29, 0x1d, 0x3c, 0xd0, 0x41, 0xaf, + 0x17, 0x3c, 0x64, 0xc8, 0x3e, 0x14, 0x1e, 0x07, 0x77, 0x77, 0x86, 0xd1, 0x32, 0x5a, 0xa5, 0x9d, + 0xdb, 0xab, 0x7f, 0x7f, 0x99, 0x5a, 0xf2, 0x8d, 0x3f, 0xd2, 0x4d, 0x67, 0x5e, 0x57, 0x97, 0x77, + 0xbc, 0x69, 0x3d, 0xf9, 0xd2, 0x4f, 0x91, 0xd7, 0xdd, 0xd1, 0x4f, 0x53, 0xa7, 0xbe, 0xfe, 0x07, + 0x34, 0xca, 0xa9, 0x6f, 0xfe, 0xe5, 0x87, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x4c, 0xa8, 0x65, + 0x99, 0x06, 0x00, 0x00, } diff --git a/gen/pb-go/flyteidl/admin/agent.pb.validate.go b/gen/pb-go/flyteidl/admin/agent.pb.validate.go index feaef88ed..0ba579cb0 100644 --- a/gen/pb-go/flyteidl/admin/agent.pb.validate.go +++ b/gen/pb-go/flyteidl/admin/agent.pb.validate.go @@ -36,6 +36,93 @@ var ( // define the regex for a UUID once up-front var _agent_uuidPattern = regexp.MustCompile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$") +// Validate checks the field values on TaskExecutionMetadata with the rules +// defined in the proto definition for this message. If any rules are +// violated, an error is returned. +func (m *TaskExecutionMetadata) Validate() error { + if m == nil { + return nil + } + + if v, ok := interface{}(m.GetTaskExecutionId()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TaskExecutionMetadataValidationError{ + field: "TaskExecutionId", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Namespace + + // no validation rules for Labels + + // no validation rules for Annotations + + // no validation rules for K8SServiceAccount + + // no validation rules for EnvironmentVariables + + return nil +} + +// TaskExecutionMetadataValidationError is the validation error returned by +// TaskExecutionMetadata.Validate if the designated constraints aren't met. +type TaskExecutionMetadataValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e TaskExecutionMetadataValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e TaskExecutionMetadataValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e TaskExecutionMetadataValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e TaskExecutionMetadataValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e TaskExecutionMetadataValidationError) ErrorName() string { + return "TaskExecutionMetadataValidationError" +} + +// Error satisfies the builtin error interface +func (e TaskExecutionMetadataValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sTaskExecutionMetadata.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = TaskExecutionMetadataValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = TaskExecutionMetadataValidationError{} + // Validate checks the field values on CreateTaskRequest with the rules defined // in the proto definition for this message. If any rules are violated, an // error is returned. @@ -66,6 +153,16 @@ func (m *CreateTaskRequest) Validate() error { // no validation rules for OutputPrefix + if v, ok := interface{}(m.GetTaskExecutionMetadata()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CreateTaskRequestValidationError{ + field: "TaskExecutionMetadata", + reason: "embedded message failed validation", + cause: err, + } + } + } + return nil } diff --git a/gen/pb-go/flyteidl/service/admin.swagger.json b/gen/pb-go/flyteidl/service/admin.swagger.json index 3a1a0a9f6..907fb741b 100644 --- a/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/gen/pb-go/flyteidl/service/admin.swagger.json @@ -5134,7 +5134,7 @@ "description": "A predefined yet extensible Task type identifier." }, "metadata": { - "$ref": "#/definitions/eventTaskExecutionMetadata", + "$ref": "#/definitions/flyteidleventTaskExecutionMetadata", "description": "Metadata around how a task was executed." }, "event_version": { @@ -7480,7 +7480,7 @@ "description": "A predefined yet extensible Task type identifier. If the task definition is already registered in flyte admin\nthis type will be identical, but not all task executions necessarily use pre-registered definitions and this\ntype is useful to render the task in the UI, filter task executions, etc." }, "metadata": { - "$ref": "#/definitions/eventTaskExecutionMetadata", + "$ref": "#/definitions/flyteidleventTaskExecutionMetadata", "description": "Metadata around how a task was executed." }, "event_version": { @@ -7496,37 +7496,6 @@ }, "description": "Plugin specific execution event information. For tasks like Python, Hive, Spark, DynamicJob." }, - "eventTaskExecutionMetadata": { - "type": "object", - "properties": { - "generated_name": { - "type": "string", - "description": "Unique, generated name for this task execution used by the backend." - }, - "external_resources": { - "type": "array", - "items": { - "$ref": "#/definitions/eventExternalResourceInfo" - }, - "description": "Additional data on external resources on other back-ends or platforms (e.g. Hive, Qubole, etc) launched by this task execution." - }, - "resource_pool_info": { - "type": "array", - "items": { - "$ref": "#/definitions/eventResourcePoolInfo" - }, - "description": "Includes additional data on concurrent resource management used during execution..\nThis is a repeated field because a plugin can request multiple resource allocations during execution." - }, - "plugin_identifier": { - "type": "string", - "description": "The identifier of the plugin used to execute this task." - }, - "instance_class": { - "$ref": "#/definitions/TaskExecutionMetadataInstanceClass" - } - }, - "description": "Holds metadata around how a task was executed.\nAs a task transitions across event phases during execution some attributes, such its generated name, generated external resources,\nand more may grow in size but not change necessarily based on the phase transition that sparked the event update.\nMetadata is a container for these attributes across the task execution lifecycle." - }, "eventWorkflowExecutionEvent": { "type": "object", "properties": { @@ -7687,6 +7656,37 @@ }, "description": "For dynamic workflow nodes we send information about the dynamic workflow definition that gets generated." }, + "flyteidleventTaskExecutionMetadata": { + "type": "object", + "properties": { + "generated_name": { + "type": "string", + "description": "Unique, generated name for this task execution used by the backend." + }, + "external_resources": { + "type": "array", + "items": { + "$ref": "#/definitions/eventExternalResourceInfo" + }, + "description": "Additional data on external resources on other back-ends or platforms (e.g. Hive, Qubole, etc) launched by this task execution." + }, + "resource_pool_info": { + "type": "array", + "items": { + "$ref": "#/definitions/eventResourcePoolInfo" + }, + "description": "Includes additional data on concurrent resource management used during execution..\nThis is a repeated field because a plugin can request multiple resource allocations during execution." + }, + "plugin_identifier": { + "type": "string", + "description": "The identifier of the plugin used to execute this task." + }, + "instance_class": { + "$ref": "#/definitions/TaskExecutionMetadataInstanceClass" + } + }, + "description": "Holds metadata around how a task was executed.\nAs a task transitions across event phases during execution some attributes, such its generated name, generated external resources,\nand more may grow in size but not change necessarily based on the phase transition that sparked the event update.\nMetadata is a container for these attributes across the task execution lifecycle." + }, "flyteidleventTaskNodeMetadata": { "type": "object", "properties": { diff --git a/gen/pb-go/flyteidl/service/agent.swagger.json b/gen/pb-go/flyteidl/service/agent.swagger.json index d92a9503f..0a788c919 100644 --- a/gen/pb-go/flyteidl/service/agent.swagger.json +++ b/gen/pb-go/flyteidl/service/agent.swagger.json @@ -575,6 +575,18 @@ }, "description": "Defines a strong type to allow type checking between interfaces." }, + "coreNodeExecutionIdentifier": { + "type": "object", + "properties": { + "node_id": { + "type": "string" + }, + "execution_id": { + "$ref": "#/definitions/coreWorkflowExecutionIdentifier" + } + }, + "description": "Encapsulation of fields that identify a Flyte node execution entity." + }, "coreOAuth2Client": { "type": "object", "properties": { @@ -891,6 +903,22 @@ } } }, + "coreTaskExecutionIdentifier": { + "type": "object", + "properties": { + "task_id": { + "$ref": "#/definitions/coreIdentifier" + }, + "node_execution_id": { + "$ref": "#/definitions/coreNodeExecutionIdentifier" + }, + "retry_attempt": { + "type": "integer", + "format": "int64" + } + }, + "description": "Encapsulation of fields that identify a Flyte task execution entity." + }, "coreTaskMetadata": { "type": "object", "properties": { @@ -1086,6 +1114,24 @@ "type": "object", "description": "Used to denote a nil/null/None assignment to a scalar value. The underlying LiteralType for Void is intentionally\nundefined since it can be assigned to a scalar of any LiteralType." }, + "coreWorkflowExecutionIdentifier": { + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "Name of the project the resource belongs to." + }, + "domain": { + "type": "string", + "description": "Name of the domain the resource belongs to.\nA domain can be considered as a subset within a specific project." + }, + "name": { + "type": "string", + "description": "User or system provided value for the resource." + } + }, + "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" + }, "flyteidladminState": { "type": "string", "enum": [ @@ -1098,6 +1144,45 @@ "default": "RETRYABLE_FAILURE", "description": "The state of the execution is used to control its visibility in the UI/CLI." }, + "flyteidladminTaskExecutionMetadata": { + "type": "object", + "properties": { + "task_execution_id": { + "$ref": "#/definitions/coreTaskExecutionIdentifier", + "title": "ID of the task execution" + }, + "namespace": { + "type": "string", + "title": "k8s namespace where the task is executed in" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Labels attached to the task execution" + }, + "annotations": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Annotations attached to the task execution" + }, + "k8s_service_account": { + "type": "string", + "title": "k8s service account associated with the task execution" + }, + "environment_variables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Environment variables attached to the task execution" + } + }, + "description": "Represents a subset of runtime task execution metadata that are relevant to external plugins." + }, "protobufListValue": { "type": "object", "properties": { diff --git a/gen/pb-go/flyteidl/service/flyteadmin/README.md b/gen/pb-go/flyteidl/service/flyteadmin/README.md index 16f7ba1e7..27c6c30b8 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -313,7 +313,6 @@ Class | Method | HTTP request | Description - [EventParentTaskExecutionMetadata](docs/EventParentTaskExecutionMetadata.md) - [EventResourcePoolInfo](docs/EventResourcePoolInfo.md) - [EventTaskExecutionEvent](docs/EventTaskExecutionEvent.md) - - [EventTaskExecutionMetadata](docs/EventTaskExecutionMetadata.md) - [EventWorkflowExecutionEvent](docs/EventWorkflowExecutionEvent.md) - [ExecutionErrorErrorKind](docs/ExecutionErrorErrorKind.md) - [ExecutionMetadataExecutionMode](docs/ExecutionMetadataExecutionMode.md) @@ -325,6 +324,7 @@ Class | Method | HTTP request | Description - [FlyteidladminTaskNodeMetadata](docs/FlyteidladminTaskNodeMetadata.md) - [FlyteidladminWorkflowNodeMetadata](docs/FlyteidladminWorkflowNodeMetadata.md) - [FlyteidleventDynamicWorkflowNodeMetadata](docs/FlyteidleventDynamicWorkflowNodeMetadata.md) + - [FlyteidleventTaskExecutionMetadata](docs/FlyteidleventTaskExecutionMetadata.md) - [FlyteidleventTaskNodeMetadata](docs/FlyteidleventTaskNodeMetadata.md) - [FlyteidleventWorkflowNodeMetadata](docs/FlyteidleventWorkflowNodeMetadata.md) - [IoStrategyDownloadMode](docs/IoStrategyDownloadMode.md) diff --git a/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index a70c30d0d..e1c05a664 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -15993,7 +15993,7 @@ definitions: description: "A predefined yet extensible Task type identifier." metadata: description: "Metadata around how a task was executed." - $ref: "#/definitions/eventTaskExecutionMetadata" + $ref: "#/definitions/flyteidleventTaskExecutionMetadata" event_version: type: "integer" format: "int32" @@ -59464,7 +59464,7 @@ definitions: \ etc." metadata: description: "Metadata around how a task was executed." - $ref: "#/definitions/eventTaskExecutionMetadata" + $ref: "#/definitions/flyteidleventTaskExecutionMetadata" event_version: type: "integer" format: "int32" @@ -59484,71 +59484,6 @@ definitions: \ a more accurate portrayal of the evaluation time-series." description: "Plugin specific execution event information. For tasks like Python,\ \ Hive, Spark, DynamicJob." - eventTaskExecutionMetadata: - type: "object" - properties: - generated_name: - type: "string" - description: "Unique, generated name for this task execution used by the backend." - external_resources: - type: "array" - description: "Additional data on external resources on other back-ends or\ - \ platforms (e.g. Hive, Qubole, etc) launched by this task execution." - items: - $ref: "#/definitions/eventExternalResourceInfo" - resource_pool_info: - type: "array" - description: "Includes additional data on concurrent resource management used\ - \ during execution..\nThis is a repeated field because a plugin can request\ - \ multiple resource allocations during execution." - items: - $ref: "#/definitions/eventResourcePoolInfo" - plugin_identifier: - type: "string" - description: "The identifier of the plugin used to execute this task." - instance_class: - $ref: "#/definitions/TaskExecutionMetadataInstanceClass" - description: "Holds metadata around how a task was executed.\nAs a task transitions\ - \ across event phases during execution some attributes, such its generated name,\ - \ generated external resources,\nand more may grow in size but not change necessarily\ - \ based on the phase transition that sparked the event update.\nMetadata is\ - \ a container for these attributes across the task execution lifecycle." - example: - external_resources: - - index: 0 - external_id: "external_id" - retry_attempt: 6 - cache_status: {} - logs: - - message_format: {} - name: "name" - uri: "uri" - ttl: "ttl" - - message_format: {} - name: "name" - uri: "uri" - ttl: "ttl" - - index: 0 - external_id: "external_id" - retry_attempt: 6 - cache_status: {} - logs: - - message_format: {} - name: "name" - uri: "uri" - ttl: "ttl" - - message_format: {} - name: "name" - uri: "uri" - ttl: "ttl" - instance_class: {} - resource_pool_info: - - allocation_token: "allocation_token" - namespace: "namespace" - - allocation_token: "allocation_token" - namespace: "namespace" - generated_name: "generated_name" - plugin_identifier: "plugin_identifier" eventWorkflowExecutionEvent: type: "object" properties: @@ -66479,6 +66414,71 @@ definitions: \ partially completed executions where the workflow has already been compiled." description: "For dynamic workflow nodes we send information about the dynamic\ \ workflow definition that gets generated." + flyteidleventTaskExecutionMetadata: + type: "object" + properties: + generated_name: + type: "string" + description: "Unique, generated name for this task execution used by the backend." + external_resources: + type: "array" + description: "Additional data on external resources on other back-ends or\ + \ platforms (e.g. Hive, Qubole, etc) launched by this task execution." + items: + $ref: "#/definitions/eventExternalResourceInfo" + resource_pool_info: + type: "array" + description: "Includes additional data on concurrent resource management used\ + \ during execution..\nThis is a repeated field because a plugin can request\ + \ multiple resource allocations during execution." + items: + $ref: "#/definitions/eventResourcePoolInfo" + plugin_identifier: + type: "string" + description: "The identifier of the plugin used to execute this task." + instance_class: + $ref: "#/definitions/TaskExecutionMetadataInstanceClass" + description: "Holds metadata around how a task was executed.\nAs a task transitions\ + \ across event phases during execution some attributes, such its generated name,\ + \ generated external resources,\nand more may grow in size but not change necessarily\ + \ based on the phase transition that sparked the event update.\nMetadata is\ + \ a container for these attributes across the task execution lifecycle." + example: + external_resources: + - index: 0 + external_id: "external_id" + retry_attempt: 6 + cache_status: {} + logs: + - message_format: {} + name: "name" + uri: "uri" + ttl: "ttl" + - message_format: {} + name: "name" + uri: "uri" + ttl: "ttl" + - index: 0 + external_id: "external_id" + retry_attempt: 6 + cache_status: {} + logs: + - message_format: {} + name: "name" + uri: "uri" + ttl: "ttl" + - message_format: {} + name: "name" + uri: "uri" + ttl: "ttl" + instance_class: {} + resource_pool_info: + - allocation_token: "allocation_token" + namespace: "namespace" + - allocation_token: "allocation_token" + namespace: "namespace" + generated_name: "generated_name" + plugin_identifier: "plugin_identifier" flyteidleventTaskNodeMetadata: type: "object" properties: diff --git a/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_closure.go b/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_closure.go index 4f43380b6..2a0cd78a2 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_closure.go +++ b/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_closure.go @@ -40,7 +40,7 @@ type AdminTaskExecutionClosure struct { // A predefined yet extensible Task type identifier. TaskType string `json:"task_type,omitempty"` // Metadata around how a task was executed. - Metadata *EventTaskExecutionMetadata `json:"metadata,omitempty"` + Metadata *FlyteidleventTaskExecutionMetadata `json:"metadata,omitempty"` // The event version is used to indicate versioned changes in how data is maintained using this proto message. For example, event_verison > 0 means that maps tasks logs use the TaskExecutionMetadata ExternalResourceInfo fields for each subtask rather than the TaskLog in this message. EventVersion int32 `json:"event_version,omitempty"` // A time-series of the phase transition or update explanations. This, when compared to storing a singular reason as previously done, is much more valuable in visualizing and understanding historical evaluations. diff --git a/gen/pb-go/flyteidl/service/flyteadmin/model_event_task_execution_event.go b/gen/pb-go/flyteidl/service/flyteadmin/model_event_task_execution_event.go index 93dcdbebd..f394fdf30 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/model_event_task_execution_event.go +++ b/gen/pb-go/flyteidl/service/flyteadmin/model_event_task_execution_event.go @@ -42,7 +42,7 @@ type EventTaskExecutionEvent struct { // A predefined yet extensible Task type identifier. If the task definition is already registered in flyte admin this type will be identical, but not all task executions necessarily use pre-registered definitions and this type is useful to render the task in the UI, filter task executions, etc. TaskType string `json:"task_type,omitempty"` // Metadata around how a task was executed. - Metadata *EventTaskExecutionMetadata `json:"metadata,omitempty"` + Metadata *FlyteidleventTaskExecutionMetadata `json:"metadata,omitempty"` // The event version is used to indicate versioned changes in how data is reported using this proto message. For example, event_verison > 0 means that maps tasks report logs using the TaskExecutionMetadata ExternalResourceInfo fields for each subtask rather than the TaskLog in this message. EventVersion int32 `json:"event_version,omitempty"` // This timestamp represents the instant when the event was reported by the executing framework. For example, a k8s pod task may be marked completed at (ie. `occurred_at`) the instant the container running user code completes, but this event will not be reported until the pod is marked as completed. Extracting both of these timestamps facilitates a more accurate portrayal of the evaluation time-series. diff --git a/gen/pb-go/flyteidl/service/flyteadmin/model_event_task_execution_metadata.go b/gen/pb-go/flyteidl/service/flyteadmin/model_flyteidlevent_task_execution_metadata.go similarity index 96% rename from gen/pb-go/flyteidl/service/flyteadmin/model_event_task_execution_metadata.go rename to gen/pb-go/flyteidl/service/flyteadmin/model_flyteidlevent_task_execution_metadata.go index 336dd1797..71d474ab4 100644 --- a/gen/pb-go/flyteidl/service/flyteadmin/model_event_task_execution_metadata.go +++ b/gen/pb-go/flyteidl/service/flyteadmin/model_flyteidlevent_task_execution_metadata.go @@ -10,7 +10,7 @@ package flyteadmin // Holds metadata around how a task was executed. As a task transitions across event phases during execution some attributes, such its generated name, generated external resources, and more may grow in size but not change necessarily based on the phase transition that sparked the event update. Metadata is a container for these attributes across the task execution lifecycle. -type EventTaskExecutionMetadata struct { +type FlyteidleventTaskExecutionMetadata struct { // Unique, generated name for this task execution used by the backend. GeneratedName string `json:"generated_name,omitempty"` // Additional data on external resources on other back-ends or platforms (e.g. Hive, Qubole, etc) launched by this task execution. diff --git a/gen/pb-go/flyteidl/service/openapi.go b/gen/pb-go/flyteidl/service/openapi.go index eb54afcd1..22f95da78 100644 --- a/gen/pb-go/flyteidl/service/openapi.go +++ b/gen/pb-go/flyteidl/service/openapi.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xf9\x73\x2b\xb7\x95\x37\x8c\xff\x3e\x7f\x05\x9e\x3b\x4f\x95\xed\x44\x8b\x93\xcc\xe4\x9b\xd2\xd4\x53\xdf\x97\x96\x78\xaf\xf5\x58\x5b\xb4\xd8\xe3\x77\x98\xa2\xc1\x6e\x90\x44\xd4\x0d\x74\x00\xb4\x74\xe9\x54\xfe\xf7\xb7\x70\xb0\x34\x7a\x23\x9b\x8b\x24\xea\xba\x67\xaa\x62\x5d\x76\x37\xd6\x83\x83\xb3\x7e\xce\x3f\xff\x0d\xa1\x0f\xf2\x19\xcf\x66\x44\x7c\x38\x41\x1f\xfe\x78\xf4\xed\x87\x03\xfd\x1b\x65\x53\xfe\xe1\x04\xe9\xe7\x08\x7d\x50\x54\x25\x44\x3f\x9f\x26\x0b\x45\x68\x9c\x1c\x4b\x22\x9e\x68\x44\x8e\x71\x9c\x52\x76\x94\x09\xae\x38\x7c\x88\xd0\x87\x27\x22\x24\xe5\x4c\xbf\x6e\xff\x44\x8c\x2b\x24\x89\xfa\xf0\x6f\x08\xfd\x0b\x9a\x97\xd1\x9c\xa4\x44\x7e\x38\x41\xff\x63\x3e\x9a\x2b\x95\xb9\x06\xf4\xdf\x52\xbf\xfb\x37\x78\x37\xe2\x4c\xe6\xa5\x97\x71\x96\x25\x34\xc2\x8a\x72\x76\xfc\x77\xc9\x59\xf1\x6e\x26\x78\x9c\x47\x1d\xdf\xc5\x6a\x2e\x8b\x39\x1e\xe3\x8c\x1e\x3f\xfd\xe1\x18\x47\x8a\x3e\x91\x71\x82\x73\x16\xcd\xc7\x59\x82\x99\x3c\xfe\x27\x8d\xf5\x1c\xff\x4e\x22\xf5\x2f\xf8\x47\xcc\x53\x4c\x99\xf9\x9b\xe1\x94\xfc\xcb\xb7\x83\xd0\x87\x19\x51\xc1\x3f\xf5\x6c\xf3\x34\xc5\x62\xa1\x57\xe4\x23\x51\xd1\x1c\xa9\x39\x41\xa6\x1f\xe4\x96\x88\x4f\x11\x46\x27\x82\x4c\x4f\x7e\x11\x64\x3a\x76\x0b\x7d\x64\x16\xf8\x02\x46\x73\x93\x60\xf6\xcb\x91\x5d\x26\x68\x99\x67\x44\xc0\xdc\xce\x63\xdd\xfa\x27\xa2\x06\xd0\x6c\xf1\x7e\xf8\xb6\x20\x32\xe3\x4c\x12\x59\x1a\x1e\x42\x1f\xfe\xf8\xed\xb7\x95\x9f\x10\xfa\x10\x13\x19\x09\x9a\x29\xbb\x97\x03\x24\xf3\x28\x22\x52\x4e\xf3\x04\xb9\x96\xc2\xc1\x98\xa9\xea\x8d\xc5\xb5\xc6\x10\xfa\xf0\xbf\x05\x99\xea\x76\xfe\xfd\x38\x26\x53\xca\xa8\x6e\x57\x1a\xfa\x09\x46\x5b\xfa\xea\x5f\xff\xd6\xf4\xf7\xbf\x82\x19\x65\x58\xe0\x94\x28\x22\x8a\x1d\x37\xff\x57\x99\x8b\xde\x23\xdd\x79\xb1\x8f\xd5\x81\x57\x66\x7b\x85\x53\xa2\xf7\x44\xef\x94\xfd\x02\xfe\x16\x44\xf2\x5c\x44\x04\x4d\x48\xc2\xd9\x4c\x22\xc5\x6b\x6b\x40\xa1\x05\x4d\x5e\xd5\x27\x82\xfc\x23\xa7\x82\xe8\xbd\x52\x22\x27\x95\xa7\x6a\x91\xc1\x20\xa5\x12\x94\xcd\xc2\xa5\xf8\xd7\x41\xa7\xa9\x19\xaa\x5c\x63\x66\xe6\x83\xd6\x89\x8d\xd8\xc0\xbd\x12\x61\x86\x26\x04\xe9\xb3\x48\x63\x22\x48\x8c\xb0\x44\x18\xc9\x7c\x22\x89\x42\xcf\x54\xcd\x29\xd3\xff\xce\x48\x44\xa7\x34\x72\x6b\xb6\x3f\x6b\x03\x7f\x2e\x5f\x99\x07\x49\x84\x1e\xf8\x13\x8d\x49\x8c\x9e\x70\x92\x13\x34\xe5\xa2\xb4\x3c\x47\x23\x76\x3f\xd7\xeb\x90\x4e\x28\x83\x93\xa7\xd7\xd2\x51\xc8\xef\xdd\x72\xfd\x1e\xe9\xfe\x50\xce\xe8\x3f\x72\x92\x2c\x10\x8d\x09\x53\x74\x4a\x89\xac\xb6\xf6\x7b\x0e\xfd\xe3\x04\x1d\x22\xbd\xce\x44\x28\x58\x6f\xce\x14\xf9\xac\x24\x3a\x44\x09\x7d\x24\xe8\xab\x0b\x2a\x15\x1a\xdc\x9c\x7f\x75\x80\xbe\x32\xe7\x05\x01\x6f\xfa\xea\x15\x56\xd8\xff\xfd\xb7\xe0\xe8\x29\x3c\xab\x1e\xba\x0f\x03\x7d\x9a\xef\xcc\xd5\x50\xb4\xf0\xb7\x7f\x0b\xdb\xb1\xfb\xb5\x9c\xdf\x16\xcc\xd6\x72\xda\xae\xfc\x15\x96\xa9\xcc\x5a\xa5\xde\xa1\x6d\x39\xab\x6e\xb7\xca\x5a\xe5\xfb\xe2\xad\x7a\x0a\x2f\xcd\x5f\xb7\x61\xae\x58\x01\xd5\x63\xca\xcc\x21\xf1\x67\x46\x48\x7d\x4e\x1c\xf5\xee\x09\x4b\xd9\x86\xd7\x06\x33\x0b\xd8\xad\xe3\xa2\xc1\xaa\xec\xe1\xbc\x13\x9a\xd2\x55\xfb\x7b\xce\x62\x2d\x72\x59\x66\xc7\xf2\x74\x42\x84\x5e\x06\xc7\xf6\x60\xb6\x13\xcd\x06\x55\x2e\x18\x89\x3b\x4c\xf3\x1f\x39\x11\x8b\x25\xf3\x9c\xe2\x44\xb6\x4d\x94\x32\x45\xb4\x7c\x5b\x79\x3c\xe5\x22\xc5\xca\xbe\xf0\xe7\xff\x58\x77\x21\x14\x7f\x24\xab\xf6\xff\xdc\xec\x66\x84\x25\x90\x41\x9a\x27\x8a\x66\x09\x41\x19\x9e\x11\x69\x57\x24\x4f\x94\x3c\x80\xd7\xb4\x4c\x4d\xc4\xa1\xbf\x81\xa0\x07\x77\xf3\xe6\x12\x7e\x41\x53\x2f\x40\x32\xf2\x59\x41\x4b\x23\x06\x77\x2f\x2c\x51\x78\xa3\xbc\xc0\x52\x6e\x46\x33\x92\x0b\x35\x9e\x2c\x8e\x1e\x49\xad\xdf\x56\xca\xc1\x0c\x61\xa5\x04\x9d\xe4\x8a\xe8\x79\xeb\x36\xdc\xdd\x09\xec\xd1\x5c\xd0\x5d\x58\xc3\xdb\x4d\x38\xa6\x82\x44\x30\xb7\x75\x0e\x8c\xff\x4a\xcf\x5b\xeb\x2f\x0b\x33\xfb\x47\xb2\x00\x79\xa4\x61\x05\xfc\x96\x8f\xd8\x88\xa1\x43\x74\x36\xbc\x3b\x1d\x5e\x9d\x9d\x5f\x7d\x3a\x41\xdf\x2d\x50\x4c\xa6\x38\x4f\xd4\x01\x9a\x52\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x99\x43\x0f\x86\xb0\x98\xb2\x19\xe2\x22\x26\xe2\xe5\x96\xb1\xf2\x94\xb0\x3c\xad\xdc\x2b\xf0\x7b\x31\xfa\xca\x17\x5a\xc4\xf0\x8f\x4a\x4f\xfe\x56\x5b\x60\x98\xb1\xee\x3b\x68\xed\xd5\x84\x9a\x68\x4e\x93\x58\x10\x76\xac\xb0\x7c\x1c\x93\xcf\x24\xca\xcd\x9d\xfc\xcf\xf2\x0f\x63\x2d\x99\xf2\x98\x94\x7f\x29\xfd\xa3\x10\x85\xd6\xfe\xd4\x6b\xa9\x6b\x7f\x09\x3a\x6d\xb7\xef\xe0\x17\x1a\x37\xbe\x0d\xbf\xac\x98\x83\x7b\x67\xc9\x60\xdd\x2b\xad\xa3\x72\x2f\x58\x89\xaf\xf1\x1d\x41\x94\x58\x8c\xb1\x52\x24\xcd\xd4\x9a\xfa\x3a\x46\x89\x96\x2b\x97\xc9\x91\x57\x3c\x26\x43\xd7\xdf\x2f\xc8\x88\xb3\x24\x46\x93\x85\xe5\x5a\x53\x22\x08\x8b\x48\x7b\x0b\xf7\x58\x3e\x16\x2d\xac\x12\x46\x4b\xfd\xc9\x8f\x5c\xe8\xcf\xdf\x83\x40\x5a\x1a\xf8\x6b\xc8\xa4\x9b\x9e\xb8\x2f\xce\x42\xb0\x21\xff\xe8\xed\x09\xdb\xaf\x64\x57\xeb\x03\x17\x48\x2e\xa4\x22\xe9\x4a\x3b\xc4\xfb\x59\x08\x7b\x41\xec\xeb\x80\x2b\x77\xd4\x6f\xe0\xd4\x97\x6f\xdc\xfe\x78\xaf\xb1\x64\xbb\xb2\x22\xee\xfb\x3c\x9d\x0f\x67\xf9\x54\xef\xdc\xf6\x05\x4e\x8c\x77\x31\xcd\x92\x2c\xb8\xeb\x41\xbe\x90\xb9\xa1\x75\xaf\xdc\x6a\x8f\x61\x00\x2b\x14\xcd\xb2\x1d\xda\x9f\x3f\xfd\x69\x68\xa1\x31\xe6\x38\x35\xa7\x32\x30\x56\xa1\x88\x0b\x23\x0b\xc6\xf6\xbc\x1b\x5d\x73\x70\x3f\xb8\x1b\xde\x9f\xa0\x01\x8a\xb1\xc2\xfa\x80\x0b\x92\x09\x22\x09\x53\xa0\xc7\xeb\xef\xd5\x02\xa5\x3c\x26\x89\xd1\x38\x3f\x6a\xc9\x17\x9d\x61\x85\x4f\xb1\xc2\x09\x9f\x1d\xa1\x01\xfc\x53\x7f\x4c\x25\xc2\x89\xe4\x08\x3b\xb2\x22\xb1\x6b\x02\xb3\xd8\xb1\x16\x8c\x22\x9e\x66\x34\xf1\x36\x78\x6f\x5c\xa1\x2c\xa6\x4f\x34\xce\x71\x82\xf8\x44\x73\x15\xad\x21\x0f\x9f\x08\x53\x39\x4e\x92\x05\xc2\x49\x82\x6c\xb7\xee\x05\x24\xe7\x3c\x4f\x62\xdd\xae\x1b\xa5\xa4\x29\x4d\xb0\xd0\x2a\xb8\x19\xed\xb5\x6d\x0b\xdd\xcf\x89\x1f\x2b\x8c\x4b\xaf\x66\x8a\x1f\x89\x44\x54\xa1\x8c\x4b\x49\x27\x49\x71\xe6\x1f\xce\x11\x8c\xfb\xf4\xe2\x1c\xf4\xf9\x48\x21\x6e\x78\xa8\xeb\xdc\xda\x6f\x5c\x8f\x29\x66\x8c\x40\xc7\x5c\xcd\x89\xb0\xdd\xdb\x97\xdf\x5a\x35\x7f\xb8\xba\xbb\x19\x9e\x9e\x7f\x3c\x1f\x9e\xd5\x75\xf3\xfb\xc1\xdd\x0f\xf5\x5f\x7f\xba\xbe\xfd\xe1\xe3\xc5\xf5\x4f\xf5\x27\x17\x83\x87\xab\xd3\xef\xc7\x37\x17\x83\xab\xfa\x43\x4b\x56\x9d\xd5\xfc\x70\x64\x6b\x9e\xad\xde\xa6\xf9\x52\x36\xcd\x83\x2f\xd7\xa8\x39\xa5\x09\xe8\xa0\x9d\x0d\x9a\xde\x86\x60\xbf\x44\x19\x96\xd2\x48\x46\x66\x04\x47\x23\x76\xc9\x85\x66\x60\x53\xae\x79\x84\x96\x9e\x94\xc8\x23\x45\xd9\xcc\x7f\x74\x82\x46\xf9\xb7\xdf\xfe\x29\xba\xa0\xec\x11\xfe\x22\xfb\xb8\x38\xbd\xc5\xb7\xb7\xf8\xfe\xb6\x2c\xbe\x5a\xf4\x39\x0e\x0d\xbd\xbb\x0d\x19\xd2\xc2\x05\xcb\x72\x05\xa2\x04\xcf\x95\xfe\x53\x77\x09\xe4\xb1\x24\x70\xa8\x9b\x41\xf1\x13\x51\xfe\x45\x2d\xda\xbc\x07\x3b\xe2\x4f\x5c\x3c\x4e\x13\xfe\xec\x07\xfe\x89\x28\x3d\xf6\x5b\xdb\x4b\x1f\x4a\xd4\x87\x12\xbd\x6d\x28\xd1\x5e\x19\xf3\x5e\x9e\xf9\x95\x2d\x7f\x86\x03\xb6\x78\xb2\x5a\x1d\x55\x2d\x7e\xa8\xc0\xcd\xf4\x2a\x5c\xb3\xec\xcc\x59\xc1\x39\x4b\x2f\xbf\x17\xee\x59\x1a\xf4\xeb\x73\xce\xdf\x84\xbf\xa5\x77\xa7\x6c\xb8\x50\xef\x92\xc1\x76\xbc\x3b\x5e\xcd\x19\xf2\xf2\x0c\xbf\x16\xdb\xb0\x4e\x30\xc3\x1a\xd1\x0b\x9d\xc3\x15\x56\xc4\x27\x34\x06\x24\x34\x45\x20\xd4\x43\x0e\x1a\x63\x0c\xb6\x0b\x2a\xd8\xf4\x6e\xea\x1e\x26\xf0\x89\xa8\xd2\xcb\xef\xe5\x6e\x2a\x0d\xfa\xf5\xef\xa6\xdf\x68\x74\x40\x1f\x0e\xf0\x82\x4b\xf7\xa5\xdf\x68\xfb\xeb\xf0\xff\x0d\x78\xf8\x7b\x97\xfe\x5a\x6b\xf4\x65\xf9\xf0\xbf\x54\xa7\xfd\xfb\xf4\xd2\xf7\x6e\xf9\xde\x2d\xff\x16\xfe\x93\xf7\xe7\x96\x7f\x59\xf5\xb4\x38\x5e\x63\x47\x0b\x56\x5f\x0b\x0e\xe5\xbf\x3a\x38\x69\xe0\x2f\xa7\xf2\xad\x1b\x34\xde\xaa\xc3\x9d\x15\xe3\x1b\xc2\x11\xfa\xc5\x12\xd2\x0a\x75\xae\xf6\xdd\x7b\x50\xe7\xea\x83\x7e\x79\x1d\xee\xcd\x98\xef\x0b\x5d\x9e\xef\x84\x0d\xac\x7f\x5b\x7e\xc1\x32\x79\x2f\x8b\xbf\x7c\x36\xfe\xde\x4c\xe8\xfd\xc8\xde\x6f\x70\xf1\x76\xbc\x75\x77\x9e\x93\xd5\x70\xcd\x06\xb7\xd3\xaa\x0c\xab\xea\xd7\x94\xc8\x3f\xbe\xcb\xfb\xf6\x35\x92\xac\xfa\x0b\xb7\xbf\x70\x6d\x53\xfd\x85\xfb\x05\x5f\xb8\x7b\x07\x7f\xb3\x37\x11\xa0\x7d\x10\x79\x0f\x8c\xd1\xc7\x90\xef\x70\x71\xfa\x18\xf2\x3e\x86\xfc\x37\x16\x43\xbe\x8d\xf6\xb4\x29\x16\xe5\x5b\xe8\x51\xbd\x1a\xd5\xab\x51\xe1\xef\xbd\x1a\xd5\xab\x51\xbd\x1a\xf5\x85\xa3\x88\xf6\x3a\x54\xf7\x85\xe8\x75\xa8\xce\x4b\xd5\xeb\x50\x4b\x16\xa7\xd7\xa1\x7a\x1d\xea\xb7\xa5\x43\x91\x27\xc2\x94\x84\x64\xb4\x50\xa3\xf8\x90\x71\xd9\xae\x09\x85\xdc\xa1\x41\x0b\x82\x36\xcb\x49\x61\x10\xb8\xf4\x0b\x9a\x63\x89\x78\x14\xe5\xa2\x72\x06\xaa\x7a\xd0\xa9\x20\x58\x11\x68\x41\x7f\xf8\x1e\xf4\x9f\xfa\x74\x5f\x2b\x06\x7f\xc2\xe3\x1a\xb5\x9b\x83\xd0\xf4\x64\xb9\x3c\xb2\xb3\xa9\xff\x23\x27\xdd\xd4\xbf\x17\x24\x6a\x85\xe5\xe3\x8e\x89\xba\x94\x6b\xb1\x11\x51\x43\x0b\xef\x85\xa8\xeb\xd3\xfd\xcd\x10\x75\xd3\xd4\xf7\x81\xa8\x9f\x6d\x1e\xff\x8e\x09\xbb\x06\x0f\xb0\x11\x71\xfb\x56\xde\x0b\x81\x37\x4f\xfb\x37\x43\xe4\x6d\xd3\x7f\x5b\x42\xf7\x29\x92\x9d\x49\xfc\x5e\xd0\xd9\x4c\xab\x19\xa0\xe1\x69\x52\x5c\x5d\x23\xa8\x48\x0a\x5c\x49\xd6\xfe\xd5\xf7\x40\xd2\x7e\xb0\x66\xec\xbf\x19\x5a\xae\xcd\x7b\x4f\x88\xf8\x58\x90\x88\x3f\x41\xbd\xb0\x6e\xc4\x7c\x4b\x80\x82\x81\x5f\x67\x82\x3c\x51\x9e\xcb\x64\x71\x28\x72\x86\x1c\xf3\x47\xbe\x79\x63\xad\x7e\xa6\x49\x82\x38\xd3\xfa\x97\xc2\x42\xb9\xc7\x5a\xff\x16\x3c\x85\x53\x91\x60\xa9\xd0\x23\xe3\xcf\x0c\x4d\x31\x4d\x72\x41\x50\xc6\x29\x53\x47\x23\x76\xce\xd0\xad\x19\x23\xe4\x0d\x1c\xa0\x5c\xea\xb3\x14\x61\xc6\xb8\x42\xd1\x1c\xb3\x19\x41\x98\x2d\x6c\x02\x6e\x41\x19\x88\x0b\x94\x67\x31\xd6\x8a\xef\x9c\x54\xa3\xf4\xfc\x18\xc1\x7c\x47\x25\xa2\x12\x91\xcf\x4a\x90\x94\x24\x0b\xdd\x87\xa6\x7d\xc5\x91\x5d\x1f\x33\x54\x9b\xce\x47\x84\xe0\x42\x42\xc6\xc1\x64\xf1\x2b\x66\x8a\x32\x82\x40\x51\x92\xc6\x34\x77\x88\x2e\xb8\x04\xb3\xcd\x0f\x7f\x91\x28\x4a\x72\xa9\x88\x38\x40\x93\x7c\x26\xb5\xa6\x98\x25\x58\x4d\xb9\x48\xf5\x08\x29\x93\x0a\x4f\x68\x42\xd5\xe2\x00\xa5\x38\x9a\x9b\xb6\x60\x0d\xe4\xc1\x88\xc5\xfc\x99\x49\x25\x08\xf6\xbd\xbb\x87\xe8\xeb\xf0\x99\x21\x00\xf9\xcd\x01\xa4\x1d\xd2\x54\xab\xbb\xc1\xf0\x8b\x1d\x37\x7b\xa2\x1b\x21\x31\x9a\x90\x08\xe7\xd2\x7a\x18\x94\x58\x20\xf2\x79\x8e\x73\x09\x7b\xa7\xa7\x67\x73\x36\x22\x9e\x66\x09\x51\x04\xd1\x29\x52\x82\x92\x18\xe1\x19\xa6\x7a\xe9\xee\xc8\x12\x10\x74\x4f\xf4\x76\x03\x2d\xd5\xff\x02\xea\x77\xca\x05\x41\x31\x51\x98\x26\x4b\xbd\x4e\xf6\xdb\x9e\xcb\xbd\x27\x2e\x57\xde\xf0\xbd\x60\x73\x06\xc4\x7f\x07\x97\x36\xb3\xa6\xfb\x08\x27\x5b\xde\xdf\xb7\x76\x50\x3d\x6d\xbf\x2f\xda\x36\xbb\xb6\x3f\xc4\xfd\x6a\x31\xd8\xdd\x2b\x5a\x14\xd5\x2c\xde\x15\x4d\xbf\x46\x58\x40\xef\x70\xee\x1d\xce\xad\x2b\xf3\x3e\x1d\xce\x7b\xe3\x31\xea\x7d\xce\x2f\xe4\x73\xa6\xb2\x77\x3a\xf7\x4e\xe7\xae\x0b\xd4\x3b\x9d\x7b\xa7\xf3\xfb\x75\x3a\xbf\x24\xee\xf3\x4e\xd1\x9d\xdf\x95\x68\xdd\x8b\xd5\xbd\x58\xdd\x43\x38\xfb\xa9\xed\x8a\x85\xb9\xaf\x3f\xc4\x24\x21\x8a\xb4\xdb\xb3\x88\x48\xb5\xb6\x60\xae\x67\xca\xb4\x1c\x37\x13\x44\xca\x6d\x19\x92\x6f\xf8\x7d\xb2\x25\x3f\xfc\x1e\x6a\xbe\xe7\x53\x3d\x9f\xda\x64\x6a\xfb\x63\x9a\x0d\x0e\xf3\x6b\xd9\x66\x3d\xff\xcd\xf2\x76\xe9\xef\xc1\xb8\x21\x0b\xbf\xa8\xa1\x70\x2d\xb5\x2b\xee\x0f\xb7\xa5\xf3\x2d\xf9\xb1\xe9\xeb\x7d\x32\x63\x33\xf6\x9e\x13\xf7\x9c\xb8\xe7\xc4\xef\x9b\x13\xbb\x93\xfc\xa6\x2e\x32\xe3\xa7\x1b\x67\x09\x66\x63\x1a\xcb\xe3\x7f\x16\xba\xfc\x4b\x79\xc8\xf4\x81\x8a\x4d\x8a\xa9\x4f\xe9\x14\xbf\xe8\x4f\x92\xc2\x60\xee\x31\x33\x57\x38\xd1\x8c\x8d\xfd\x26\xc1\xec\x3c\x7e\x17\x7e\xb4\xc6\xd9\xbf\x86\x4f\x6d\x1b\x3e\x8e\x15\x78\x3a\x30\x65\xc6\x84\x57\xe4\xd5\x96\x0c\x94\xfb\x71\xc2\xb7\xe1\xea\xc1\xc4\x02\xc6\xee\xf8\x75\xb0\x28\xfb\x37\xed\xde\xaf\xd3\xe7\x12\xf6\x9e\x8b\x8e\x13\xee\x3d\x17\xfb\xeb\xb9\x78\x2b\x77\xe4\x2b\x1f\xcf\xd7\x12\xeb\xba\x07\xe1\x9b\x68\x35\x08\x6a\xcd\xb3\x84\xe3\x78\x99\x2b\xa6\x10\xbc\x42\x70\x94\x95\x91\xf8\xc5\x67\xef\x41\x58\x2b\x46\xfb\x1b\x8b\xe4\xab\x4f\x7c\x5f\xb4\x94\x57\x0c\xe5\x6b\x26\xf1\x35\x54\x92\xf7\x81\x9f\x5a\x8c\xb7\x0f\xed\xeb\x2d\x4a\x6f\x6f\x51\xea\x43\xfb\x7a\x15\x70\xcf\x54\xc0\x3e\xb4\xaf\x0f\xed\xeb\x15\xe4\xe5\xd3\xee\x15\xe4\x2f\x22\xb4\xaf\x93\xa8\xfd\x82\xd8\x9b\xdb\x0b\xdd\xbd\xcc\xed\xde\xeb\x65\xee\x5e\xe6\xfe\x42\x65\xee\xfd\x58\xe1\x5e\xe0\xee\x05\xee\x5e\xe0\xee\x05\xee\x5e\xe0\xde\xf9\x32\xf6\x02\xf7\x6b\x16\xe8\x6c\x96\xba\x57\x24\xd9\xbc\x57\x5f\x4e\x2f\x6e\xf7\xe2\xf6\x7e\x8b\xdb\x7b\x33\xa1\xf7\x53\xe6\xb1\xdb\x7c\xfa\x22\xe5\x7d\x91\xf2\xbe\x48\xf9\x8b\x17\x29\x77\x5f\x77\xc8\xf8\xb0\x87\x4b\x61\x95\x4b\x03\xf8\x28\xc8\x8c\x4a\x05\xec\xbf\x8b\xbc\xb2\x3a\xd1\xe3\xbd\xca\x29\x7d\xaa\x87\x7f\xda\x4b\x2d\xbd\xd4\xf2\x1b\x95\x5a\xf6\x28\x16\x6c\x2f\x32\x56\x52\xac\xa2\x39\x9e\x24\x64\xec\x8d\x3e\xb2\xab\x1e\x7c\x41\xa5\x92\x28\xca\xa5\xe2\x69\xfb\xe5\x72\xe9\x7a\x18\xf8\x0e\x4e\x39\x9b\xd2\x59\x6e\xee\x16\x03\xce\x19\x9c\xe8\x42\x12\x5c\x64\x64\x95\xa7\xaa\xa1\xf5\x77\x71\x2d\x35\x0f\xfd\xb5\x6e\xa7\x75\x04\xf7\xc2\xc8\x67\xa5\x6e\x2d\x6b\x8d\x6f\x87\x77\xd7\x0f\xb7\xa7\xc3\x13\x34\xc8\xb2\x84\x1a\xbb\xbb\x21\x05\xfa\xab\x9e\x14\x52\x58\x3e\x16\x7b\x29\x0c\x99\x1b\x0c\x5b\x30\xf4\x6b\xd9\x18\x1d\xa2\xd3\x8b\x87\xbb\xfb\xe1\x6d\x4b\x83\x96\x50\x20\x6f\x95\xa4\x59\x82\x15\x89\xd1\x63\x3e\x21\x82\x11\x2d\xed\x58\xa4\xdb\xc2\xfc\x6f\x1a\x1d\xfe\xf7\xf0\xf4\xe1\xfe\xfc\xfa\x6a\xfc\xd7\x87\xe1\xc3\xf0\x04\x39\x8a\xd3\xcd\xea\x71\xe9\x51\xc4\x0b\x86\x53\xad\x81\xe8\x1f\x8a\x4c\xd9\x7f\xe4\x24\x27\x08\x4b\x49\x67\x2c\x25\x80\x08\x5c\x6a\xd1\x0d\xf8\x62\xf0\xdd\xf0\xa2\xdc\xf2\x9c\x84\xf0\xbb\x28\xc1\x13\x92\x58\x7f\x04\x98\xd8\x35\xa1\x07\x50\xc5\xc6\x51\x91\x9b\x55\xfd\xeb\xc3\xe0\xe2\xfc\xfe\xe7\xf1\xf5\xc7\xf1\xdd\xf0\xf6\xc7\xf3\xd3\xe1\xd8\x4a\x95\xa7\x03\xdd\x6f\xa9\x27\x2b\x7c\xa2\x7f\xe4\x38\xd1\xda\x09\x9f\x3a\x3c\x5e\xf4\x3c\x27\x0c\xe5\x0c\x28\xce\xa8\x3c\x5a\x0f\xf2\x9d\xea\x53\x66\x66\x74\x73\xf1\xf0\xe9\xfc\x6a\x7c\xfd\xe3\xf0\xf6\xf6\xfc\x6c\x78\x82\xee\x48\x02\x4a\x81\x5b\x74\xd8\xc5\x2c\xc9\x67\x94\x21\x9a\x66\x09\xd1\xab\x81\x6d\x36\xf1\x1c\x3f\x51\x2e\xec\xd1\x9d\xd1\x27\xc2\xcc\x3a\xc2\x99\x85\xf6\x9d\xf0\x3d\x0e\x96\xee\xfa\xea\xe3\xf9\xa7\x13\x34\x88\x63\x3f\x07\x09\x6d\x94\x28\xc7\xc1\x3a\x1f\x96\x87\xad\x99\x03\x74\x6f\x88\x88\x3f\x11\x21\x68\x4c\x2a\x74\x34\xb8\xbb\x3b\xff\x74\x75\x39\xbc\xba\x87\x15\x53\x82\x27\x12\xcd\xf9\x33\x98\xb2\x61\x86\x60\xe1\x7e\xc2\x34\x81\xce\xdc\x66\x71\x86\x9e\xe7\x14\xdc\x1f\x00\xcc\xec\x7b\x36\xfa\x99\xc8\xd9\x9b\x5b\x67\x4b\x07\xaf\xae\xb6\x54\x4f\x52\xfd\x8d\xca\xb1\x58\xf6\x42\x89\xca\xeb\x2f\xae\xa2\xd6\xfa\x17\x15\x72\x6b\x57\xd6\x6a\xf4\xd2\x3e\xd3\x62\xaf\x3b\xeb\x6a\xe5\x35\x7c\xbd\x6b\x96\x28\x41\x23\xf9\xb2\x50\x4f\x22\x67\x8a\xa6\x04\xd9\xce\xec\xe1\xdc\x21\xfc\xd3\xa5\x69\xf8\x3d\x5c\xb0\xb5\x52\x0e\x9f\x88\xb2\xc3\xef\x55\xc0\x5e\x05\xdc\x0f\x15\xf0\xbd\x65\xfb\xc7\x24\xab\x77\x58\x99\x18\xbc\x63\xbc\x5e\xb5\x20\x0d\x63\x4f\xb4\x16\xd5\x84\x3c\x91\x04\xa4\x3c\x25\xb0\x56\x1a\xad\xec\x32\x11\x04\x3f\x6a\x81\x2f\xe6\xcf\xa1\xe4\xd2\x80\xdc\x8f\x76\x73\x0b\x77\x09\xe2\xf8\xd3\x1f\x5f\xef\xb2\xd0\xcb\x1d\xbf\x46\x09\xef\x5b\x08\x92\x59\x8a\x11\x18\x24\xd8\xff\x62\x2d\xc1\x2b\x6e\x8b\xe0\x8b\xf7\x70\x51\x84\xc3\xdd\x23\xad\xeb\x36\x54\x82\x1d\x0b\x4d\x89\xc2\x31\x56\x58\x1f\x9a\x19\x51\x47\xe8\x9a\xc1\xb3\x7b\x2c\x1f\x0f\x90\xbb\xf2\x34\x5b\x29\xac\x0c\xaf\x90\x5a\xff\x4e\x0c\xf8\xeb\xf3\xf1\xfe\xfa\xee\xaf\xef\xe6\x95\xe9\xc3\x3c\x5b\x56\x78\x57\x17\xe3\x5a\x3e\xaf\xdd\xdd\x5f\xa6\xc5\xf7\x7b\x85\xbd\xae\x93\x6b\xa7\x17\x9a\xa9\x9c\xd5\xdf\x56\xe6\xff\xfa\xdb\xaa\xbf\xad\xfa\xdb\x6a\x0f\x56\xf8\xcd\x1d\x86\x0d\xdc\xfd\x4d\x3d\x86\xab\xb4\xd3\x8d\x21\xef\x0a\x6d\x74\x1d\xd0\xbb\x5f\xba\x62\xdb\x15\xdf\xd0\xf7\xe1\x23\x0c\x26\xf9\x1a\x69\x6d\x3b\xbd\xcc\x4d\xbe\x48\xaf\x9f\xbe\xe0\x8d\xdf\x23\x10\xee\x14\x81\x70\x3f\xe6\xfa\x22\x29\x70\x6f\x63\x31\x7d\xfb\xb4\xb7\x1e\x6a\xb0\x4f\xec\xea\x13\xbb\xe0\xf7\x1e\x6a\x70\x77\xd4\xfa\xb2\xd2\x35\x8f\xc9\xb8\x12\x25\xe0\xff\x39\xae\x7a\x7e\x4a\x4f\x42\x37\x50\xe9\x41\x91\xe9\x06\xad\xd3\x78\x97\x45\xa4\xae\x78\x4c\x3a\x47\x12\x94\x5e\xde\x73\x19\xdc\xcd\xd3\xc8\xe2\xa5\x81\xbf\xb0\x24\xde\xb2\xe5\x5f\xa2\x61\xa7\x81\x80\x7b\x2b\xcf\xca\x85\xfa\x52\xe3\x0b\x0a\x0e\xf5\x8e\x3c\x15\xdd\xd8\xb8\x8b\x69\x1c\xb7\x30\xf3\xe6\xe7\x9e\xa5\x37\x3f\x7e\x19\xcc\xa0\xee\x1c\x1d\xcc\x2a\xe1\xdb\xef\xc3\xae\x12\x8e\xf8\x35\x2c\x2b\x4b\xf7\xfe\x8b\xe3\xea\xcb\x28\xb9\xe7\xed\x1d\x97\xeb\x4b\xe5\xf0\x3d\xc4\xcf\x32\x5b\x47\x8f\xa1\xd3\x9b\x5a\xf6\x67\xc2\xbd\xa9\xe5\x5d\x9b\x5a\x8c\x8b\x76\x9c\x61\x41\x98\x6a\x10\xa9\xab\xd7\x09\xbc\x1e\x62\x2e\x38\xa9\x03\x1a\x40\x5a\xa2\x45\xf6\x42\xf6\x57\xd5\x97\x65\x7b\xb1\x82\x41\x90\x09\x79\xfc\xcf\xe2\x6f\x2f\xac\x97\x2a\x40\x2c\x89\x4e\x32\x58\xff\x52\xdf\xd1\xb9\x0d\x54\xda\x3e\x57\x12\xab\x92\x28\x08\x41\xd4\x2b\xe3\x99\x6e\xcc\xdb\xef\x2b\x45\xb2\x36\xe8\xd7\x8d\x6d\xaa\x6f\x7c\xb7\x03\xe4\x76\x86\x9a\x74\xbf\x20\xa7\x4c\x4b\xa3\x7c\x5a\x5c\x0c\x12\x3d\xd3\x24\x01\x44\x11\xc8\x78\x6c\xbb\x01\x7e\x73\x11\x0f\xad\x3b\xff\xa6\x71\x0f\x4d\xdc\xa1\x89\x25\x74\xb1\xa7\xee\x2a\x67\xda\x11\x1b\xa4\xb3\x82\x36\xb4\xc2\x00\xfb\x65\x70\x82\x4f\x44\xbd\x16\x1b\xd8\xf4\xec\x2f\x3d\xf7\x82\x4c\x89\x20\x2c\x22\x7b\xe8\x6d\x5f\x27\x0c\xe4\x27\x33\x49\x1b\x03\xe2\xa1\x04\xc2\xa9\x2a\x6e\xf5\xb4\x92\xa8\xdb\x67\x92\xf7\x99\xe4\x7d\x26\x79\xf5\xa8\xf7\x99\xe4\x7d\x26\x79\x63\x0e\x44\x4c\x12\xa2\x48\xab\x54\x71\x06\x8f\xdf\x4a\xaa\x30\xbd\x7f\x19\x82\x85\x99\x4b\x2f\x5b\xfc\x66\x34\x0b\xb7\xe1\x7b\xa1\x59\x98\xb3\xb6\xca\xfc\x50\xfa\xb1\x21\xc4\xfa\xd5\x4d\x12\x9b\x30\x8d\x92\x5d\xe2\x0c\x5e\x7f\x97\xac\xa3\x3a\xf4\xde\x46\x81\x82\xad\x7b\x39\x4e\x52\x3b\x02\xdd\x26\x6e\x3d\x86\xef\x77\xde\xfb\xc2\x41\xdb\xe8\x7e\x5f\xf9\xe8\xc6\x49\x29\xfb\x62\xb1\xf9\x82\x78\x64\x6f\xbd\x79\xe3\x5c\x89\x1a\x33\x7c\xb7\xd3\xed\x8d\x55\xbd\xb1\xaa\x37\x56\xf5\xc6\xaa\xde\x58\x85\x7a\x63\xd5\xda\xc6\xaa\x2f\x48\xa6\xea\x0d\x57\xbd\x58\xb5\xbb\xe9\xee\xab\x96\xb9\x4f\xd6\xba\xce\x28\xe9\x45\x0e\xd5\xca\xc8\x7b\x3b\xed\x5f\x56\x84\xdc\xdf\xb8\x11\xbc\x1f\x7e\x25\x5f\x9a\x25\x6d\x13\x58\xec\x76\xf4\x8b\x8d\x2b\xee\x4b\x87\x36\xae\x55\x1f\xf6\xbc\x64\x71\xfa\xb0\xe7\x3e\xec\x79\xef\xc2\x9e\x77\xae\xac\x64\x5c\x2e\x03\x24\x32\xa5\xb3\x96\xe6\x3f\xbb\x3b\x1b\x12\x8d\x80\x14\x0c\xca\x71\x4c\xb2\x84\x2f\xc0\x92\xb2\xe4\x3a\x77\x5d\xdc\xd4\x24\xea\x7d\xbf\xd1\xdd\xc8\x5f\x4b\xe7\xd8\x17\x99\xb4\x98\xf7\x5e\x48\xa1\xc7\xff\xac\xa4\xf3\x77\xc2\xcb\x64\x88\x7c\xa6\x12\x6e\xa5\xd5\x84\x3d\x62\xcd\x4f\x82\xd2\x85\xf6\x1e\x9c\xe4\x2a\xc8\xdd\x93\x5a\xb0\xca\x88\x50\x8b\xe0\x4d\x92\x66\x6a\xf1\x5f\x23\x46\x95\xf7\xb0\xd1\x19\xe3\xc2\x70\x35\xfd\xf1\x1c\xb3\x38\x21\x42\x5f\xaa\xae\x9d\x08\x33\xc6\x15\x88\x1b\x30\x83\x18\x3d\x51\x6c\x84\x93\xc1\xcd\x79\x67\x3f\xf3\x3b\x3a\x5d\xaf\x5d\xac\x6e\xc5\x5d\xf7\x29\xe1\x13\xa8\x60\x99\x97\x75\x7a\xdd\x40\xef\x19\x2d\xed\xdc\x5b\x31\x04\x85\xe5\x63\x15\x38\xa4\x9c\x85\x3e\x5e\x0a\x25\xb2\xe2\xdd\x12\xc6\xfc\xf2\x57\x2b\x70\x23\xe5\x67\x16\x80\x04\x1e\xc3\x90\xab\xe3\x70\x3f\x86\x1d\xba\xdf\x8a\x96\xdd\x2f\xae\x74\x37\xfc\x28\x88\x12\x8b\x31\x56\x4a\x33\x99\x5d\x62\x9c\xdc\x63\xf9\xd8\x19\xe3\xa4\xf4\xf2\x9e\xb3\x9c\x12\xc6\x49\x79\xe0\x2f\xce\x72\x3a\x52\xe7\x0a\xce\xf4\xfe\xf2\xe3\xbb\x9e\xb5\x35\x26\xfe\x5b\xc9\x95\xef\xc6\x7b\x56\x99\x69\xdf\x63\xde\xfc\x32\x66\xba\x37\x23\xac\xf0\xf3\x2f\xf1\xe4\x96\x6f\xa7\xfe\x88\x2e\x5b\xa3\x2f\xae\x10\x6e\x45\xe8\x58\x31\xb7\x77\x52\x10\xb7\x2a\x37\xed\x7a\x54\x2f\x63\xe6\x0e\x76\x63\x9d\x18\xa0\xf3\x32\x5a\xb9\x3f\x43\x2e\x2a\xa8\x28\x3d\x3b\x87\x44\x6b\x2a\xc3\x84\xf8\x88\x0b\x23\x79\xc5\xf6\xcc\x1a\xb3\x9d\x01\xf3\x3d\x41\x03\x14\xdb\xda\xfc\x82\x64\x82\x48\xc2\x94\x51\xb5\x4d\xbd\x2b\x57\xde\x9f\x32\x6b\x21\x3a\xc3\x0a\x9f\x62\x85\x13\x3e\x3b\x42\x03\x5f\xd8\x9f\x4a\x84\x13\xc9\x11\x76\x84\x43\x62\xd7\x04\x66\xb1\x63\x0f\x18\x45\x3c\xcd\x68\xe2\x91\xda\xbd\x15\x9f\xb2\x98\x3e\xd1\x38\xc7\x89\x47\xc6\x1e\xb1\xe1\x13\x61\x2a\x07\x15\x0e\x27\x09\xb2\xdd\xba\x17\x02\xfd\xdc\x8d\x52\xd2\x94\x26\x58\x20\xc5\xed\x68\xaf\x6d\x5b\xe8\x7e\x4e\xfc\x58\x1d\x0a\x38\x4a\xf1\x23\x91\x88\x2a\x94\x71\x29\xe9\x24\x29\x8e\xf1\xc3\x39\x82\x71\x9f\x5e\x9c\x83\x69\x34\x52\x88\x1b\x3e\xe8\x3a\xb7\x7e\x02\xd7\x63\x8a\x19\x23\xd0\x31\x57\x73\x22\x6c\xf7\xf6\xe5\xb7\xb6\x72\xbe\x35\x46\x74\xbb\xc5\x34\x1c\xd9\xdb\x29\x9d\x9d\x35\xce\xae\xea\x66\x37\x5d\xb3\x5d\xd1\x7c\x01\x2f\x6d\x77\x6d\xf0\x82\xca\xb2\x3a\xf8\x2e\x5c\xb6\xa5\x11\xbf\x06\x3e\xda\x6f\x54\x11\xec\xb5\xc0\x17\x59\xb7\x2f\x55\x05\xdc\x73\xfd\xaf\x47\x76\xeb\x51\xec\xfb\x00\x8c\x1d\x2e\x4e\x1f\x80\xd1\x07\x60\x7c\xb1\x01\x18\xed\xda\x04\x8d\xb7\x4e\xd7\x5b\xb3\x82\x94\x37\x0a\x88\x5f\x40\x94\xc2\xf2\xb1\x6b\x4d\x29\x2d\x2a\x9f\xc7\xef\x42\xaa\x6f\x9c\xf0\x6b\x48\xf7\x7d\x9d\xa2\x9d\xd6\x29\xda\xbb\x69\xf7\x82\x5f\x2f\xf8\xf5\xb2\x4d\xc7\x09\xf7\xb2\xcd\xfe\xca\x36\x6f\xa5\xb0\x7c\x49\x10\xba\x5a\x78\x2a\x65\xc6\x2c\x0d\xb0\x35\x70\x34\xe0\x1e\xc8\xb3\x84\xe3\x78\x55\x10\xce\x2f\xa8\x90\x6b\x96\x88\x66\xa6\x5d\xfd\xc1\x9e\x4b\x66\xb5\xf8\x1b\x33\xf2\xdf\x42\x4c\x6d\xeb\xd4\xdf\x34\xac\x16\xe8\x17\x82\xc9\x4a\x41\x69\x2f\xa5\x85\x54\x69\xba\x93\xc2\x21\xff\xb8\xe7\x54\xed\xb7\xf4\x35\xd4\x8b\x2f\xd8\x41\xd0\x3b\x01\x7e\x9b\x85\xcf\xf7\x46\x6a\xed\x55\xbb\x3e\xab\xb2\x37\xea\xf7\x8a\x6f\xaf\xf8\xee\x7c\x19\xf7\x49\xf1\x7d\x43\x89\xda\xa4\x89\xbc\x48\x19\xc3\xcd\x64\xeb\x5e\xb4\xee\x45\xeb\x5e\xb4\xfe\x62\x45\xeb\xfd\x58\xe1\x5e\xae\xee\xe5\xea\x5e\xae\xee\xe5\xea\x5e\xae\xde\xf9\x32\xf6\x72\x75\x45\xae\x86\xbf\x5c\x9a\xf4\xba\x42\x76\x67\xe1\xba\x43\x4e\xf4\x7b\x91\xac\x7b\xa9\xba\x97\xaa\xf7\x5b\xaa\xde\x9b\x09\x7d\x79\x89\x90\x7d\x2a\x61\x9f\x4a\xd8\xa7\x12\xbe\x45\x2a\xa1\xe3\x25\xcb\x24\x94\xba\x60\xf1\x63\x8d\x03\xed\xad\x6c\x51\x8c\x76\xd3\xf0\x8e\x5d\x2d\xb5\x03\x9a\xdf\xa4\xd2\x54\xe9\x37\xd7\xd0\x1e\xd5\x9f\x3a\x70\xd2\x82\x66\x14\x6e\x7c\xab\x11\xc2\x7e\xb2\x6f\xbe\x2f\x30\xf0\xfa\xa8\xfb\xfa\x53\x28\xd8\xb5\xbe\xfe\xd4\x0b\xce\xdb\x1d\xae\x15\x33\x77\x34\x6a\x6c\xbc\xef\x74\xda\x6f\x0e\x2e\xd7\x7e\xd2\xdf\x34\x5c\xae\xf1\x26\xa9\x25\xef\x1c\xff\xb3\xf1\xa2\x78\x83\xb2\x5b\x6b\xdf\x0e\x9f\x88\xfa\x52\xae\x86\xbe\xec\x56\x5f\x1f\x62\x47\xd3\xdd\x88\xf5\xbf\xdb\xd9\xf6\x45\xc6\xfa\x22\x63\x7d\x91\xb1\xbe\xc8\x58\x5f\x64\x0c\xfd\xc6\x8b\x8c\xad\x2d\x3e\x9a\x71\x7c\x29\x12\x64\x5f\x64\xac\x17\x22\x77\x37\xdd\xdf\x96\x10\xb9\x87\x16\x84\xbd\xa8\xa6\xe6\x2d\x08\x6f\x8e\xfb\xe1\x46\xd2\x15\xfb\xc3\x2d\x68\x8f\xff\x61\xff\xaf\xc7\xff\xe8\xf1\x3f\x5a\x66\xdd\x07\xb3\xf6\xf8\x1f\xa8\x0f\xd7\xec\xc3\x35\xf7\x39\x5c\xb3\xc3\x36\xf6\xf8\x1f\x1d\xc5\xb9\x17\xc2\x00\x71\x32\xd7\x5a\x38\x20\x3f\xd5\x15\x8d\xbd\x95\xd2\xdc\x58\x7f\x3b\x38\x20\x8d\xd3\xde\x0b\x95\xe4\x15\x71\x40\x9a\xe8\xba\xb3\x02\xf2\x3e\xf0\x40\xdc\x68\xfb\xc4\xc5\x3e\xc4\x7a\xff\x43\xac\xf7\x2e\x71\x71\x6f\x24\xd9\x5e\xdd\xeb\x73\x17\xfb\xdc\xc5\x5e\x19\xee\x95\xe1\x9d\x2f\xe3\x3e\x29\xc3\x6f\x2c\x61\xbf\x20\x2e\xc8\x76\xb2\x76\x2f\x6a\x9b\xf7\x7a\x51\xbb\x17\xb5\xbf\x50\x51\x7b\x3f\x56\xb8\x97\xb3\x7b\x39\xbb\x97\xb3\x7b\x39\xbb\x97\xb3\x77\xbe\x8c\xbd\x9c\xfd\x6a\x38\x21\x4d\xc2\x76\xc7\x7c\x9b\xf7\x24\x69\xf7\x52\x76\x2f\x65\xef\xb7\x94\xbd\x37\x13\xea\x31\x43\x7a\xcc\x90\x1e\x33\xa4\xc7\x0c\xd9\x48\xbe\xf9\x37\x7b\x2c\x3f\x04\x37\xb1\xbf\xb2\x3f\x7c\x97\xf0\xc9\xfd\x22\x23\xfa\xbf\x67\x34\x25\x4c\x82\x34\x4a\xd5\x22\x94\x67\x5a\x56\xbe\xbe\xe6\x1f\xee\xce\xaf\x3e\x5d\x84\xd9\x34\x1f\x2e\x1f\x2e\xee\xcf\x6f\x06\xb7\x7e\x5d\xfc\xac\xc2\xb5\xb0\xdf\x95\x44\x32\x4b\xf2\xb7\x44\xeb\x9e\x70\x6a\xee\x14\x56\xb9\xdc\x6c\x64\xb7\xc3\xbb\xe1\xed\x8f\x90\x0d\x34\x3e\x3b\xbf\x1b\x7c\x77\x51\x22\x88\xd2\xf3\xc1\xe9\x5f\x1f\xce\x6f\xdb\x9f\x0f\xff\xfb\xfc\xee\xfe\xae\xed\xe9\xed\xf0\x62\x38\xb8\x6b\xff\xfa\xe3\xe0\xfc\xe2\xe1\x76\xb8\x74\x3d\x96\x8e\x76\xb9\x12\x22\x61\x91\x20\xce\x1f\x45\x96\x6b\x88\x62\x0d\x91\x17\x1f\x1d\x3b\x6c\xea\xeb\x04\x3d\x58\x9d\x9e\xda\xc6\x0d\x83\x0d\x1a\x32\xca\x48\x4c\x25\x9e\x24\x24\xae\xb5\xe4\xd6\xb0\xad\x25\x5c\x1a\xd4\xb3\xd6\x9e\xbd\xc8\xa9\x79\x5e\x64\x78\x01\x82\x1c\x45\x45\x58\xdc\xd0\x87\xd9\x87\xd6\x1e\x98\xe6\x5d\xf4\x89\x94\x7a\x8a\x72\x21\x08\x53\xc9\x02\x91\xcf\x54\x2a\x59\x6b\xd4\x6d\x5f\x5b\xb3\xf6\x4e\xf5\x0d\xce\xb1\x44\x13\x42\x58\x79\xfc\x82\x24\x04\xcb\x86\x31\xdb\xdd\xef\xb6\x2c\x7e\xaf\xac\x35\xc6\x5c\x46\x53\x4c\x93\x5c\x90\xca\x69\xe1\x69\x86\x05\x95\x9c\x0d\x3f\xeb\xbb\x4c\x1f\xe4\x6b\xf8\x9c\x8b\xcd\x4e\xcc\xf0\xaf\x21\x05\x5f\x95\xff\xf9\xe9\xbe\xfc\xaf\xd2\x99\xbf\xb8\x2f\xff\x6b\x39\xad\x07\x0d\x57\x29\xfb\x10\x7d\xba\x3f\x41\x9f\x20\xc4\x49\xa0\xfb\x39\x36\x14\x7b\x71\x7f\x82\x2e\x88\x94\xf0\x4b\xf1\xb1\xa2\x2a\x81\xb9\x7d\x47\x19\x16\x0b\xe4\xa6\x6f\x12\x5d\x71\x34\x47\xc4\x2f\x4d\x75\xf1\xd8\xdf\x73\x06\xaa\x7b\xb1\x7a\x17\x7c\x46\x23\x9c\x6c\xb7\x88\x83\xab\x12\x1f\xb8\xbe\x5d\xba\x14\xe1\xdb\xf5\xb5\x18\x5c\x9d\x41\x12\xa9\x1b\x6a\xc3\xcc\xaf\x88\xd4\x44\x12\x71\x16\x5b\x2f\x8d\xbe\xfd\x17\x81\x50\xff\x77\x0e\x89\xb8\xb9\xa4\x6c\xa6\x5b\x44\xc7\xe8\xfa\x76\xc4\xae\x45\x6c\x0c\xa1\x44\x4b\xc3\x86\xe6\xa8\x44\x8c\x2b\x44\xd3\x8c\x0b\x85\x99\xd2\x8a\x00\x88\x01\x76\x45\x0c\x07\x38\xe5\x69\x9a\x2b\xac\x0f\x5a\x6d\x51\x99\x31\x87\xdc\x11\x75\x1e\x83\x6b\xa5\x61\x0d\x8d\x9c\x50\xcc\x25\x13\xba\x7d\x2d\xa3\x94\x75\x68\x1a\xd7\x54\x59\xd7\x04\x16\x02\x97\xa5\x89\x0f\x54\x91\xb4\xfa\x7e\xc7\x20\xcf\x7f\x35\x1a\x08\x4e\x4d\x52\x05\x11\x03\x11\xcd\xa9\x22\x91\xd2\x47\x70\x23\x9a\x78\xb8\xfa\xe1\xea\xfa\xa7\x50\x82\xf8\x30\xb8\x3c\xfb\xf3\x7f\x94\x7e\xb8\xbd\xac\xfd\x30\xfe\xf1\xcf\xb5\x5f\xfe\x7f\x4b\xe9\xa9\xda\x53\x4d\xcf\x0f\xe6\x72\x08\x22\x35\xd8\x84\xdd\x54\x11\x4d\xf1\x8c\x20\x99\x67\x9a\x02\xe4\x51\x79\x7f\xb5\x48\x79\xc1\x71\x4c\xd9\xcc\x64\x80\x5e\x50\x45\x04\x4e\x2e\x71\xf6\xd1\xd9\xaf\x37\x58\x9d\xff\x7b\x57\xca\xd7\xfd\xf0\xf3\xe0\x32\xcc\xf8\xfd\x70\x73\x7b\x7d\x7f\xbd\x74\xd6\xa5\x16\xea\xc7\x48\x3f\x3e\x81\xff\x45\xc7\x48\xb7\xee\x25\xdf\x94\x28\xac\x35\x02\xf4\xb5\x49\x9a\xf3\x89\x34\x94\x25\x70\x6a\x32\x41\x53\x0a\x57\x8a\xb1\xe0\x7d\x63\x84\x6b\xaf\x3d\xf8\x73\x63\x3e\x00\x6d\xd9\x5d\xca\x2c\xc6\x22\x46\x7f\x97\xd5\xf4\x71\x30\x1c\x9b\x1f\x48\x8c\x0e\xd1\x5c\xa9\x4c\x9e\x1c\x1f\x3f\x3f\x3f\x1f\xe9\xb7\x8f\xb8\x98\x1d\xeb\x3f\x0e\x09\x3b\x9a\xab\x34\x31\xe9\xf2\x7a\x15\x4e\xd0\x8d\xe0\xfa\x0a\x01\x05\x9d\x08\x8a\x13\xfa\x2b\x89\xd1\xc4\xf0\x3f\x3e\x45\xbf\x44\x5c\x90\xa3\x62\x63\xac\x51\xc9\xde\x23\xd6\xf0\x74\xac\x5f\x6a\x60\x26\xd5\xfd\x44\x31\x89\x68\x6c\xc5\x0c\xc2\x22\x0e\x96\x47\xe3\xab\xd0\xed\xb9\x4c\x43\xad\xd1\x64\xb9\x2a\x96\x33\x50\x56\x70\x4c\x82\x6c\x77\xc5\xcb\x04\xa7\x15\x9f\x73\xa3\xb6\xe6\x5a\x45\xd7\x77\x2b\x86\x5b\xd5\xbd\x9a\xe9\x09\x47\x3c\x41\x93\x7c\x3a\x25\x22\x74\x48\x1f\x68\x6d\x86\x4a\x24\x48\xc4\xd3\x14\x24\x06\xfd\x55\x2e\x0d\x55\xc3\x8a\xd9\xd1\x1e\x8d\x18\xec\xbf\x56\x73\x80\x02\x62\x0e\xac\x8e\x11\x12\x23\xcc\x16\xa6\x9b\x49\x3e\x0d\xdb\x37\x30\x14\x38\x46\x54\x8d\xd8\x20\x49\x90\x20\x29\x57\x24\xc8\xa1\x04\xe7\x59\x79\xc1\x81\x45\x0a\x92\x25\x38\x22\xb1\xa1\x87\x84\x47\x38\x41\x53\x9a\x10\xb9\x90\x8a\xa4\x61\x03\x5f\x83\xad\x46\xaf\x19\x95\x28\xe6\xcf\x2c\xe1\xd8\xce\xa3\xfa\xd9\x37\xe5\xd3\x38\x74\x10\x01\x43\x21\xb8\x80\xff\xf9\x81\xb2\x78\x67\x1c\xea\xe1\x6e\x78\x1b\xfe\xfb\xee\xe7\xbb\xfb\xe1\xe5\x7a\xdc\xc7\x53\x16\x0c\x0f\x74\xf8\x13\x74\x67\x16\x81\x0b\x2d\x11\x89\x96\x49\x5d\x5a\x52\x2a\x7e\xe0\xf1\x86\xdc\xf7\x72\x70\xf5\x30\x28\x71\x94\xbb\xd3\xef\x87\x67\x0f\x15\x7d\xc0\xce\xaf\x24\xc3\x1b\xf5\x2f\xfc\xed\xf4\xfb\xf3\x8b\xb3\x71\x83\xc2\xf8\xe1\x76\x78\x7a\xfd\xe3\xf0\xb6\xd0\xed\x1a\x97\xa8\x32\x98\x2a\xb3\xba\x37\x4c\x69\xce\x63\x34\x59\x34\x03\x42\x68\xc9\x39\x01\x5f\x6c\x01\x89\x62\x5a\x3d\x01\xde\xe4\xb0\x39\x8a\x2f\x52\x1e\x93\x03\xfb\x0e\x20\x69\x18\xe3\x8a\x91\x98\x9b\x1b\xd6\xbd\x63\x16\x18\x2a\x0c\xc8\x85\x5f\xb8\x13\x34\x40\x52\xbf\x98\xeb\x43\x2d\xe8\x6c\x06\x86\xc3\xca\x50\x4d\x6b\xf6\x53\x58\x5e\xf8\xce\xec\x7f\x26\x38\x9c\x73\xdd\xad\xb5\x38\x7b\xab\x84\xf9\x10\x50\x57\xca\x2d\x0a\x0c\x06\x87\x86\xa1\xb9\xcd\xd2\x8b\xd0\xba\x5e\xe6\x3c\x1a\x7b\x91\x3e\x5c\xc0\xb6\xa4\xb1\x77\x66\x82\x3c\x51\x9e\x07\x9f\x5a\x60\x8f\xd2\x8e\x37\x36\x5f\x2c\x00\x2c\x9b\x31\x8a\x54\x9a\xf1\xe4\xd1\xd8\x82\x66\x61\x4f\xd0\xc2\x54\xf0\xb4\xa1\x8d\xf2\x31\x39\xbf\xbe\x53\x02\x2b\x32\x5b\x9c\x59\x96\xb1\xf9\xf1\x38\xbb\xfe\xe9\xea\xe2\x7a\x70\x36\x1e\x0e\x3e\x95\x4f\xbc\x7f\x72\x77\x7f\x3b\x1c\x5c\x96\x1f\x8d\xaf\xae\xef\xc7\xee\x8d\xa5\x24\xdf\xd2\x41\xfd\x9e\x2e\xbf\x78\x82\x34\xcb\x05\xd6\xe8\x00\xef\x02\xfe\x38\x21\x53\x2e\x0c\x9f\x4f\x5d\xe8\x82\x15\x61\xdc\xda\x5a\x5d\xac\x32\x8b\x13\xb0\x8c\x35\x35\x69\xac\xde\x4a\x10\x9c\xc2\x3d\x81\x19\x1a\xb2\xf8\xf0\x7a\x7a\x78\x67\x7e\x4c\xb1\x78\x24\xc2\x7f\xfa\x2c\xa8\x52\x84\x95\x54\x3a\xec\x86\xec\x95\xc4\xa2\x83\x23\x74\xab\xf9\xbe\x7e\xdf\x5f\x6a\x9a\xd8\x63\xa2\x30\x4d\xa4\x1d\x6c\x69\x5d\x4f\xd0\x05\x16\xb3\xc2\x0e\xf7\x35\x9f\x4e\x4d\x63\xdf\x98\x61\xe8\x3b\xac\x34\x8b\x06\xde\xab\x49\xc3\xdd\x8b\xd0\x9f\x7d\xd9\xcb\xc3\x75\xaa\x7a\xc8\xb6\xa3\xa9\x87\x1b\x58\x71\xa3\xb1\x97\x74\x43\xfb\xa4\x81\xd6\x60\xe2\xe6\xf1\xf2\x4b\xa6\xb9\xed\x3a\x39\x95\x5f\x6c\x20\x27\x93\x4b\xa5\x77\x7e\xaa\xb5\xcd\x06\x5a\x22\x9f\xa9\x35\x18\x84\xe3\xae\x90\x50\xd1\x0c\x98\x57\x71\x96\x11\x2c\x64\xd3\x6e\x97\xc5\xc0\x96\xbd\x37\x3d\x85\x7d\xd8\x4d\x76\xfd\x1c\x20\xce\xc0\xe0\xe0\x85\x88\x0a\x45\x76\xa0\x01\xd3\x56\x8d\x02\x6e\x00\x6d\xe9\xda\x22\x1b\x5d\x52\xa9\x95\x46\xf3\xe3\x77\x16\x72\x69\x33\x82\xf8\x38\x38\xbf\xa8\x08\x17\xe3\xb3\xe1\xc7\xc1\xc3\xc5\x72\x33\x61\xe9\xbb\xea\x16\xa3\x43\xa4\x9f\x97\xfd\xe6\x74\x6a\xee\x0c\x07\x1c\x65\x54\x5a\xc2\xc0\x68\x65\xa1\x6a\x8c\xbd\x3a\x26\x59\xc2\x17\x29\x61\x60\xe2\x29\xdd\x84\x7a\x3d\xa7\x98\xda\xab\x25\x18\x2c\x58\x71\xac\xd9\x0d\xae\xb1\x43\x87\x56\x45\x62\x7f\xf3\x96\xc1\xaa\x2a\xac\xfb\xc6\x78\xcf\xec\x7f\xee\x14\x56\x1b\x9e\xb1\xc1\xe9\xfd\xf9\x8f\xc3\xb2\x7e\x78\xfa\xfd\xf9\x8f\x4d\x52\xcd\xf8\xd3\xf0\x6a\x78\x3b\xb8\x5f\x21\x9c\x54\x9a\x6c\x12\x4e\xa4\x1e\x70\xd5\x7b\x4a\xa5\x8f\x08\x8a\x0c\xe4\x15\xa2\x4a\xa2\x27\x2a\xe9\x84\x02\x40\x98\xf5\x44\x3e\x9c\x03\x67\x7d\xc2\x09\x8d\xa9\x5a\x38\xf1\xc5\xf4\x5b\xde\x47\xcd\x49\x6d\xfb\xc6\xec\x10\xfa\x27\xc1\xca\x67\x36\xc7\x4d\xfa\x04\x81\x6e\xfb\x04\x4a\x5b\xf0\x19\xd3\x82\x34\x9b\x11\x61\x86\x03\xde\x97\x70\x2c\xc1\x73\x3d\xaa\x50\x58\x29\x56\xcd\x0b\xad\x33\xc2\x88\x00\x10\x38\xdf\x89\x11\xa4\x04\x61\x5f\x69\x99\x2b\x4b\x68\x44\x55\xb2\x40\x11\xd8\xb0\xc0\x9c\x99\x62\x86\x67\x56\x38\x00\x35\xa7\x42\x12\x7f\x35\x28\x6a\xd7\x53\x6b\xda\xbf\xa7\x64\xc3\x63\xf6\x70\x75\x36\xfc\x78\x7e\x55\x26\x81\xef\xcf\x3f\x95\x44\xd8\xcb\xe1\xd9\xf9\x43\xe9\x36\xd7\x92\xec\x72\xb9\xbe\xda\x6c\xc3\x51\xf4\x2f\x9d\xa0\x33\xf3\xe9\x89\x5e\xdc\x06\x88\x38\xaf\xfc\x56\xd6\xe1\xd6\x85\xe4\xb9\x3f\x86\x4c\x89\x46\xbf\x44\x57\x13\x92\xf5\x41\x96\x6c\x48\xcd\xa1\x0a\xb5\xbe\xaf\xaa\x4e\xe5\xea\x94\xdd\x8b\x10\x74\x79\x54\x58\x96\xc2\x18\x06\x30\x1a\xb4\x19\xb1\x1a\xdc\x5a\x05\xc3\xfe\x11\x5c\xd4\x69\x2e\x95\x71\x25\x02\x71\xa2\xc7\xbf\x48\xbd\xa0\xe0\x6a\x3c\x42\x77\x84\x8c\x98\xb3\x1e\xcc\xa8\x9a\xe7\x93\xa3\x88\xa7\xc7\x05\x3e\xe1\x31\xce\x68\x8a\xb5\x24\x4d\xc4\xe2\x78\x92\xf0\xc9\x71\x8a\xa5\x22\xe2\x38\x7b\x9c\x41\x04\x8c\x73\xa7\x1e\xfb\x66\x67\xfc\xdf\x2f\xfe\xf4\xed\xe1\xc5\x5f\xbe\xfd\x50\xb7\x90\xb5\xed\xff\x90\x45\x38\x93\x79\x62\x23\xe6\x44\xb8\x36\xee\xc8\xe7\x64\xd5\x7e\x5f\x95\xb7\x6b\x3b\xfd\xf5\xf4\xe6\xa1\x64\xb1\x2e\xff\xf3\x72\x78\x79\x7d\xfb\x73\x89\x53\xde\x5f\xdf\x0e\x3e\x95\x18\xea\xf0\xe6\xfb\xe1\xe5\xf0\x76\x70\x31\x76\x0f\xb7\xb1\xbd\xfd\xc0\xf8\x33\x2b\x2f\x8d\x74\x1c\xb0\xd6\xd3\x09\xfa\xc8\x05\xfa\xc1\xef\xe4\xe1\x04\x4b\xb8\x62\xdc\x9d\x25\x0f\x50\xc6\x63\x60\xbc\x88\x64\x73\x92\x12\x81\x13\x6b\x33\x90\x8a\x0b\x3c\x33\x37\xbd\x8c\x04\x56\xd1\x1c\xc9\x0c\x47\xe4\x00\x45\x40\x0d\xb3\x03\xd8\x14\x50\xb5\xf8\xac\x6a\xe7\xbb\xcd\x99\xa2\x29\x71\x2a\xb8\xfd\xe7\xbd\xd9\x8c\x0d\x36\xe7\xfa\xfe\xfb\xb2\xb0\xf7\xf1\xe2\xe7\xfb\xe1\xf8\xee\xec\x87\xa5\xeb\x69\x3e\x2b\x8d\xec\x0e\x02\x90\x4e\x79\x92\xa7\x2c\xfc\x7b\xf3\xb1\x9d\x5f\xdd\x0f\x3f\x55\x47\x77\x3d\xb8\x2f\x53\xc6\x6d\x39\xc0\xed\xc3\x77\xd7\xd7\x17\xc3\x92\x4b\xf8\xc3\xd9\xe0\x7e\x78\x7f\x7e\x59\xa2\x9f\xb3\x87\x5b\x83\x46\xb8\x6c\x9a\x6e\x04\x0d\x13\xd5\xd3\x0a\xa7\xb9\x6b\x56\xd8\x89\x13\x0d\x6c\x40\xb9\x39\xcb\x87\x01\xdc\x8e\x09\x07\x03\xab\xce\xa1\x37\xa9\x46\x66\xa4\x8d\xec\x50\x95\xb7\x09\xb5\xb3\xe3\xa5\x1b\xbd\x8c\x2b\xdf\xfb\x21\x18\x28\x50\xa3\x6c\xe3\x24\xe1\xcf\x26\x94\x37\xa5\xfa\x56\xb6\xc0\x68\xfa\x15\x59\x78\x08\x8f\x1a\x38\x5e\x79\x5b\x48\x24\x88\xba\xe4\x39\x53\x9b\x93\xdc\xe0\xaa\xc4\x77\x86\x57\x3f\x8e\x7f\x1c\x94\x29\xf0\xfc\x62\x39\xab\x09\x9b\x68\xb8\x8a\x07\x57\x3f\xfb\x4b\x18\x02\xbe\x0f\xbc\x86\x6a\x64\xd7\x28\xa1\x5a\xec\x8d\xb0\xd6\x5e\x13\x90\x68\x10\xa1\x60\x72\x48\xf5\xe4\x20\xc0\x34\x33\xfe\x24\xc3\x9f\xcc\x20\x4f\xdc\x1f\x95\xf6\x24\xac\x0b\x58\x53\x5d\x3c\x3d\xb4\x63\xb5\x6a\x86\x08\x7b\xa2\x82\x03\x9e\x2d\x7a\xc2\x82\x6a\x69\xdc\xb4\xac\xe7\x7a\x02\xff\xbb\x5e\x9b\x60\x18\xad\x30\xae\x3b\x2e\xd4\x99\x0f\xe4\xdd\xcc\x1a\xd2\x14\xd0\x5a\x0f\x65\x6d\x36\x74\xd4\xbf\x6d\xd8\x9c\x2d\x03\x7e\xcb\x13\xfe\x47\x72\x46\x71\xa2\x19\xc0\xee\xe4\xc5\xc1\xd5\xdd\x79\x59\x7e\x2c\xab\x19\x01\x5f\xde\x58\x5e\x04\x43\xa5\x19\xb9\x53\x26\xee\xfe\x7a\x61\xb4\x0b\x00\x3d\x36\xe7\x36\x50\x2c\x40\x00\x72\x28\x28\x19\x16\xb2\xf2\x85\x44\x00\x84\x56\x04\x5c\xe9\x3b\x0b\xc2\x99\x9e\x38\x8d\x47\x8c\x7c\xce\x08\x93\x10\x1c\x60\xee\xb3\xc2\xd7\x2e\x8f\xd0\xf9\x14\x58\x82\x7e\x9d\xa1\x9c\x59\x07\x98\xbe\x70\xcd\x20\x0f\xb4\x28\x6b\x87\xe0\x35\x44\x30\xbc\x30\xe2\x82\xa5\x8a\xc1\x8f\xd8\x4f\xde\x89\x06\x8f\xa6\x5c\x33\x20\xbd\x8b\xb6\xbd\x13\x84\x99\xa4\x07\x48\x2b\x2c\xd5\x3d\x85\xd4\x01\xad\x50\xda\x10\x2e\xcd\x69\xec\x9f\xaf\x7f\x0d\xd4\xe2\x84\xc3\xcb\xa0\xf9\x2e\xa8\x5c\x05\x2d\xa2\x71\x62\x3c\x26\xe3\xee\x77\x42\xc4\x05\xb1\x7e\x96\xb5\xaf\x81\x55\x8c\xfd\x1e\xcb\xc7\x9a\xef\xe1\x9c\x49\x85\x59\x44\x4e\x13\x2c\x37\x0c\x42\x72\x36\x8e\x83\xb2\xc4\x71\x7b\xfb\x70\x73\x7f\xfe\xdd\x0a\x2e\x5f\xfd\xb8\x1e\x06\x14\x25\xb9\x73\xcf\x4d\x04\xc7\x31\xd2\xec\x73\xc6\x8d\x2b\xd0\x0a\xfe\x05\xf4\xb7\xc9\xeb\xf1\x01\x95\x25\xd8\xf1\x22\x1d\xc1\xda\x39\x42\x57\x02\xb5\x0b\x81\x22\xbd\x12\x28\x30\x79\xb8\xad\x06\xcf\xa2\x29\x48\x62\xad\x5b\x59\x82\xd5\x94\x8b\xd4\x70\xf9\xd2\xa4\x4d\xe3\xcb\x1b\xa5\x4c\x11\x21\xf2\x4c\x51\x87\xe5\x5e\x95\x52\xa1\xc2\x3b\x9f\x5d\x12\x29\xf1\x8c\x6c\xe3\x80\x6e\x52\x1e\xee\x7e\x0c\xff\x09\x0e\xe6\x2e\xb2\x7f\x69\x84\x2e\xf2\xdd\xd1\xd3\x35\xfb\x68\x02\x79\x6e\x78\x42\xa3\x0d\x03\xee\x3e\x0e\xce\x2f\xc6\xe7\x97\x5a\x89\x1f\xdc\x0f\x2f\x4a\xa2\x04\x3c\x1b\x7c\xbc\x1f\xde\x5a\x10\xeb\xc1\x77\x17\xc3\xf1\xd5\xf5\xd9\xf0\x6e\x7c\x7a\x7d\x79\x73\x31\x5c\x11\x99\xd3\xda\x78\xdd\xba\x5a\x7d\xf5\xa4\xf6\x0b\xec\xb0\xe6\x65\xa1\xbd\x0c\xb2\xc6\x30\x4d\xc0\x09\xce\x8d\x33\x1c\x23\xc6\x63\x02\x3f\x4b\x67\x9d\xf1\xc8\xd1\xe8\x5c\x7d\x95\x24\x08\xe7\x8a\xa7\x18\xbc\x36\xc9\x62\xc4\xf0\x44\xb3\x56\x9c\x24\x41\x78\x97\xc8\x19\xd3\x2c\x56\x37\x66\x20\xda\xa3\x84\x68\x76\x9e\x05\xc9\x7e\xd6\x6f\x30\xa5\x0c\x22\x6d\x53\x2c\x1e\x8d\x9b\xa9\xe8\xb2\x38\x14\x12\x61\x39\x62\x7a\x5c\xc4\x1a\x86\xba\xac\xf0\x49\xa7\xb7\x5a\x57\x27\xc5\x8f\x44\xaf\x4a\x9a\x47\x73\x94\x09\x3e\x13\x44\x4a\x6b\x5b\x8e\x30\x33\x01\x08\xf6\x75\x7d\x0d\x8d\x18\xe3\x7a\x29\x9c\x09\x3b\x26\x19\x61\x31\x61\x11\x35\x69\x7d\xe0\xbb\xf7\xa6\xcd\x99\xc0\xd9\x1c\x49\x0e\x4e\x6f\x58\x76\xb0\x5f\x99\x8f\xdc\x4d\x66\x66\x6c\x1e\x87\x16\x68\x91\x6b\x3e\x71\x0d\x72\xa2\x59\x65\xf8\xd8\x5d\x86\xce\xed\x62\xec\x80\x69\x96\x10\x65\xc0\xfa\x61\xc9\x61\x33\xf4\x5a\x97\xf6\x43\x6f\x53\xd3\x26\xe8\x0b\xdb\x8d\x19\x4b\x3b\xa2\xa3\x06\xcb\xb6\x3d\x52\xe8\x7b\xcc\xe2\x44\xb7\xe2\x7c\x18\xe5\xb3\x08\xa9\x28\x03\x4d\x35\xee\x34\x6e\x73\x8b\x46\x38\x97\xdb\x5c\xa3\x95\x5c\x4c\x63\x15\x3c\x2c\x82\x42\x80\xbc\x6d\x22\x26\xac\x6e\xa6\x59\x24\x4e\xb8\x5d\x25\xf3\x7a\x6e\xea\x3f\x21\x18\x4d\xcb\x35\x9b\x09\xca\x22\x9a\xe1\x64\x23\xdd\xaf\x12\x8c\x6f\x63\xdc\xbf\xa6\x53\x4d\x3e\xdf\xd4\xdc\xb6\x8a\x88\x14\x12\x94\xed\x30\xfd\x16\xae\x61\x49\xb2\x59\x0d\x44\x16\xd1\x24\x58\xf0\xdc\xf8\xe3\x60\x5d\x48\xdc\x70\x54\x8f\x9a\xb6\x5b\x9f\x0c\x5c\x0e\x80\xde\x60\xb3\x4d\xe4\x4f\xdb\xfa\x55\x5a\xb1\xbd\x9b\x60\x3c\x9c\xdc\x34\xb7\xd9\xb4\x03\xc1\xc3\x7f\x2d\xa3\x9d\x4b\x9c\x69\x9a\xb1\xb0\xfd\xb8\x98\xa3\x55\x92\x6c\x55\x30\x17\x3f\x13\xf8\xce\x7d\x5e\x48\xf7\xdd\x28\x96\xd0\x06\x40\xd5\x3b\x29\xc5\x10\x04\x39\xe6\x96\xc6\xa7\xb9\x96\x65\x11\x86\x28\x04\xf4\x35\x39\x9a\x1d\x21\x57\x84\xe1\x00\x0d\x6e\x6e\x86\x57\x67\x07\x88\xa8\xe8\x1b\x17\xb3\x68\x03\x96\x46\x4c\x71\x2b\xad\x2c\x5c\x01\x8d\x94\x88\x19\x29\xcd\xd9\x45\x37\x41\xa8\xf2\x8c\x4a\x65\xc3\x67\x35\x5f\x09\x4a\x9d\xd0\xb4\x2a\x66\x1b\x0a\xc9\xd5\x7c\x1b\xd2\xc0\x52\xe6\xa9\xd6\x65\xc7\x14\xa7\x63\xc1\x93\x6d\x98\xc2\x19\x4c\x05\xd4\x65\x9f\x9e\x4f\x71\x8a\x74\xb3\x36\x14\xc4\xbb\x1c\xbd\x48\xa7\x05\x23\xcd\x97\xf5\xbd\x19\xdc\x5b\xce\xfb\x60\xe3\xd1\xa8\x0b\x81\x80\xf4\xfd\x16\x56\x51\x98\x8d\xc7\xd6\x52\x3f\xc6\x51\xa4\x55\xee\x1d\x4f\x2a\xa8\x9f\xe3\x5c\x02\xb6\xa3\x17\x9b\xe6\x2a\x3a\x77\xc3\xcc\x34\x07\x83\x60\x60\x7d\xe5\x4a\x1e\xd1\xa2\xfd\x86\x7e\x27\x8b\x5a\xaf\xae\xc2\xcd\x83\xf4\x26\x15\x73\x09\x4b\x02\x3b\x29\x4d\x85\x1c\x35\x27\x0b\x34\xc7\x4f\xa4\xd4\xa5\x4b\x88\xd1\x0d\x2f\x78\x2e\x9a\x18\xdd\x88\x9d\x91\x4c\x10\x2d\xe9\x57\x1d\x28\x9e\xa6\x6f\xcb\x94\xd8\xd3\x75\x4f\xd7\xef\x9e\xae\x4f\x4d\xa1\xa4\x81\x2f\x8c\xb5\x95\x00\x67\x1a\x1b\x67\x9c\x27\xe3\x0e\x36\x91\xee\x2b\x5e\xf2\x84\x55\xca\x46\x01\x24\x00\xcf\x41\x3e\x2a\x5d\x9b\x5c\xdf\x75\x41\x8a\xad\x1d\xde\x92\x65\x70\x2e\xb3\xa0\x5e\xce\x36\xe7\xbd\xa9\x95\x65\x2d\xa1\x17\x17\x73\x4e\x8d\x7c\xe3\xdd\x65\x61\xfd\xd3\xd2\x61\x72\xa2\x08\x65\xb5\x6a\x6c\x86\x9e\xf5\x02\x1b\xb9\xe3\x1f\x39\x57\x58\x7e\x73\x34\x62\x5a\x88\x7a\x24\x0b\x63\x6e\xd5\x62\xca\xef\xb4\x2c\x7e\x28\x09\x93\x10\xee\xfd\x3b\xe3\x9e\xd3\x24\xee\xcc\xd5\x46\x35\x35\x45\xe0\x20\xe8\xda\xf7\x02\x21\xba\xb6\x51\x2b\x25\x15\x01\xd0\x20\xe7\x9b\xb9\xd8\x67\x66\xf8\x33\xa2\x20\xc5\x5a\x51\x05\x3a\x53\x6c\xaa\xcc\xd5\x86\xbe\xd2\x74\x65\xa8\x42\x70\xf0\x93\xc4\xf9\x76\x8c\x5f\xd6\xdb\x58\xc9\x19\xbd\xb6\x70\x67\x63\xde\x8f\x9d\xdd\x28\x12\xbc\x56\xba\x0d\x4b\x64\x76\x7a\x62\xd8\x81\xf3\x5f\x13\x76\xf4\x4c\x1f\x69\x46\x62\x8a\x21\x02\x5e\xff\xeb\x58\xcf\xeb\xdf\x4f\x6f\xaf\xaf\xc6\x45\x26\xcf\x7f\x8d\xd8\x20\x91\xdc\x67\x29\x20\xc6\x99\x0f\xb7\xcf\x04\x71\x22\xa1\x9d\x0b\x58\x5d\x0b\x33\xe2\x88\xb5\x8d\x20\xe6\x91\x3c\xc2\xcf\xf2\x08\xa7\xf8\x57\xce\xc0\x95\x3e\x80\x3f\x4f\x13\x9e\xc7\x3f\x61\x15\xcd\x8f\xe1\x5c\xab\x63\xf2\x44\x98\x32\x6e\x2a\xbd\x5c\x31\x24\xef\x4a\x88\xd6\xff\x77\x3d\xe6\x22\xa9\x48\x6a\x4d\x36\x22\x99\x42\xff\x8f\x20\x13\xce\x55\xf3\x25\xc5\xa7\x53\x49\xd6\xba\x90\x0a\x25\xed\xee\x1a\xfd\xe5\xcf\xdf\xfe\x41\x93\xd0\x26\x6b\x7c\x7e\x77\x3d\xd6\xdf\xff\xfb\x99\xfd\x5e\xae\xc1\xee\xae\xb3\x82\xb5\x39\xe2\x31\x81\xf3\x39\x83\xdb\x4f\x80\xf3\x02\xd8\x1b\x90\x43\xb1\x8f\x4d\xdc\xed\xac\xd4\xfa\x76\x2a\xdb\x46\x8b\x09\x2a\x76\x30\x47\x74\x88\x18\x47\xa9\x89\x35\xc5\x0c\xfd\xc7\x0f\xdf\x35\x6f\x60\x2e\xe8\x46\x1d\x52\x0b\xd7\x10\x74\x29\xe9\xaf\x44\x22\x4d\x35\x9a\x8a\x79\xaa\xbb\x16\x44\xce\x79\x12\xa3\x67\x02\x6a\x92\x8d\x03\xf5\x5a\xb9\x20\x23\x16\x36\x01\x21\x87\x08\x27\x8a\xcf\x08\xdc\xd5\x4e\x51\x53\x44\x68\x51\xc5\x64\x69\x28\x2e\xc8\x81\x81\xfa\xba\xfb\x93\x8b\xad\x86\x69\xc2\x23\x97\xd4\x62\x4d\x72\xf1\xa4\x79\xe6\xd3\xaa\xe9\x15\xb5\xdb\xf0\xab\x9b\x6c\xcd\xb6\xcd\x4b\x63\x93\x50\xac\x0d\xab\xba\x33\xcd\x83\xa1\x11\x67\xe3\x84\xb2\xc7\x8d\x36\xe3\xda\x89\x72\xba\x05\xbb\x66\xba\x45\x6f\xe7\x36\x16\x90\x35\xce\xc7\xc7\x3c\x49\x4c\x6a\x4b\xb8\x3d\x20\x77\x99\x75\x03\x61\x20\x33\x39\xa0\x24\xb6\x7e\x2f\xab\x09\x0b\xc2\x20\xe0\x6d\xc4\x26\x0b\xeb\xb3\x95\x07\x48\xe6\xd1\xdc\x65\xe6\x45\x9c\x49\x2d\x46\x73\x81\x22\x9e\xa6\xa6\xb8\x29\x23\x48\x71\x9e\x48\x1b\xed\xce\x0e\x15\x8e\xd4\x88\x15\xfd\xad\x38\x79\xa6\x02\xd2\x76\xa9\x7b\xdd\x5d\x3a\x45\xa5\xa5\xa5\x02\x37\x8d\x43\xcc\x06\x30\x82\x19\x4f\x54\x80\xfe\xc0\xeb\x67\xc9\x6c\x58\x8b\x66\x20\xe7\x5c\xa8\x71\xdc\xc8\x73\x56\x12\x4d\x95\x11\x32\x72\x98\x40\xd0\x30\x7f\xd2\xc2\x3f\x79\xf6\xc6\xd7\x65\x43\xd0\x54\xbd\x6c\x04\xdd\x8e\xd1\xd2\x91\xad\x4b\x82\x2d\x6b\x65\x10\x3c\xa2\x72\x4c\xf8\xaa\x31\xde\xc1\x57\xa7\xfa\xa3\xa5\x8b\x57\x3d\x77\x4e\x08\xe2\x71\x01\x36\x67\xee\x75\x9b\x11\xb2\x6c\x4d\x2d\x74\xc2\xcb\x65\x8e\x2e\x9b\xca\x43\xd9\x92\xab\xc7\x02\x26\x7b\x49\x40\xd6\xc4\x62\x42\x95\xc0\xa2\x84\x14\xe2\xf5\x41\x49\xb0\x80\xf8\xac\x11\x33\xb8\x71\x46\x53\x88\x51\x4c\x25\x24\x88\xc0\x5d\x1a\x38\xc3\x50\x37\x25\xb0\x72\xb4\x8b\x3c\x47\x13\x7f\x0e\x81\x65\x05\x69\x38\x66\xa7\x3b\xf2\xf8\x58\x5a\x3f\xe3\x51\x5e\x08\x72\x11\x48\xb8\x16\x53\x07\x51\x26\xe9\x6c\xae\x10\x65\xd6\xee\x88\x93\x19\x17\x54\xcd\x53\x79\x80\x26\xb9\xd4\x5a\xa8\x09\x56\x33\xf1\x28\x44\x45\x9d\xb8\xd0\xb6\x49\xc4\x71\xa5\xc1\xba\x8a\xb2\x01\x69\x74\x3b\x94\xc3\xca\x5d\xb1\x82\x70\x06\x1e\x67\xb0\xda\x06\x85\xba\x8d\x06\x9e\x12\x99\x38\x40\xee\x90\x9d\xa0\x0a\x48\xdb\x39\x00\x54\xc8\x9d\x79\x29\x5e\xa3\x10\x17\x32\xc9\xa0\x82\xb8\xd8\x6d\x90\xbc\xca\xc8\x94\x06\xbd\xc9\x3b\x9d\xd2\x4c\x35\x06\x6e\xd5\x5d\x45\xb7\x01\xe6\x4f\xb7\xc5\x86\x64\x2c\xa0\x66\x40\x6a\x1b\xb1\x3b\x42\xda\x81\xdc\x6a\x7b\x6f\x4a\xe3\xc2\x14\x6c\xa2\xc7\x72\x92\xdf\xc6\x89\x7d\x36\xbc\x3b\xbd\x3d\xbf\x31\x90\x13\xd7\xb7\x97\x83\xfb\x71\x83\x5f\xbb\xe1\xad\xcb\xc1\xed\x0f\x67\xab\x5f\xfb\xfe\xbe\x9c\x95\xdd\xf0\xca\xed\xdd\xf2\x64\x8e\x0e\x43\x6c\x48\x0a\x6b\xec\xe7\x04\x65\x0b\x35\xe7\xcc\x87\x28\xc4\x25\xde\x74\x88\x4c\x46\xb0\x82\x10\x22\x21\x55\x83\xe3\xf0\x1e\xe2\x72\x56\x4b\x98\xe5\xcd\x32\x30\x6c\x3b\x15\x8d\xd6\x38\x91\x9f\x12\x3e\x01\xbf\x75\x5e\x2a\x71\xbb\x24\x02\x7d\xcb\x78\x9f\x33\x2a\xb3\x04\x2f\x6a\x3d\xac\xba\x72\xae\x70\x4a\x20\xe2\xb8\xc0\x8f\x73\xc9\x22\x7a\x67\x20\x81\xc9\xdf\xeb\x74\x0a\x99\x4c\x8a\x62\x45\xd0\x84\xa8\x67\xc8\x9b\x73\xbf\x7a\x5b\xaa\x0b\x18\x91\x47\x23\x06\xe6\x9c\x91\x5e\xe4\x38\x87\x68\xbf\xd1\x87\x03\x34\xfa\x10\x93\x27\x92\xf0\x4c\xef\xbc\xfe\xa1\xe5\x92\x19\xa6\x98\x26\x57\x5c\x79\xcb\xdc\x36\xfb\x29\x48\x44\x33\x90\xcc\xc7\x44\xb7\xfb\x7a\x82\x47\x89\x92\x1d\x3b\x83\x31\x20\x1c\xc7\x5a\xc9\x06\x56\xe6\x86\x57\x84\x00\xb1\x60\xea\xa5\x5a\x99\xeb\x88\x14\xde\xfc\x6d\x7a\x0c\xdb\x2c\x9b\x3d\x1b\x77\x80\x3d\xbd\xa0\x4b\x76\xdb\x8b\x5c\x6b\x25\x3f\x90\x05\xa4\x60\xdc\x60\x2a\x36\x74\xcd\x36\xc5\xbc\xbe\x88\x93\x76\xd8\xd0\xd1\x1e\xb9\x6b\x9b\xd7\x61\x3b\xc7\xad\x8f\xd5\x7b\x2d\x2d\xd5\xc5\x72\xf9\x8e\x3b\xaa\xad\x0f\x6d\x4a\x6a\x6b\x08\x03\xaa\x2a\x5e\x19\x89\xd6\xd0\xb8\xfc\x00\xef\xf4\x77\x2b\x35\x15\x2f\xae\x45\x61\x4d\x7f\xd8\x05\x9b\x1c\x5f\xcd\xc7\x27\x2b\x47\x1c\x25\x5c\x96\xb1\x72\x3a\x0f\xfa\xd4\x7e\xba\x6c\xdc\xc3\x90\x7c\xb5\x5c\xb8\x56\x40\x43\xc3\xc2\x57\xc0\x20\xcd\x3d\xa3\xac\x87\xcc\xbe\x7d\x80\x28\x44\x5b\x82\x42\x96\x14\xc8\x01\x2c\x46\x85\x1b\x64\xc4\x8a\x98\x15\x89\x9e\x49\x02\x61\x6e\x11\x4f\x33\x30\xf1\xdb\xe1\xda\x96\x48\x6c\x22\x86\x0f\x10\xcf\x95\x6e\xcc\xe4\xe4\x38\x23\xae\x4d\xf8\x29\xdc\x1e\xc6\xf7\x66\x83\xdf\x3d\xb0\xb4\xa1\x75\x73\x97\x52\x86\x3e\x11\x05\xad\x00\x70\x7f\x38\x41\xd0\x13\xaa\x21\x94\xcd\x6b\xbf\xc5\x89\xb2\x33\x59\x63\xe7\x0b\xe0\x94\xef\x12\x3e\x59\x6e\x24\x80\xc6\xd1\xc3\xed\xb9\xb3\x48\x16\xf1\x53\x01\x7a\x71\xc9\xa3\x38\xbc\xb9\x1d\x9e\x0e\xee\x87\x67\x47\xe8\x41\x12\xbd\x3c\x7e\xba\x90\x5f\xed\x55\x12\x33\x72\x8b\xc4\xc2\xa4\x22\xb8\xcd\x10\x42\x84\x28\x65\x41\xaf\x60\x1c\x65\x98\x96\xe5\x84\x0d\x20\x29\xd4\x1a\xea\x00\x58\xa8\x3a\x4f\x1b\x99\xb7\xea\x04\x42\x9c\xd4\xf8\xfd\x44\xa9\x99\xf1\xa6\xf5\xc8\xbc\x55\xe4\x53\x8e\xe8\x7b\xe9\xc9\xc0\xd1\x52\x73\x42\x05\xea\x34\x2d\x43\x54\xe3\xee\x73\x0a\x42\xdc\x2f\x71\xb6\x3c\xfd\x14\x3f\x97\x88\xd6\x88\xc2\x81\xef\xfe\xa5\xcf\x81\x63\x6b\x63\xc3\x0a\xb7\x9f\x60\xe1\xd0\x32\xbc\xd5\xf3\x4d\x93\xf1\x21\x9d\x91\x2c\x9c\x58\x65\x10\x36\x8e\x55\x22\x38\x3b\xf0\x0b\x65\xa8\x74\x25\x1e\xa0\x29\xfd\x6c\x1b\x2d\xe2\xdb\xdd\xab\x41\xc0\x43\x4b\x3c\xe5\x1c\xd7\xcf\xd4\x1a\x62\xc3\x0d\x7c\xbf\x54\x88\xe4\x52\x8b\x44\x91\x16\x97\x04\x89\xb8\xd0\x37\x05\x74\x5b\x78\x21\x56\x89\x0c\x0a\x0b\xbd\x28\x75\xaf\xcc\xb2\xd3\x5f\xd4\x20\x89\xb1\x22\x87\x5a\xf4\x5a\x91\x00\x6d\x73\x64\x20\x9b\x06\xab\x00\x0e\xac\xb8\x79\x26\x64\x86\x99\x0b\xcd\x6e\x19\xae\xbb\xf2\xb6\x60\x55\x5a\x05\xc2\x90\x1e\x06\xf2\x15\xa4\xfe\x94\xc6\x21\x33\x58\xcf\xa5\xe3\xb0\xd1\x2f\xfb\xb0\x6c\xcf\xd8\x07\xe3\xb4\x0c\x36\xcf\xe2\x7d\x1a\x6c\x82\xa5\x42\x76\x4c\x6d\xa6\x88\x40\x45\x7c\x59\x23\x6c\x49\xb7\xef\xaa\xbc\x69\x12\x2a\x6b\xb1\x04\x3c\x23\xd2\xe1\xa6\x18\x94\x18\xad\xd3\x38\x41\xd8\x94\x62\xf6\x67\xdb\xd6\x64\x76\xb7\x44\xc8\x4c\x20\x48\xbf\xde\xf4\x11\x1a\xb0\x1a\x5e\x96\x8b\xcb\x2a\xad\x97\xb9\x93\x70\xf2\x8c\x17\x12\x65\xc2\x40\xcb\x98\xc8\x7d\x37\x79\xd0\xc0\xca\x1f\xf9\x50\x08\xe5\x52\x27\x10\xd8\x62\x56\x07\xcd\x39\xb9\x77\xfc\x02\xae\xbc\x4a\x54\xb9\x17\xc8\x8b\xe6\x0a\x5b\x45\x07\x56\xa7\xc8\x38\x9a\x63\x36\x23\x63\x67\x64\xdd\x44\x5b\xd2\xed\x9c\x42\x33\x67\xb6\x95\xe6\xcb\xe9\xc6\x28\x4c\xb6\xfe\x8b\x79\xd5\x1b\x10\xf5\x21\x90\x0a\xcf\x08\x32\x23\xea\x64\x96\x2e\x45\x8c\x59\xb0\x61\xd0\x13\x6c\xab\xc3\x72\x14\x7d\x9b\xf0\x0e\xa1\x4f\x17\x78\x42\x92\xb7\x89\x9c\x80\xae\xad\x71\x1e\xbc\x75\x26\x1b\x80\xa0\x67\xb0\xe7\x57\x58\x86\xb5\xde\x8b\xbc\x29\x37\x60\xd9\x3c\x4b\xd5\xcf\xb7\x98\xa8\xab\x15\xb2\xc9\x54\xdb\x2a\x88\x84\xd7\x5e\x50\x69\xa3\xc9\xc0\x16\x5e\x7f\x55\x9b\xf2\x66\x03\x09\x0a\x7e\xb4\x8c\x63\xeb\x8a\x1f\x2b\xa7\xb2\x31\xc8\x40\xc7\x2a\x78\xe7\x53\xc4\x38\x23\x88\xca\xe2\x65\x55\x4e\x87\xf2\x10\x3d\x5a\xc4\x37\xc6\x17\x5f\xa5\xcb\x17\x5f\x7a\x69\x4b\x4b\x01\x9e\xe0\x6d\x03\x2e\xbf\x9b\x11\xad\xa8\x62\xb1\x00\x88\x4f\xc3\x87\xcb\x32\xdd\xca\x71\xee\x5c\xe0\xbe\x77\x08\xae\x41\xa4\xae\xe2\x08\xc4\xc8\xca\xe0\x90\xc1\x41\xb5\x2f\xd9\x8f\x2c\x4c\xcd\x88\x79\xcb\x06\x10\x22\x95\x28\xc5\x19\xf8\xf4\x18\x57\xc5\x57\x06\x76\x49\xf9\x2d\x3c\x70\x82\xb8\x34\x35\xb4\x5a\x56\x60\x95\x69\xc7\x5d\xbf\xc5\xba\x96\xe1\x2d\x1d\x34\xef\x8c\x3e\x11\xe6\x68\xfa\xc0\x9d\x09\x3d\x28\xd7\x69\xb2\x38\xc4\x10\x66\x4c\xe2\xd0\xf3\xb1\x9c\x23\x19\x83\xcc\x3e\xd8\x23\xbb\x2f\xd9\x7d\x63\x18\x8d\x01\x49\x2b\xa1\xdb\xbb\xc0\xf0\x90\x4a\x2d\x6e\xaf\xc9\x04\xc7\x12\xfd\x8e\x71\xf5\xbb\x00\xd9\xd8\x19\x2f\xe0\x53\x67\x82\x3a\xa8\x95\x6c\x81\x43\x6b\x09\x07\xe1\x00\x61\x6b\xe5\xca\x6f\x1b\x1b\x50\x04\xbe\xbf\xa8\x34\x3a\xac\x67\xc1\xb5\xd5\xbc\xea\x3d\xf6\xa8\x7a\x2d\x54\x0d\x9e\xa6\xac\x5e\x71\xd2\x4b\x86\x4e\xb9\xca\x45\xef\xf7\xa2\x93\x6b\xbe\x86\x08\xb0\x0d\xb5\xa5\x9d\x23\xa7\x56\x80\x20\x37\xdb\x25\x36\xc9\xf3\x6c\x93\xcb\x45\x39\x74\xcd\x96\xc1\x68\x41\xf9\x3d\x1a\xb1\x8f\x5c\xd8\x2b\x58\xda\x3a\x03\x13\x1c\x3d\x1e\x12\x16\x23\x9c\xab\xb9\x41\xdb\xb5\x7e\x85\x85\xa5\x06\x2d\x69\x00\xd9\x78\x28\x0d\x2a\x23\x2c\x62\x57\xf1\xe2\x89\xbb\x51\x8c\x58\xd0\x08\x54\x32\x80\x42\x4f\x50\xaa\xb6\x4d\xd5\x24\x52\xeb\x57\x6d\x6b\xd1\x54\x84\xb5\x56\x82\x75\xf9\x39\x2b\x15\x95\x85\x1a\x0c\x10\xe0\xc4\xa7\xf5\xd5\x39\x77\xd6\x46\xa7\xdf\x69\x7a\xae\x7b\x21\x0e\xac\x46\x61\x4c\x52\x76\x06\x5a\xd2\xf9\xd6\xf1\xda\x12\x6a\xf0\x34\x17\x10\xae\xdb\xd4\xe6\xd7\xd1\x9c\x26\x85\xef\xe2\x9b\x03\x3f\x4c\xdd\x64\x42\x9e\x48\x62\x30\xeb\x23\x01\x91\xf9\xc6\x6a\xf8\x2d\xfa\x3f\xa6\x30\x29\xfa\xc3\x88\x7d\x02\x36\x9c\x24\x0b\x40\xd4\xf4\x2d\x63\x55\x69\xe6\xb1\x71\x00\xca\xa6\x02\xa1\xf2\x40\xcc\x5e\xcf\xf1\x13\x19\x31\xd7\xcc\xff\x41\x8f\xe8\xf7\xe8\x0f\x6d\xea\x9d\x0b\xb0\x7f\x61\x3b\xc7\xc7\x20\x7c\x3d\xb8\xe5\x2c\xa3\xb4\xfc\xc6\x99\x41\x4a\x46\xc8\x06\x64\x0d\x0f\x8c\x4d\xd9\x13\x8f\x6a\x59\x1c\xe1\xa9\xc5\x82\x30\x35\x66\x3c\x26\x63\xd2\xe0\xd2\x5c\xc2\x24\xb4\x10\x70\xc5\x63\xb2\xd2\x21\xe9\x99\xe9\x4f\x60\xba\x91\xf9\xc4\x6f\x07\x24\xf8\xfb\x6c\x6e\x6f\x7d\x28\x53\x5a\xf3\xc8\x3d\xfa\xec\x26\xe3\xde\xd4\x99\xea\xc2\x44\x0f\xe0\x42\xb0\x03\x68\x76\xe8\x25\x58\x39\xf7\x7a\xf5\x38\x56\x1d\x01\xfa\x65\x3d\x73\x7b\x59\x05\xb8\xba\x50\xfb\x44\xd0\x19\xd5\xf2\x7b\x77\x87\x2d\x70\xc2\x4d\xbc\x19\x06\x64\xb4\x93\x3b\xa3\x58\x0a\x07\xb4\x72\xe8\xe9\xaf\x70\x42\x4e\x78\x5e\x15\xe0\xed\x02\x50\x19\xba\xfb\xad\xac\xbe\xd0\x7c\x78\x66\x32\x00\xc9\x9c\x9a\x9c\xfb\xc1\xe9\x05\xd2\xa7\x83\xa7\x06\x98\x0a\x16\x2d\x57\x73\x2e\xe8\xaf\xad\x19\x4a\xed\x32\x7a\xe1\x69\x2d\x12\xba\xcc\x38\xcb\xd2\x3a\x10\xab\x11\x29\x54\x49\x2b\x69\xd2\x99\xd0\x24\x07\x0c\x56\xcd\x66\xa7\x79\x62\x0a\x37\x44\x5c\xc4\xa6\x72\xba\x2c\xa5\x8f\x41\x18\xae\x13\xef\xb1\xf2\x0d\x52\x0b\x55\x69\x4b\x43\x18\x0b\xce\x52\x01\xf4\xaf\x39\xc9\x77\x94\x81\xf7\xa6\x31\xcb\xf7\x78\x26\x8b\x20\x64\xb3\x36\x9a\x37\x17\xeb\xfb\x0f\x3d\x53\x19\xe4\xac\x3a\xcb\xa2\x87\x80\x32\x2a\xb9\x29\x0c\xba\x96\x45\xe7\xd6\x40\xdf\xef\xc0\xa4\xf3\x1a\xf1\x1c\x75\x19\xa9\x81\xfd\x58\xf2\x7b\xf2\x19\x9c\x55\x16\xf1\x42\x76\x12\x57\x43\xa0\x22\x7d\xbc\xa0\xc9\x64\x03\x26\x57\x17\xaa\x97\x46\x45\x17\x06\x14\xcf\xd6\x1a\x92\xa9\x15\x87\xb4\x8b\x67\x41\x01\x21\x6e\x51\xbc\xec\x6b\xe0\xba\xeb\x22\xe4\x31\x5a\x4a\x31\x62\x2d\xc4\x75\xb8\x25\x5c\x34\xf3\xf8\x35\x0c\x10\xb6\xa1\x72\xd7\x75\xbf\x7d\xdb\x89\x30\x2c\x69\x5f\x8f\x44\x1d\x1e\x66\xe5\x61\xf0\x95\x40\xde\xc6\x80\xe8\x45\x9b\xd7\x3b\x19\x9e\x1c\xc7\x11\x8e\xe6\xad\x93\x9a\x70\x9e\x10\xcc\xda\xa4\xd7\xc6\xc7\xd5\x23\x62\xc0\x4d\x81\x75\x27\x09\x20\xfc\xba\x25\xb0\x55\x21\x0b\xf1\x9d\xc5\x80\xcc\x6e\x78\xb8\x89\x0d\x74\x03\x55\x84\x39\xcb\x0f\x65\xb3\x84\x54\xd7\xca\x42\xe8\x1f\xd8\x4e\x92\x28\x4f\x82\xb2\x90\x19\x11\x7a\xd4\x7a\x89\x9f\x08\xd3\x3a\x83\x1d\x87\x73\x66\x3c\xbb\x84\x68\x5f\x0c\xea\xc0\x77\xed\xfc\x69\x90\x75\x18\x8f\x18\x1c\x5c\x5e\x3e\xac\x9a\x56\xa5\x56\x33\x42\xbb\xd4\xc6\xa7\x33\x10\x22\xd6\x3e\x9e\x77\x65\x33\xf1\xda\x67\xd2\xf4\x3d\x86\x18\x83\xad\x5d\x6b\x81\xfb\xa5\x80\x6a\x30\x1b\xeb\xe0\xb8\x5e\xc9\x88\x0c\x51\x1b\xe5\xb0\xd3\x20\x68\xa3\x0d\x0e\xea\x45\xef\x92\xa2\xfc\x85\xbb\x0d\x3a\x0e\x65\xa9\xab\xba\xa3\xe3\x19\xac\x93\xcb\xce\xed\x85\x0d\xd9\x2e\xbb\x6c\x7d\x7e\x4f\x11\xe6\x68\x0b\xbc\x2a\x81\x01\x9d\x00\x72\xca\x7f\x32\x1a\x36\x95\xc6\x02\xe6\xca\x5c\xa4\x99\x5a\xd8\xaa\x68\x70\x2f\x86\x39\xbd\x06\xf1\xad\xc9\x3d\x5c\xbd\x23\xe3\x92\x83\xb8\xa9\x33\xe8\xc8\x9a\x15\x1a\x9b\x74\x0b\x1d\x22\x88\x54\x10\x1b\xda\xa2\x41\x4c\x81\xd9\x31\x4e\x5a\x6d\x59\x3b\x60\x9a\x90\x66\x5b\xa0\x34\x58\xf0\x57\x25\x72\xa2\x79\x17\x4e\x92\xca\xbc\x30\xa4\x43\x2b\x5f\x64\x6e\x52\x54\xc2\xed\xee\xac\x4e\xf0\x84\xac\xe5\x9e\xbe\x30\x1f\x2c\xa5\x22\x78\x05\x22\xbb\xb3\x2c\x59\x74\x8b\x28\x0f\x43\xef\x1a\x41\xd2\x56\x0d\x2c\x84\x56\x5b\x7a\x37\x95\xe1\xc9\x36\x1b\xa2\x24\x51\x2e\xa8\x5a\x8c\xad\xd1\xaf\x3b\xd3\xba\xb3\x5f\x9e\xda\x0f\xbb\x68\xd4\x27\xc8\xf5\xe7\x8c\x8c\x70\x4f\x09\x6a\x2a\xe8\xd8\x29\x74\xd9\x6e\xad\x25\x37\x82\x27\x2d\x5b\x58\x87\xde\xd4\x6d\xa8\xba\x8b\x4d\x87\x67\x2b\x73\x8c\xf9\xd4\xe1\x22\x75\x5f\xd8\x6a\xc9\x92\x35\xac\xa5\x0e\x7e\x39\x13\x94\x0b\x5b\x19\xa4\x4b\x50\x5b\x8a\x3f\x8f\x33\x2c\x70\x92\x90\x84\xca\x74\x73\xdb\xee\x9f\xfe\xb8\x74\xb4\xa7\xa6\x82\x8d\xb4\xf5\xa0\x3e\xd3\x34\x4f\x11\xcb\xd3\x89\x95\x72\xb1\x7c\x0c\xc1\x2f\x5d\xaa\xbe\xc1\x70\x72\x03\x2c\x01\x06\x88\x00\xce\x74\xc4\x02\x60\x6b\x6b\xaa\xc0\xd1\x9c\x92\x27\x80\xdd\x14\x8c\x48\x79\x84\xae\xb8\x22\x27\xe8\x12\x67\xf7\x20\xa8\x99\x92\x92\x33\x63\x1d\xc7\x12\x69\xa9\x35\x67\x54\x1d\x8c\x98\x45\xc3\x76\xab\x72\x1c\x71\x66\x10\x51\x23\x58\x58\xdf\x04\x98\x7b\x1d\x34\xa8\x72\x89\x8d\x54\xb6\x2c\xb6\xc0\xcf\xe3\x20\x7a\x75\x6c\xb2\x03\xd6\xa0\xe3\x5b\xfc\x6c\xe2\xb5\xcf\xb0\xc2\xa6\x5a\xec\x32\xc9\xdd\x06\x44\xd9\x0a\x42\x06\x08\xd8\x05\x8e\x70\x8b\x46\xe1\x6b\x9f\x99\xe8\xd4\xaf\xe9\x11\x39\x42\xdf\x25\x7c\x22\x0f\x90\xf4\xa0\xd9\xf0\x50\x12\x25\x0f\x8c\x83\x0a\xfe\x6d\x52\xc1\xbe\x71\xab\x5f\xf0\x7d\x28\xfb\x37\xa5\x9f\x0d\x08\x86\xfc\xd3\xc9\xf1\x71\xba\x38\x9c\xe4\xd1\x23\x51\xfa\x2f\x90\x29\x1a\x57\xc8\x21\x48\xe1\x26\x3c\xaa\x55\xab\x53\xc7\xb2\xea\x44\x91\x36\xad\x46\x12\xc0\x4d\xd7\x57\xba\x2f\xac\xea\xa0\x8f\x38\x6b\xae\x1a\x69\xa7\x2c\xf2\xb6\xe3\x55\x02\x5c\x7e\x1d\x6d\xc5\x14\x8e\x0d\x71\x9e\xa7\x09\x9e\x55\x54\x96\x35\x94\x94\xeb\x94\x5a\x2a\xd2\x73\x87\x78\x0b\x7d\xca\xca\x51\x66\x5f\x39\x77\x24\xb8\x15\xad\xbb\xe5\x68\xc4\x06\x12\x3d\x13\x53\x0f\x16\x72\x12\xc1\x3b\x91\x53\x39\xf7\x19\x89\x60\x2f\x85\x46\x0d\x1c\xae\x41\x4d\xb0\x8a\xa3\xd3\xac\x9c\xff\xc6\x6a\xa0\x38\x91\xe4\x40\x37\x0c\x90\x68\x2e\x90\x10\x3d\x0b\x9c\x65\x44\x8c\x98\x85\x36\x05\x00\x6f\xce\x6d\x90\x48\x5b\x34\x79\xaf\x51\xbe\xae\x46\x19\x26\x7d\x94\x13\x16\x57\x9d\x6f\xc8\x6f\x5c\x9a\xea\xb1\x24\x37\x50\xcb\xa2\x4b\x23\xbd\x57\x69\xba\x83\x4a\xc8\x3b\x94\x6e\x4e\x41\x19\x93\x45\x85\x4a\x67\x37\xf3\xaa\x70\x49\x64\x00\x94\x69\xf8\x38\xe6\x44\x06\x06\x71\xe4\xed\x5a\x09\x9d\x12\x7d\x93\x8f\x98\x26\x89\xd0\x78\x6f\xc0\xaa\x1d\x76\xb5\xee\x34\x12\x5c\x4a\x1b\xc5\x6e\xda\x59\x9e\x8b\xb4\x45\x5d\x3c\x83\xb8\x7d\x7e\x7d\x35\xae\x57\xc8\x0b\x9e\xb9\x5a\x79\xf6\x61\x63\xc2\x7a\x6b\x53\x2b\x2b\xe3\x15\x6b\xb1\x46\x6d\xbc\xe3\xd3\x8b\x73\x5f\x10\xaa\xd2\x75\xbd\x38\x5e\x88\x52\xde\x5e\x1e\xaf\x3e\xe3\xa0\x50\x5e\xa5\x89\x25\xa5\xf2\x56\x6f\x56\x39\x76\x76\x1b\x08\xba\xca\xd6\xaf\x3c\x6b\x65\x9a\x59\x15\xe2\xbd\xa3\x6d\x6a\x61\xd1\x11\x08\x5f\x2f\xed\xad\x06\x21\x46\xbf\x25\x15\x4e\xb3\x30\x7d\xd1\x61\x70\xda\x69\x9a\xa3\xd6\x76\xa1\xbc\x2a\x36\x78\x84\x4d\x64\x48\x75\x70\xb5\xad\x58\xcf\x7b\x74\x6f\x21\xc7\x77\x11\x12\xfc\x7a\xf9\xc0\xc9\xa2\x88\x80\x93\x56\x0e\x72\xe5\xac\x5b\x6c\xe8\x13\xe2\xe1\xd5\x5b\x37\x74\xdb\x84\x3f\x0f\xc3\x24\x08\x96\x36\xb4\x01\xf2\xe2\x2a\x39\x33\x6b\x98\x5a\xfd\x98\x4d\x66\xed\xa1\x2f\x68\x10\x5c\x35\xb6\x46\x57\xe4\x0e\x22\x15\x82\x3c\x11\x01\xb4\x63\xe3\x67\x58\xf9\xa8\xe2\x44\x10\x1c\x2f\x82\x15\xf1\xce\x7b\xd3\x33\x98\x9a\x24\x4d\xb5\x32\x0c\x62\x3e\xe3\x87\x3c\x73\xf2\x7f\xe9\x2d\xa8\x46\x41\xa7\xfa\xc6\x0a\x5c\xff\xfa\x0b\x76\x48\x3e\x53\xa9\xf4\x1d\xdd\x10\xf7\xe8\x1a\x01\xe9\x01\x6a\x54\xcd\x89\xbd\xe1\x46\x1f\x06\xdf\x5d\xdf\xde\x0f\xcf\x46\x1f\x8a\x48\x77\x97\xca\xe5\xd1\x95\x1c\x58\x3e\x67\x23\xe6\x83\x53\x3d\x98\x30\xec\x25\xc2\x71\x5c\xa0\x04\x58\x85\xcc\xc8\x3f\x4b\x39\x72\x70\x2a\x56\x86\xa5\x2e\x69\xe6\x01\xf2\x79\xf6\xf5\x64\x2d\x71\x43\x95\x4e\x8e\xc9\x4a\x5a\x92\x3e\xb2\xa3\xcb\x26\xc4\x41\x55\x46\x6f\x25\xca\x01\xf5\x31\xf2\xec\xf4\x0e\xb8\x9d\x8f\xb1\xb9\x84\xd7\xe3\x76\x6e\x43\x36\xd8\xd4\x8f\xf4\x33\x89\x6f\x5b\xa4\xaa\x9d\x64\x87\x74\x8a\xaa\x6b\xdc\x85\x9c\xd1\x75\xb4\x67\x3f\x95\x07\xfd\x5d\x77\xb6\x74\x5d\xc0\x9b\x15\x50\xa5\x80\x53\xaa\x10\x46\x11\x11\x0a\x53\x86\xa6\x70\xb0\x59\xb4\x40\x00\x7e\x41\xc0\x1f\xfc\x47\x94\x52\x06\x59\xf8\xcb\x96\xf6\xa1\x3c\x8f\x35\x84\xd6\xcb\xf3\xab\x87\xfb\x92\xa8\xfa\xfd\xf5\x43\xb9\x40\xfa\xe0\xe7\xa5\xb2\x6a\xa5\x85\x65\x81\x37\xc1\x14\x8b\x8c\x3e\x8b\xd8\xea\x57\xa6\x71\xa2\xc9\x42\x91\x87\xdb\x8b\xad\xe4\xbb\x66\xc7\x53\x2b\xde\x76\x28\x5d\x35\xa3\x0b\x74\xf9\x34\x26\xd1\x2a\x44\xd0\xee\x74\x64\x22\x8a\xf4\x3a\x58\xcb\x9c\x45\x0b\xc3\x12\x65\x58\x58\x9f\x4e\x6c\x82\x89\xca\x55\xb6\x8c\xe6\xb5\x0c\x8d\xe1\x13\x51\x3f\xea\xab\x8f\xb3\x5d\x64\x14\x58\x51\x16\x7c\x8d\x64\xfc\x64\x1a\x5e\xe3\xa4\xd9\xa1\x2c\x49\x1b\x71\xc2\x32\xf4\x80\x6c\x0f\x21\x86\xc1\x91\xa9\xb6\x3e\xd0\xcd\xc1\x8a\xb8\xd8\x3c\xad\x92\x72\xa6\x29\xd2\x40\x93\x3a\x3c\xd3\xa0\x39\x3e\x35\x1f\x77\x44\x77\x0b\x22\xc4\x75\x5b\xc5\x52\xa2\xc1\xcd\x79\xc3\x5a\x5f\x54\xdd\x31\x5f\x56\x69\x98\xc4\x7b\x86\x76\x0d\x38\x14\xa4\xfa\xed\x05\xc2\x90\x9d\xe9\x76\x90\x42\xc6\x81\x7e\x53\xf6\xca\xef\x03\xf2\x6d\x93\xca\x50\x4a\xe1\x5d\x01\x72\xbb\x5e\x56\x5b\xb1\x0c\x6b\x02\x08\x85\x03\xb2\x29\x15\x21\x68\x4e\x3d\x5e\xf7\x20\x04\xd1\xe1\xa6\xf8\xac\xf5\xd3\xef\x0c\x58\xa8\x98\x4d\x17\x64\xa1\x1f\x0d\x45\x7b\xe0\x09\x80\xd2\x70\xc5\x0d\x5d\x9c\xad\xcd\x03\x0f\xa7\x1b\x52\xdb\x7a\x60\x44\xc5\xf8\x9c\x29\xd9\xe2\x3a\xe3\x0c\x5b\xbb\x03\x28\x51\xae\xea\x40\x53\x91\xba\xa3\x11\x0b\x82\x3f\xa4\x51\x7b\xf4\x19\x71\x85\x3e\xa0\x7a\x2c\x03\x90\x68\x48\x78\xf1\xc2\x4f\x69\x07\xaa\xe9\xe6\x6a\x5e\x2e\xd5\x51\xeb\xc7\x9e\x4e\x39\xc7\x2e\xa9\xcf\x59\x50\x6c\x4c\x5d\x68\x5f\x82\xf6\x02\x70\x7e\xdb\x31\x98\x76\xc1\x68\x81\x83\xd2\x6f\x41\x22\x78\xcc\x89\x64\x5f\x29\x9f\x36\x49\x13\x5b\x5e\x04\x57\x4d\xed\x5a\xaa\xc3\xd4\xb6\xbc\xfc\x80\xef\x00\xe9\x68\x5d\xc5\x21\x38\x56\x2b\xcd\x54\xce\x5f\x0a\x94\x10\xc6\xf5\x40\xa7\x6d\x16\xea\xcf\x19\x89\x36\x81\x63\xb9\xc1\x02\xa7\x44\x11\xb1\x2c\xb4\xa7\x5c\x98\x19\x44\x1c\xb7\x83\xb6\x5f\xb3\x8b\xa6\x6a\x45\xb5\xbc\x89\xd7\x6e\x2f\x56\xc1\xab\xf8\x59\xac\x85\x24\xa5\xa7\xf1\xa3\xb5\xa2\xaf\x39\x0b\xdb\x4f\x31\x0d\x1b\xb9\x14\xa0\xe9\x6c\x3b\xa7\xd7\x81\x15\xb9\xaf\x01\x74\x94\x42\x6f\xf6\x04\x4f\x64\xf5\x28\xdb\x80\x44\x56\xf1\xd2\x9d\xf0\x6e\x97\x2d\xe0\xd2\x51\x2b\x87\xaa\x94\x87\x00\x54\x02\x2a\x95\xc1\xd4\x68\x06\x03\x01\xa1\xa5\x29\xda\x30\x70\xa1\x59\xa8\xb8\xc2\xa0\x6b\x25\xab\x6a\xa1\xa6\xca\x72\xad\xe0\x71\xbb\x02\x4a\xe8\x25\x9a\x5d\x4b\x34\xab\x48\xb9\x14\xa9\xaa\xa9\x93\x88\x0a\x66\x8b\x2d\xa0\x6c\x93\xed\xcb\x13\x84\x3c\x1e\x7b\x45\xda\x2a\xac\x70\xf5\x53\xe6\xff\x55\xe6\xe0\x8e\xa8\x43\x52\x6d\x4a\x50\x3c\x0a\x5c\x50\xe0\x81\x4a\x42\x69\xc0\xc6\xa8\xc0\x68\x4d\x48\xa1\xb1\xf2\x9f\x5f\x19\x07\x16\x24\x0a\x2f\x78\x8e\x9e\xa9\x9c\x23\xc5\x47\x0c\x62\xee\xbc\x37\x40\x71\x64\x5e\x3c\x80\xb7\x00\x52\x40\xe6\x93\x94\x2a\x84\x83\x19\x96\x4c\x92\x07\xf6\x3c\xeb\x0f\x60\xc6\x8d\x39\xeb\x4d\x70\x37\x2b\x0e\xcd\x06\xf6\xb5\xa2\x91\x6d\xd3\xd2\x83\xf8\xe0\x97\x4d\x4c\x0f\x34\x9e\x50\xc3\x6c\x3c\x73\x7d\x66\x3a\x6a\xb6\x36\x58\x00\x4e\x40\x49\xa5\x52\x55\xee\x16\x6b\xe8\x59\x91\x95\x5e\x6c\x44\xa7\xb4\xf4\xe2\xf5\x5d\xe4\xa5\xb7\x95\xfc\x5a\x96\xa7\xe8\x3e\x69\xb1\x7f\xbb\xfc\x57\xc5\x5d\x10\x7a\x28\x29\xdd\xb4\x4a\x4a\xfb\x86\x10\x56\x04\xd7\x6f\x1e\xaa\xbd\x8e\x3a\x58\xe4\x3a\x85\x54\x14\xa4\x2e\x96\xf1\x55\x48\x95\xf3\x33\xae\x20\x3f\x25\x82\x72\xe8\xb5\x9c\xc9\x11\x6b\x96\x40\x96\xf3\xc4\x6d\xd3\x1d\x76\x8a\x24\x16\x9c\x3f\x37\x0b\x6b\xd1\xfa\xc9\x07\x8c\x19\x65\xd9\x16\x36\xaf\x8a\x98\x85\x8b\xaf\x2d\xd0\x47\x0b\x1e\x9b\x24\xef\x36\x9c\xca\xe6\xa1\xd7\x92\x11\x56\x9e\x0b\x7b\xe9\xee\x50\xb5\xab\x71\xe7\xce\xb9\x1b\x5e\x46\xb6\xdc\xd8\x05\x1f\x3b\x35\xbe\xe2\xa9\xdd\xa4\x60\x2b\x00\x74\xee\x0c\x56\xb4\x9a\xe9\xaf\x1b\x3f\x00\xef\xae\x1d\x3a\x36\x91\x2e\x1e\xec\xba\xb2\x25\xa5\x09\xdb\x42\xf8\x2f\x30\xe9\x75\x8b\xec\x06\xde\x46\x61\x23\x67\x69\x68\x37\x80\xea\xba\x36\xe0\xb0\xc2\x87\xbd\x68\x97\xb3\x98\x08\x46\xb0\x9a\xbf\x5e\xbe\xc2\xe9\xb6\xc6\xe9\x30\xc0\xfe\x45\x73\x17\x4e\x77\x52\x61\xbd\x92\x0f\xb0\x66\x2a\xc0\x1a\x71\xf5\x45\xbd\xdd\x9a\xe2\xd8\x60\x34\x0c\xe0\x5c\xd6\xa1\xd2\xad\x52\x1a\x9a\x95\xb9\x97\x49\xee\x68\xb0\xfa\xd4\xd2\x3a\xf4\x61\x0f\xab\x14\xaf\x58\x92\x2f\x22\x8b\xe2\xe5\x03\xfb\x97\xd5\x43\xce\x83\x58\x7f\x28\x4a\xad\x30\x65\x96\x7b\x2d\x0b\xef\xd7\x12\x65\x8a\x9b\x22\xfa\xf7\x3e\x57\xe4\x8b\x4f\x15\xe9\x13\x07\xfa\xc4\x81\x86\x3d\xea\x13\x07\x10\x7a\x6f\x89\x03\xcb\xcc\x9f\xde\x23\x07\x75\x2b\x4b\xc5\x62\xcc\xfe\xae\xd0\x22\x37\x0f\xe8\x77\x16\xc4\x30\x1a\xca\xfe\x62\x7f\x68\x0c\x88\xaa\x7d\x56\x9d\x6d\x68\xcd\x64\x8b\xaa\x53\x00\x8b\x38\xb1\x88\x6e\x36\x5c\xb9\x6c\x7d\x5a\x66\x28\x1d\xb1\xef\xf9\x33\x79\x22\xe2\x00\x61\x85\x52\x2e\x15\xf0\x61\x17\x1d\x03\x07\xa1\x04\x0e\x6e\xa2\x20\x30\xba\xc2\x29\x89\x4d\xed\xc0\x20\xa8\xd1\x9a\x6b\xad\xa3\xb5\x09\xb8\x14\x30\x38\xcd\x36\xb8\xa8\x89\x11\x33\x81\x86\x26\xb8\x0d\x64\x05\xea\x26\x06\x04\xf3\x3b\xef\x06\xfe\xdd\x11\xba\xd7\xf7\x13\x95\xe5\xf1\x06\x38\x66\x6d\x63\x1b\xb1\x99\xe0\x79\xe6\x2d\x68\x7c\x62\x8a\xc8\x9a\xd8\xa7\xba\x1b\x18\x06\xe3\x7c\xc0\x11\x8e\xb5\x26\xbe\x9c\x70\xde\x24\x06\x75\x23\x30\xa0\x90\x80\xf4\x31\xf4\x81\x75\x36\xd0\xdd\x78\x6f\x03\x08\x94\x65\x90\xe6\x2f\xe4\x5a\x3e\x23\x12\x6c\x42\xde\xe6\x5e\xca\xc8\x2e\x67\xfd\x37\x8e\x73\x99\x45\xd4\x7b\x2d\x9c\x65\xbf\x19\x50\xa0\xe8\xdc\x46\x7c\x99\x74\x4f\x7b\x4f\xbc\x98\xad\xb4\x73\xec\x6c\x1b\xbf\xb8\xc9\x45\xc6\x41\x12\x4b\x16\x0e\x00\xc1\x62\xa6\x65\x3c\xcb\x4d\x54\x1b\x0d\x83\x9c\x1a\x29\x9b\x4a\x75\x89\x55\x34\xd7\x9c\xbb\xc0\x0e\xdb\x51\xb4\x5f\xc1\x95\x5f\xd6\x7e\xda\x30\x83\xd3\xb0\xf7\x16\x87\x42\x07\x7b\xba\xb9\xf7\x5d\x70\xbd\x93\x24\x52\xdd\x9f\x71\xba\xd9\xd2\xd0\x81\x55\xd4\x7d\x62\x9f\xe8\x89\xae\xa2\xa2\x55\xe3\xef\x46\x5b\xe5\xda\x55\x3b\x8f\x23\xdc\x02\x8c\xe5\xcc\x42\x5f\x15\x2f\xda\x5a\xa7\x2d\xce\x7f\x41\x37\xcb\x01\xb2\x78\xf3\x4f\x5a\x1c\xf1\xf6\xd6\x14\x67\x5a\x89\x50\x5c\xdf\x92\x62\x66\xe4\x58\x13\x25\x8b\x30\xca\x05\x75\x67\xbf\x92\x5d\xdd\x4e\x1d\x60\x9f\x3c\x0e\x6b\x13\x45\x38\x28\xdb\x66\xdc\xfd\x38\x52\x39\xf6\x61\x89\x40\x13\xae\x9c\xb8\xc9\x24\x77\x6e\x75\xe1\xc4\xbb\x86\x3d\x5d\x49\xd8\x5b\xec\x32\x6e\x42\x0a\xec\x74\xd2\x28\x9b\x05\x30\x83\xcd\x36\xe2\x2e\x55\x04\x1a\xbf\xec\x56\x09\xa1\xf1\x53\x27\xfb\x6c\xf2\xed\x12\x18\xa4\x8d\x23\xb3\x4b\x51\xee\x36\x0c\xd6\x4a\x4f\x21\x00\xa4\xb5\xdf\x01\x8e\x2b\x05\x37\x3d\xb6\xd2\xd4\x7f\xf9\xbf\x4c\xd5\x29\xb3\x34\xff\x85\xb8\x18\x31\xf3\xfb\x81\xaf\xf8\xa0\x5f\x28\xa0\x54\x71\x4a\x0a\xb0\x49\x51\x86\xa5\x03\x70\x0e\x0b\x2b\x66\x60\x73\x3d\xe0\xbd\x1e\xc3\x63\x3e\x21\x82\x11\x3d\x34\x97\xc6\xef\x99\x59\x8a\x19\x9e\x01\x48\xef\x01\xc4\xc5\x81\xb8\x5a\xa8\x22\x86\xa4\x4d\xe5\x40\xe0\x56\x9a\x59\xda\x6c\xdb\xa2\x82\x2e\xf4\x69\x44\x59\x8b\x11\x5a\x04\x57\x34\x53\xff\xad\xed\x7f\x33\x89\xfd\x7e\x70\xf7\xc3\xf8\x76\x78\x77\xfd\x70\x7b\x5a\x12\xdb\x4f\x2f\x1e\xee\xee\x87\xb7\x8d\xcf\x8a\x4c\xd5\xbf\x3e\x0c\x1f\x5a\x1e\xb9\x06\x2e\x06\xdf\x0d\x4b\xe5\xa8\xff\xfa\x30\xb8\x38\xbf\xff\x79\x7c\xfd\x71\x7c\x37\xbc\xfd\xf1\xfc\x74\x38\xbe\xbb\x19\x9e\x9e\x7f\x3c\x3f\x1d\xe8\x2f\xc3\x77\x6f\x2e\x1e\x3e\x9d\x5f\x8d\x5d\xd0\x71\xf8\xe8\xa7\xeb\xdb\x1f\x3e\x5e\x5c\xff\x34\x0e\xba\xbc\xbe\xfa\x78\xfe\xa9\x69\x16\x83\xbb\xbb\xf3\x4f\x57\x97\xc3\xab\xe5\x65\xaf\x9b\x57\xa3\xb5\xa2\x6e\x70\x91\x05\x46\xa3\x40\x4c\x9a\x2c\x2c\x69\xd3\x5f\xc1\x75\x71\x63\xe8\xf1\xf0\xc0\xfd\x65\x8a\x54\x1f\x6a\x16\xe8\xbc\x62\x05\xf7\x18\x31\xef\xb6\xf4\x97\xaa\xc2\x33\xe9\x12\x8f\x4b\xa3\x3d\x41\x03\x38\x2b\xa0\x30\x94\x3a\x85\xbc\x06\x3f\x52\xe7\xe8\x06\x3a\x4c\x68\x4a\xc1\xe7\x8d\x0e\x51\x75\xc3\xcb\x0d\xda\x39\xc1\x10\xac\xd7\x2e\x5e\x76\x1a\x64\x35\xa7\x19\x28\xe5\x04\x39\x0e\x4d\x8c\x39\xc1\xa0\xb8\x2e\x18\x4e\x69\x54\x4d\xc0\x00\x20\x53\x54\x80\x76\x54\x5b\x2c\x11\x58\xb9\xe5\x39\x41\x3f\xfc\xa5\x18\x14\x78\x30\xac\xe6\x9d\xd7\x6a\xd3\xd9\x07\x22\x37\xab\xba\x8a\x3c\x4b\x3d\xb9\x63\x6e\x4d\xcb\x70\x6e\x6d\x0d\x6c\x70\x37\xe5\x2c\x00\xee\x2a\xf9\x9e\xf4\xf1\x36\x33\xaa\xd0\xf8\x09\xba\x03\xd0\x10\x59\xa8\xee\x7a\x17\xb3\x24\x9f\x51\x86\x68\x9a\x25\xa4\xa8\x9e\x3e\x21\x73\xfc\x44\xb9\x2b\x04\x61\xea\x65\xc0\x3a\x5a\xd1\x0a\x1d\xa2\xd6\x83\x72\x82\x06\x71\x2c\xcb\x0c\xae\x44\x39\x8e\x65\x1e\x96\x87\x1d\x62\x6d\xb1\xd8\xb3\xcd\x0a\x1d\x15\x47\x0e\x56\x6c\xf7\xb0\x28\x75\x76\x58\xbe\x7b\xb7\xb8\xfe\xf5\x0a\x8e\x1d\x29\x8f\x37\x12\x06\xee\xb1\x7c\x74\xac\x79\x95\x40\xe0\x00\x6a\xb6\xeb\xd1\x22\xd5\x74\xed\xd4\xaf\xec\x18\x0e\xda\x66\x7d\xb6\xe2\x2b\xaf\xe8\xd2\xcd\x38\xa9\x14\xc1\xea\xdc\x5f\xa9\x88\x56\x63\x67\x3b\xf5\xf6\x34\x4b\x63\x70\x24\xc7\x9e\xfe\xd7\x98\xc7\x0d\x7c\x7a\xed\xbf\x5c\x2a\xb2\x8d\x83\x75\x5b\xd7\x07\x54\x4b\xd1\xb5\x7e\xa0\xa5\x74\xb8\x23\xa0\xa4\xee\xc2\x20\x94\x30\xa0\x11\xb8\xfb\x30\x65\xb6\xb0\x0d\xf1\xfe\x28\x57\xca\x59\x9f\x63\x5f\x6c\x0d\x4f\xf8\x53\x49\xb9\x4c\x89\x94\xb8\x05\xae\x24\x30\x89\x6d\xc3\x18\xfc\x09\xb5\x1f\x76\xa4\x27\x77\x26\xef\xf5\x57\xcb\x8c\x3e\xb7\xa1\x66\xec\x26\xaa\x05\xd6\xd8\xc5\xd9\xa2\x6b\x93\x6d\xa7\xf9\xcb\x41\x11\x4a\xc3\x45\x10\x61\xd4\xe6\xfe\xe9\x68\x56\xab\x2e\x58\x63\xbd\xa2\xd0\x85\xb7\x7e\x04\x4e\xd0\xfa\xc6\xd8\xd2\xd6\xaf\x82\xcb\xeb\xb3\x06\xd5\x95\xfc\x9d\x61\x2d\xe7\x88\xa7\xa9\x91\x0b\x4a\xb6\xd4\x03\x84\x4d\x92\x63\x21\x4d\xc9\x3c\x9a\x1b\x2f\x93\xbe\x32\x0e\x46\xec\x39\xd8\x90\x52\x18\xf0\x20\x6c\x09\x70\x39\x3f\xeb\xe3\x46\x9f\x4a\xc1\xd5\x20\x32\x52\x88\xf4\x0d\x08\xc1\x38\x04\x8b\x42\x4c\x2b\x08\x3c\xd8\xaf\x2d\x48\x7d\x83\xaa\x7b\x95\xf5\x6d\xab\xbd\xe7\xe7\x16\x94\xbc\xdb\x42\x53\xee\x3a\x84\xa0\xea\x5e\xd3\x08\x76\x50\x74\xef\x55\x81\xb2\x7d\xb2\xa6\xc9\xed\x4d\x27\x16\xa1\x42\x4f\xd7\xad\xf6\xef\xdd\x8c\x7e\x6f\xfc\x0e\x79\x0b\xa4\x49\xd0\x9a\xc7\xca\x46\x87\x5a\x66\x75\xa9\xf6\x36\x10\x43\xa2\x43\x83\xbf\xf7\x15\xc4\x59\x0e\x6e\xce\xbf\x3a\x40\x5f\x85\xb9\x66\x5f\x6d\x74\x00\xed\xb8\x6d\xe1\x3d\xd0\xa6\x4a\x09\x07\xe5\x63\x07\x7b\x55\x39\x89\x76\xcf\xec\x41\x44\x6d\xe7\x50\x7f\x59\xfa\x06\x9c\xd3\x50\x48\xce\xf8\x6f\x7d\xb8\xb3\x75\x01\x19\x19\x97\xca\x86\xb5\x8b\x47\x6c\xb2\xa8\x3a\x79\x0e\xbc\x97\xa7\xf3\x29\xdd\xba\x38\x9a\x6e\xaf\x9e\x9c\xbc\xe3\x30\xdc\xe5\xf7\xc1\x8a\x74\xe7\x81\x89\xb8\xe6\xd3\x80\x8b\xb5\x45\x29\xf4\xf1\xeb\x4d\xb3\x2a\xd9\xcb\xdc\x62\x36\x6e\xca\x2a\xf9\xe7\xbd\x91\x5b\x87\xa0\xef\x41\xd3\x8a\xd8\x78\xff\x16\xe1\xba\xa7\xb2\x97\xa5\xb2\x5d\xe4\x3b\x94\x07\xb7\xfe\x05\x7a\x6a\xe4\xb8\xa0\x19\x67\x70\xd5\xca\x84\x67\xf0\xa5\x0a\x7a\xab\x4b\xcf\xae\xe9\xf3\x0d\xd6\x64\xb5\xd3\xf7\xce\x04\x0e\x18\xb7\x6b\x7d\xac\xd5\xa1\x0e\x94\x2d\xe7\xc3\xa9\xc9\x6d\x54\x34\x25\x07\x88\xb3\x64\x11\x04\x3b\xd8\xf3\x0a\xe4\x66\x62\x94\xe6\x84\x0a\xd7\x89\x45\x18\x5c\x2b\x19\x7e\x4d\x69\xbc\x8d\x46\xb6\x88\x34\xb9\x1a\x5c\x0e\xcf\xc6\xc3\xab\xfb\xf3\xfb\x9f\x1b\xd0\x23\xcb\x8f\x1d\x80\x64\xf0\xc2\xdd\xcf\x77\xf7\xc3\xcb\xf1\xa7\xe1\xd5\xf0\x76\x70\xbf\x02\x5c\x72\x59\x67\x6d\xc0\x85\xb9\x6c\x52\xdf\xd6\x01\x2f\x74\x66\xde\x86\xde\xeb\x10\x93\x41\x27\x94\xb4\xc0\x4c\x9a\xc4\x7f\x16\x13\x81\x62\xf2\x44\x12\x9e\x15\x66\xd5\xc6\x05\x0b\xf0\x27\x1b\xda\x5f\x86\x41\x09\x6d\x56\xd7\xf8\x04\x99\xaa\x69\x41\xe1\x58\xdf\x20\x88\x7c\x58\x10\xf6\x95\x42\xe4\x73\x96\xd0\x88\xaa\x20\x31\x90\x0b\xeb\x5e\x31\xee\x43\x88\x4e\x5d\x41\x5c\x3b\x8b\x46\xd9\xb9\xce\x1f\x7a\xd2\xeb\xda\xbe\x3f\x51\x1e\x0f\x6d\x65\x29\x9e\x1d\x28\xf6\x2d\x4e\xe3\x1a\x5c\xdb\x06\xa3\x7b\x09\xf3\x40\x3d\x43\xc7\x26\xf7\xb5\x40\xb9\x35\x0f\x72\xf5\x6d\xb8\x2c\x4e\xa6\x74\xae\x97\x07\xca\x74\xa3\xd4\x37\x0e\x77\x29\x95\xa8\xdc\x01\xee\x86\x8d\x5d\x5f\x33\x60\xa1\x56\x79\x85\x99\x98\x53\x8c\x04\x49\xb9\xd2\x0a\x98\x89\x08\x38\xd0\x42\x15\xc5\x09\xfd\x15\x10\xaa\x04\x39\x0a\x22\x28\x1c\xae\x57\xe1\x3e\xb0\xe8\x11\x47\x23\x76\x36\xbc\xb9\x1d\x9e\x6a\x86\x74\x84\x1e\x24\x80\x4f\x95\xa6\x7e\x66\xc9\xdb\x88\x63\x61\x24\x03\x65\x52\x11\xdc\x16\x0c\x46\x84\xe0\xa2\x3b\x7f\xf0\xfd\x0d\xe1\xbb\x66\xf2\x86\x67\x25\xdb\x94\x33\x00\x5c\xb5\xd6\x17\x0e\x72\x06\x76\x9e\x92\x75\x8b\x9f\x4b\x2b\x12\x82\x6f\x80\x24\x52\x5e\xf5\x17\x5c\x6d\x80\xef\xec\x3e\xbf\x52\x9f\x37\xf0\xed\xb2\x79\xde\x43\x88\x9d\x54\x05\x16\xa8\x81\x0b\xf5\xf5\x63\x2a\xf3\x6c\x15\x15\xc5\x5b\x00\x75\x54\x48\x7f\x42\x66\x98\x21\x91\x33\x56\x01\x87\x0d\x2d\x6d\xf5\xa0\x99\x75\x8f\xaa\x5e\x33\x9c\xf2\x9c\x81\xd2\x00\x61\xac\x0d\x83\x91\x19\x61\x6a\xc5\x60\xde\x0a\x86\xa5\x32\xd4\xfd\x45\x62\x69\x18\x68\x1b\x18\x4b\x93\x3f\x09\x8a\x18\xaf\x77\x2d\xbb\xa0\xbc\x92\x53\x49\x1f\x2a\x7f\x3f\x37\x6b\xd9\x58\x3e\x6e\xdd\xdd\x3d\x96\x8f\xab\xbb\x8a\x49\xf4\xb8\xee\x65\x53\xcd\xcc\x4c\x6c\x0d\xe8\x9a\xb1\x6f\xa1\x9f\xda\x22\x27\x50\xfa\x3b\x7a\x44\xdf\xdf\x5f\x5e\xa0\x29\xd5\x72\xaf\xbe\x56\xae\xb0\x96\xb1\x1f\x44\xe2\xec\xc2\xd6\xb6\x9a\x8b\xc4\xdf\xbd\xb0\xf1\x4e\x94\x0a\xa4\x04\x7d\xa3\xe1\x19\x71\xc6\x5e\x61\xb1\xf6\x2a\x45\x4e\x04\x66\x31\x4f\xcd\x3c\x8e\x65\x3e\x9d\xd2\xcf\x47\x0a\x8b\x6f\x5a\xd6\xc3\x44\x55\x8c\xff\xce\x27\x63\x3d\xa2\x2d\x2f\xe2\xa6\xe6\x90\x2d\x4d\xec\x97\xcd\xce\xec\xcc\xbc\xfb\x7f\xf9\x04\x72\xdd\x33\xc1\x01\xff\x0f\xbc\x73\x36\x52\xc1\xbe\xe2\x28\xe9\x08\xb9\x04\xaa\x12\xc4\x49\xc4\x85\x20\x36\x45\xde\x54\xe9\xcc\xb0\x50\x14\xac\xb5\x0e\x22\xa5\x84\x8d\x5f\x6c\x51\x58\x3c\x7b\x8e\x0b\x1c\xea\x09\x21\xe0\xe0\xc9\x68\xb2\x9e\xd2\x7b\x5a\xf2\x4d\x56\x4e\xa0\x8d\x3c\xb5\xa8\x99\x60\x90\x59\x29\x62\x0d\x9f\x08\x53\x3b\xd1\x4f\xa0\x89\x86\xa4\xfd\x6e\x5e\x06\x53\x2c\xf3\xfc\xac\xb8\xdc\x5c\x48\x6f\x18\xd5\xa4\x04\x86\x7b\xde\x26\x4a\x59\x97\x7a\x9b\xa3\xff\xa9\xb3\xef\x18\x5e\xad\xaf\xcb\x8a\xd0\x78\xbb\xda\x45\xd1\xec\x22\xac\xd5\x01\xfb\x6f\x08\xe3\x23\x89\xb1\x62\x04\xf0\x11\x56\x39\xad\xee\xb9\xe9\x53\xd3\x56\xa5\xcb\x95\x5b\xbe\x01\x66\x4d\xa9\x99\x4f\x04\x52\x3a\x77\x11\x88\xbe\x4e\xea\x3e\x0c\xe4\x41\x24\x10\x42\xbd\xd4\x8a\x65\x0a\x76\x6b\xce\xe7\x25\x3b\xdc\x41\x46\x37\x83\xd1\x42\x23\xc9\x04\x89\xf4\x55\x76\x82\x6e\x12\xa2\x25\xaf\x5c\x4b\x5f\x79\x92\x38\x7c\xaf\xe5\xd2\xe1\x5a\x98\x74\x2f\x3e\xaf\x40\xf7\x58\x32\x31\x87\x6f\xb7\x7c\x66\xc1\x1a\xec\x1e\x70\x21\x58\x5f\x30\x21\x83\x21\xb1\xac\x45\x02\x87\x5f\x98\xb8\x59\x30\x25\xe1\xd2\x45\x46\x7f\xd5\xec\x57\x10\x39\xe7\xad\x49\x8e\xe1\x6c\x5f\x66\x0e\x6e\x29\x5f\x70\x12\xee\x3e\x6c\x8b\xab\xee\x20\xd7\x54\xee\xc0\x92\x88\xb3\x6c\x8a\xbe\xf6\x83\x8f\xfe\xb0\x68\xab\xf6\x6e\xb5\x43\x83\x5b\xb2\x30\xb5\x85\xc8\x67\x85\xeb\xa2\x50\x66\x16\xc6\xf7\xea\x3f\x2f\x0c\xc8\x45\x4a\x00\x55\xb2\xa8\xdf\x86\xf4\x5d\xdb\xb6\xc5\x7a\x9e\xe3\x5c\xac\x05\x49\x51\x60\x96\xaf\xc3\xb9\x6d\x32\x4a\x31\x2c\xbd\x08\xcd\xec\xd2\x96\x92\x00\x31\xda\x86\x1a\xc9\x12\x0e\x9c\x25\x1b\xb3\x8c\x8d\x2a\x5e\x3b\x53\xde\xd6\xad\x06\x52\x72\x21\xca\xbc\x94\x77\xad\x44\x81\xa5\x09\xf4\xc8\x62\xeb\x23\x8b\xd9\xba\x22\x9e\xf6\x00\x07\x50\x09\x48\xfc\x2f\x1c\x68\x55\xc1\xc1\x1a\xbd\x57\x65\x3e\x95\x76\xa7\x53\x9a\x53\xe9\x0b\xcd\x4b\xce\xb6\xf4\xc0\xe9\xc9\x2c\xc6\x90\x38\xba\x4d\x14\x4e\x69\xfe\xc6\x7b\x00\x6d\x92\x18\x19\xf4\x02\x83\x7b\x6c\xd7\xce\x7b\x4e\x32\x2c\x08\x53\x23\x76\xab\x47\x61\xbe\x28\x22\x31\x5c\x1c\x8e\xc3\xa2\x87\xea\xaf\x53\x84\xed\x57\xb0\xe8\x6d\x81\x70\x72\x6c\x5e\x02\xd5\xf4\x05\x93\xec\xbf\x33\xef\x18\xcc\x03\x8b\xf9\xa3\xa7\x4a\xa7\x85\x1a\xaf\x05\xc8\x68\x4e\x01\x72\x20\x26\xd2\x5e\x48\x54\x59\x4c\x09\x2f\x7e\xe7\xc4\xa1\x2f\xc3\x67\x9e\x7f\x35\x31\x6c\x67\x28\x60\xce\x40\x27\x47\x2c\xe8\x63\x09\x58\xa7\x51\xd6\x37\x54\x25\x60\x9f\x69\xec\x1d\x5f\xf0\x4f\xb3\x43\x5c\xd0\x19\x65\x41\xc9\x24\x3b\xbd\x14\x67\x60\xde\x35\x67\x90\x4f\xfd\x9d\x76\x6f\xb3\x0c\x8e\x60\xc4\xff\xf3\xdf\x7f\x3b\xa2\x6d\xde\x0f\x39\xb6\x2b\xb0\x0f\x3b\xb9\xde\xb6\x84\x3b\x1f\xa0\x88\xb4\xa0\x53\x04\x3a\xad\x2c\x65\x4e\x14\xbf\xda\xcb\x4d\x13\x0d\x57\x73\xe3\xee\x2d\x93\x3b\xf8\x46\x44\xbe\xbc\x8a\x40\xc0\xe2\x8a\x80\x80\xc2\xeb\x1b\x04\xdd\xba\x1a\x11\x26\x58\x52\xb7\x5f\xb9\x50\x2a\x0c\x2a\x00\xf3\xdb\x26\x38\x71\x8e\xe5\xcb\x45\xa0\x34\xd6\x36\x32\x46\xe3\xf0\x8e\x5c\x15\x8b\x62\x06\x69\x92\x1a\xf5\xae\xe4\x92\x08\x73\xa0\x3d\xea\x93\x25\x9e\x10\xaa\x10\x42\x11\x57\xb8\xd4\x48\x8a\xe9\x5a\x61\xf3\xfa\xfd\x66\x20\xc5\x92\x4d\x1d\xcf\x88\x18\xc7\x79\x29\x46\x7a\x55\xdb\x37\xfa\xa3\xb3\x5c\x2d\x56\xb7\x2f\x13\x5c\xaf\xed\xb2\x0c\xbc\x52\xbf\xdf\xd2\xec\x6a\xc1\x30\x88\x64\x29\x0b\x87\x2d\xd0\x90\xa4\x02\x0d\x69\x43\x2b\x4b\x96\x00\xb8\x68\x18\xd4\xd5\x0f\x14\x06\x7b\x13\x19\x00\x6b\x18\x39\x9a\xe4\x85\xe5\xc4\x97\x04\x88\x8f\x46\xec\xa3\xa9\xa9\x01\xca\x8c\x19\x40\x04\x79\x2d\xe4\x73\xc6\x25\x29\x25\x5a\x35\xc0\xfc\xdb\x44\x49\x3b\x8c\x66\x99\xb4\xf8\x68\x7b\x91\xf4\xcd\x41\x3e\xeb\x1b\x5e\x9f\x72\x33\x05\x6e\x25\xf5\x44\x34\xa3\x9a\x76\xc6\x8d\x27\x6d\xfd\xa9\x77\xad\x12\x53\x84\x2e\x01\xdc\x93\x4a\x16\x07\xc8\x4f\xaf\x42\x10\x09\x79\x22\x60\x35\x86\x31\x86\xc5\x1c\xca\xe6\xab\x16\x76\xb2\xea\x00\x15\x59\x8e\xc0\x16\x50\x5c\x1d\x41\x39\x17\xac\x89\x16\xcb\x59\x2e\x5b\x27\x64\x35\xc5\x5f\xac\x21\x85\x0e\xc2\xa2\x16\x0b\xa2\x10\xf9\xac\x88\x2d\x7b\x79\xef\x52\xe6\xea\x51\xf6\xa8\x39\xeb\xa7\x5d\x44\xda\x3d\x55\xd4\x26\x62\x13\xa5\x5d\x4e\x60\xec\xee\x7d\x9b\x23\x37\xc7\x2c\xb6\x89\x9f\x56\x96\xd6\x32\x05\xcc\xce\xd8\x96\x7c\x48\xbc\x4d\x5f\x0c\xd0\xc0\x4d\x9b\x06\xb6\x1c\x2e\x32\xa7\x17\x69\xc9\x1c\xa2\x08\xb8\xd0\x02\x6a\xce\x14\x4d\x34\x71\xd8\x31\x68\xad\x39\x67\x1e\x8f\x0f\x02\xb8\xdb\x20\xdf\xa8\x94\x94\xcd\xc6\x76\x25\x5d\x0e\x63\xb7\x8b\xa1\x4c\x53\x97\xa6\x29\xf3\xe3\x77\xae\xa1\xe5\xb6\x63\x43\xd6\x00\xc7\xe5\xb2\x27\x41\xb0\x66\xdc\x4d\xc6\xe2\xa8\xb9\xa4\xcb\x31\x8d\xcd\x52\x50\x53\x5d\x19\x26\xba\x8e\x79\x19\xc4\xba\x3a\x5c\x41\x71\x85\x48\x9b\x11\x69\xf2\x9c\x20\x20\x5d\xb5\xa4\x7c\xca\xd6\x54\xcf\x73\xe6\x45\x34\x5b\xdb\xc9\x27\xb4\x57\xb2\x46\xb1\xeb\xce\x46\xdd\xe3\x24\x99\xe0\xe8\xd1\x2b\x1b\x5e\xe5\xe6\xc2\x61\xe3\x6b\x01\x15\x8a\x7f\x19\xe2\xd2\x03\x8d\x40\xba\x09\x9d\x62\x06\xb0\xc6\x0e\xbb\xe8\xdc\xac\x9a\x45\x02\x33\x08\x45\x66\xf4\x26\x84\x3f\x26\x59\xc2\x17\x69\xcb\x7d\x56\xcd\x94\xdb\x26\x20\xa5\x2d\x51\x6f\xa7\x57\x59\x85\xe9\xad\x7d\x99\xd5\xd2\x6e\x76\x00\x9f\xb4\x06\x97\xfc\x94\xf0\x09\x58\x0e\xad\x96\xed\x52\x49\x82\x8c\x86\xea\x79\x5e\x37\xc1\xa5\x7a\x22\xa9\xcc\x12\xbc\x58\xd6\x83\x49\xad\x78\xd9\x7d\x33\xa9\xf8\xab\x8d\x60\xdd\x83\x92\x1b\x3f\x7f\x09\xa0\xde\x0b\x27\x09\x98\x77\x0d\xff\xaa\x18\x93\x4c\x4e\xdb\x91\xf1\xc5\x2a\x3e\x62\x0a\xcf\xdc\xe6\x5a\xe1\x92\x3f\x33\x22\xe4\x9c\x66\xa5\xa2\x80\x5b\x47\x41\x5b\x8a\xb6\xff\x31\x31\xbf\x6b\xf0\x4e\x9e\x1d\x1a\x20\x0e\x4d\x1f\x32\xc3\x51\x61\xfc\x8b\x12\x2c\x25\x9d\x2e\x02\xfc\x0c\x1f\x50\x0a\x59\x4a\x65\x6d\x39\xa8\xc3\xd5\xc4\x68\xcc\xf8\x76\x93\x40\xbe\x7d\xf2\xdc\x43\xf9\xf8\xd1\x38\x04\x2a\xd3\xf7\x49\x1d\x2c\xc5\xdd\xd4\x16\x34\xa5\x15\x70\xd5\x64\xca\x6f\x96\xf0\xbd\x14\xe3\xa6\xdd\x8c\x50\x08\x93\x76\xd8\x56\x91\xf1\xb8\x16\x21\xe6\x8b\x2a\x65\x0c\xc2\xe6\x6b\xc5\xc9\x99\x3f\x35\x71\x7a\x4c\x0c\x80\x0e\x28\x3e\x3e\x40\x72\x2b\x2c\xa9\x2e\x74\x71\x46\x12\xb2\x93\xc0\xe2\x0d\x88\xa4\xea\xb5\x0f\xc8\x63\x29\x69\x14\x58\xfa\xab\x8d\x0b\x1b\xc4\x3b\xb7\x20\xd2\x34\x0f\xfd\x27\x33\x50\x1b\xf2\xdc\xb4\x8b\x60\xff\x82\x55\xee\xaa\xbb\x34\x41\xdb\x99\x16\x2c\xc9\x15\xdd\x94\xe8\xaa\xe8\xd4\xcb\x2b\xfb\x48\x6a\x6f\x1c\x19\x5c\x1b\xd7\x27\xd2\x25\x8a\x61\xe5\x01\xd8\x88\x03\xd5\xf9\x74\x37\xba\xb0\x7e\x42\xc5\xd1\x8c\x28\x53\xe2\xde\xd7\xf1\x7f\x4f\x34\xb1\xb3\xbc\x86\x1d\xad\x7e\xf3\x21\x5f\xef\xd4\xde\x11\x25\xdd\x95\x50\x43\x0b\xb4\x9b\xb3\x87\x5b\xb0\x1f\xc7\xd2\x08\xae\x5f\xbc\xdc\xb2\x35\x16\x80\x1d\x99\xcd\x88\xff\x0d\x09\x54\x66\x8e\xb1\xfd\xc2\x67\xbf\x97\x70\x9f\x70\x09\x2b\xcf\xac\xd1\xdb\x73\xbd\x2a\x69\x7f\xe9\xa2\xd7\xfa\x34\x5e\x1d\x55\x41\xdd\xbd\x3c\xb8\x9e\x3c\xe8\xb0\x24\xf7\xf0\xf2\x6f\x3b\x06\xfb\x79\xff\xec\x81\x70\x58\xbb\x12\x77\x27\x22\xbe\x23\x32\xd9\x0b\x49\xb1\xb6\x15\xaf\x25\x2f\x1e\x3a\x30\x9f\x02\x1a\x67\x7f\xb7\x68\x3f\x4e\xf2\xad\x75\x03\xbd\xdc\x05\xbb\x9a\x5e\x76\x42\x1f\x80\x6b\x89\x21\xfd\x37\xb7\x85\x32\xe0\xf0\x06\x21\x63\x35\xdf\xc3\x8a\x60\x3c\x3b\xbc\x4e\x61\x78\xb5\xe5\x7c\x89\xed\xb5\xb9\x5e\x9d\x37\xf7\x25\x49\x6d\xdd\xb1\xec\x42\x47\x79\x61\x2f\x8e\xa5\xc6\xe0\x83\x3e\x26\xb6\xdb\x2d\xda\x80\x20\xe3\xb6\x6c\x97\x87\xac\xa9\xba\xd9\xf6\xd9\xea\x2e\x95\x6d\x9c\x09\x32\xa5\x9f\x37\x12\xc5\x6f\xe0\x53\xab\x5e\xea\x65\xae\xd4\x4b\x03\xf7\x0c\xd4\x57\x0b\xe2\xf6\xec\x4a\xdb\x9a\x4a\x23\x56\x24\x00\xda\xec\xbf\x47\xb2\x40\x5c\x94\x7e\xda\x14\xeb\x70\xf7\xb5\xdd\xcc\xbe\xce\x95\xca\xe4\xc9\xf1\xf1\x8c\xaa\x79\x3e\x39\x8a\x78\x6a\xc2\xcd\xb9\x98\x99\x3f\x8e\xa9\x94\x39\x91\xc7\x7f\xfc\xc3\x1f\x8a\x2d\x9e\xe0\xe8\x71\x66\xd0\x63\xea\x7e\xa7\xf2\x96\x13\x2c\xb7\x8b\xec\x71\x99\x5a\x2f\x9c\xb1\x1b\x74\xe3\x72\x24\xf5\x37\x52\xe1\x34\x0b\xa3\x47\x4d\x75\x34\xa9\x70\x51\x93\x01\xd2\xef\xf4\x34\xd1\x1c\x67\x19\x61\xed\x66\x07\x93\x4f\xb9\x05\xeb\x71\x19\x99\x76\x84\xe4\x73\x96\x60\x56\x46\x19\x80\x02\x43\x82\x44\x84\x29\x9b\x01\x5f\xd4\x4b\x06\x6a\x34\x48\x37\x86\xff\xaf\x97\x71\x07\x73\xa4\xb2\xa8\x1c\xe6\x86\x63\xab\x78\xba\xda\x8e\x38\x58\xba\x6a\xe5\xd4\x62\xed\x88\x5b\xb5\x65\xb9\x78\x77\xf5\xfa\xd9\xeb\x57\x6e\x11\x9c\x8d\xc9\x67\xcd\xe4\xe4\xa6\xb8\x54\x0f\x92\x48\x34\xf8\xe9\x0e\xc9\x05\x53\xf8\xf3\x09\xba\xa4\x0c\x04\xd8\xef\x79\x2e\x24\x3a\xc3\x8b\x43\x3e\x3d\x4c\x39\x53\x73\x74\x09\xff\x6b\x7f\x7a\x26\xe4\x11\xfd\x4c\xb0\xb0\xfc\xc1\x56\x5e\xf3\x45\xbc\x35\x09\x89\x9c\x49\x44\x9e\xf4\x09\xfd\xc3\x7f\xa2\xd4\xb4\x7c\x82\xbe\x3d\xfe\xc3\x7f\xa2\xdf\xc1\xff\xff\xff\xd1\xef\x5a\x34\xfd\xf5\x90\xad\xa0\x3e\xef\x6d\xd9\x9d\x7b\x50\x59\xa9\x0d\x4a\x96\x9f\x0a\x5e\xec\x54\x63\xcb\x8f\x34\x7a\xe4\xd3\xe9\x58\x13\x86\xc9\x57\x1b\x63\x51\x43\x45\xde\x10\x26\x94\xda\x02\xcb\xa6\x60\x5b\x51\x2a\xc5\x76\x6a\x80\x0d\x1c\xbb\x96\x79\x51\x60\x16\x82\x88\x4a\x45\x7b\xa9\x84\xaf\x48\xac\xb9\xea\x3a\xa7\xc3\x59\xf7\x5c\x8e\xb3\xb3\xe0\x84\x40\x20\x61\xd1\x70\x1f\xf8\x17\x46\xb1\x9a\x40\x1f\xbb\x90\x8d\xc7\xa1\x16\x5e\xfb\xc5\xc4\x4c\xc2\xd4\xde\x2a\x5e\x52\xd6\x3a\x5f\x1d\x2a\x79\xc7\xc5\x56\xfa\xd6\x23\xa9\xc5\x6c\x77\x2c\x0b\xe4\x4a\xd5\x86\xe5\xeb\x21\x11\x9a\x0b\x0f\xd7\x6b\xec\x22\xb6\x78\xe0\x6a\x2b\x26\x15\x26\xb8\xac\xdb\xa1\xd7\x53\x3f\xf3\x9f\xac\x1a\x26\x44\x9a\xb9\xb7\x8b\xb2\x68\x30\x5a\x2d\x22\x69\x96\xd8\x30\xe2\x06\x4c\xbf\x55\x1b\x7a\xe7\x61\x1c\xa0\x71\x08\x7b\x84\x94\x0f\xe6\x24\x5b\x9b\x27\xdf\xbc\x9f\xb9\x88\xc8\x29\xdf\x2e\xec\x35\xa1\xac\x16\x2f\xdf\xbd\xe2\x8e\x5f\xbd\x0b\x5b\x5b\xc9\xc1\xde\xf2\xb8\x50\x16\x8c\x5b\xc0\x16\x5b\x08\xf0\x36\xcb\xb3\x01\xdc\xb6\x5d\x40\x3a\xd6\x4a\x00\x6c\xc1\xb5\x8d\xe1\xb8\x60\x78\xae\x82\x44\xa5\x70\x84\xc0\x9a\x17\x2e\x89\x5d\x83\xa0\xa2\xad\xc7\x11\x14\x43\x29\x22\x95\x2a\x45\xc7\xb1\xa9\x08\x22\x36\x84\xe4\x34\x75\x89\x0e\x90\xc0\x10\x94\xa9\xe6\xba\x3d\x49\xc4\xe1\x14\x47\x94\xcd\x0e\x02\x34\x46\x40\x46\x08\xaf\x83\x26\x22\xbd\xc7\xf2\x71\xb7\x81\x86\x5b\xd7\x69\xa4\x71\x51\x2b\xcc\xe2\xa7\x18\xc7\x06\xad\x41\xd1\x29\x2c\x1f\xdb\x00\x84\x6a\xe8\x65\x4b\x46\xe7\x97\xc2\x61\x9e\x2d\x1b\x9f\xcb\xb4\x26\xa1\x3e\x05\xa5\x09\x5c\xe5\x60\x8b\x65\xe8\x12\xdb\xb0\x07\x1b\xa9\x82\x78\x2e\x19\xbf\x9c\x73\xa1\xc6\x1b\xc2\x9f\x56\xb3\xc5\x19\x39\x4c\x00\xb7\x84\x3f\x11\xf1\x44\xc9\x73\x19\x45\x74\x1d\x5a\x34\x46\xb3\x20\xaa\x0e\x60\x26\xd3\x8c\x43\x0a\xcd\x14\xa5\x98\x2d\x0c\xa3\xd4\xcc\x05\xcb\x47\xe9\xeb\x95\x22\x99\xe2\x24\x39\x40\x82\xe4\xd2\xd4\xf1\x95\x24\x99\x1e\xba\x8a\x0f\x31\x4a\xf8\x8c\x46\x38\x41\x93\x84\x47\x8f\x72\xc4\xb4\xa0\xc0\x66\x86\x49\x65\x82\x47\x44\xca\x40\xb2\x2a\x92\xb6\x6d\x2a\x1d\x14\x2b\x55\x44\xa4\x94\x51\xa9\x68\xe4\x44\xa6\x02\x7b\xc1\x94\xcc\x8e\x30\x98\x84\x21\x31\x11\x86\xab\x25\x3d\x62\x30\x28\x73\x66\x6b\x03\xc1\x75\x6d\xa1\xe5\x5c\x90\x78\xdb\x01\xda\x01\x52\x9e\xa3\x90\xb1\x2a\x1f\xc8\x15\x47\xea\xd4\x7e\x06\xc7\x78\x19\x09\xdc\x96\x4f\x94\x27\x48\x7f\xd2\x4a\xe8\x3d\x10\x53\xee\x43\xe0\x4b\x92\x8b\x8f\x0c\xdf\x33\xe0\x2e\x18\x72\x0b\x5c\xd7\x2a\x9a\xd6\xab\x08\x22\x0f\x94\xa3\xaa\x7a\xcd\x29\x8b\x92\x3c\xf6\x05\x09\xb5\x08\xf0\xa4\x89\xc4\x2d\x8f\x5e\x7b\x2d\x28\x1c\x20\x2c\xd1\x33\x49\x12\xfd\x5f\x13\x01\x7f\xe8\xeb\x03\x68\x96\x6c\x6a\x38\x40\x27\x8e\x4b\xb7\x51\xd4\xde\x81\x30\xde\x60\x35\x37\xa9\xed\x29\x57\xa6\x16\xa4\x01\x61\x74\xf6\x2d\x83\xda\x37\x49\xf8\x04\x4e\x3a\xe0\x33\xba\xd4\xd8\x20\xad\x2e\x8f\x22\x42\x62\x12\xa3\xaf\x83\x83\xeb\x61\x17\xbe\x69\x46\x0b\x2c\xad\xc8\x1e\x60\x33\x56\x0d\x6b\xad\x08\x8d\xe5\x72\x66\x47\xe8\xa6\x82\x3f\x12\x96\x29\xc7\x55\x34\xaa\x83\xda\x16\xbe\x0d\x9e\x63\x65\x12\x2f\xb7\x43\x6b\xe2\x39\x96\xfa\xdc\x01\x9e\x63\x65\x9e\x2d\xb1\xfb\x7c\xf6\xa2\x39\xc7\x7a\x52\x17\xbc\x7b\x22\x98\xc1\xc1\x32\x77\x67\x89\x04\xdd\x81\x5c\x34\x11\xe2\x7e\x61\x55\x56\x8a\xfe\xbd\x2d\x56\x65\x65\x30\xfb\x8c\x55\x59\x19\xea\xfe\x62\x55\x36\x0c\xb4\x03\x56\xa5\x71\xee\x8f\x35\x51\x77\x63\x0a\x90\xd8\x32\xc9\xa7\x77\x90\xea\xbd\x74\x8c\xa7\x26\x70\xc0\x5c\x63\xee\x8e\xb6\xd0\xcd\x30\x5a\x9b\x03\xd9\x16\x0e\x55\x71\x42\xac\x4b\x7b\xde\xfb\x46\xa5\xd1\xd0\xd6\x33\xbb\x1f\x84\xd6\x6e\xb0\x43\x46\x38\xb3\x39\xe5\x6d\x15\x55\xf6\x27\x7b\x76\x3d\x18\x50\x80\xd8\x2b\xb1\xfa\x4e\x00\x59\x97\x95\xa2\x04\x73\xfe\x6c\x0b\x03\x01\xf9\x19\x62\x6c\x25\x3d\xe8\x74\x6c\x95\xb5\xb6\x15\xa3\x4c\x91\x59\x55\x97\x2d\x0e\x0b\x65\xea\x4f\x7f\x5c\xc9\x81\x0c\x82\xa0\x53\x0b\x83\xd2\x00\xde\xc9\x61\x9f\x91\x18\x45\x73\xad\x0d\x49\xad\xb6\xe8\xe9\x98\x1b\x55\xa2\x14\x53\xa7\x40\xe5\xd2\xb8\x94\xa8\x1c\xb1\x12\xe4\xe6\x11\xfa\x08\xf5\x4e\x71\x9a\x69\xbd\xcb\xcf\x8f\x6a\x0a\x1a\xe5\xdf\x7e\xfb\x27\x82\xbe\x45\x29\xc1\xac\xa4\xbb\x82\xba\xa4\xaf\x3c\x80\xa8\x53\x73\x32\x62\x8d\x5b\x81\x86\x9f\x4d\x09\x25\x17\xe7\x77\xce\xa6\xdc\xe9\xc2\x50\xc7\x0f\x47\x73\x24\xf3\x89\x29\x44\x1b\xd8\x2e\x9c\x00\x7d\xc1\x67\xe0\xa0\x86\x9b\xd8\x0d\x7a\xd9\xe9\x7b\x59\xdf\xbf\x75\x33\x76\xbd\x85\x07\x70\x7f\x1c\x4a\x52\x82\x2e\x6a\x70\x96\x19\x8e\x17\x1e\x78\x69\x70\x4f\x0f\x8c\xef\x40\xeb\x65\xd8\x5a\xf4\xb5\x0c\x0d\x61\xbc\xe0\x1d\xcb\x13\x2c\xec\x91\x1f\x31\xad\x60\x08\xf2\x44\x79\x2e\x93\x05\x8a\x39\x23\x07\x40\x09\x79\x34\x37\x0e\x55\xad\xab\x60\x5b\x8f\xe1\x89\xca\x5c\x2b\xb2\xd0\x96\x2b\xff\x20\x15\x36\x90\x4b\x73\x0a\xfd\x68\xb5\x9b\xc0\x57\x61\x76\x1c\xea\xa6\x3d\x85\xa8\xa8\x15\x5e\xdf\x11\x15\xb5\x44\x55\x3d\x2a\x6a\x33\xe3\xdb\x5b\x54\xd4\xca\x9e\x77\x43\x45\x6d\xda\xf2\x0d\x50\x51\x4b\xcd\x7c\x31\xa8\xa8\x95\x15\xfd\x62\x50\x51\x2b\xf3\xea\x51\x51\xbf\x3c\x54\xd4\x2d\x71\x3f\x9b\x79\xb1\xc1\x55\x52\x94\x2d\xd6\x26\xb2\xaf\x24\x3a\xbf\xd6\x04\x16\x3d\x96\x83\xd9\xfc\x75\xb5\x3d\xd6\x68\x33\x13\x5a\x0f\x6b\xb4\x51\x45\x6f\x67\x75\xdb\x02\x3b\x81\x42\xf0\xca\x58\xa3\xa5\x09\xf4\x71\x95\xeb\xc7\x55\x36\x12\x9f\xed\x5b\x0f\xcf\x05\x5b\x56\x2f\xe4\x8e\x68\xa3\xa5\xfd\xe9\x14\x81\x09\xa2\xfb\x0e\x28\xf1\x65\xa5\xf9\xfb\xd2\x21\x5f\x29\xcb\x87\xab\x28\x2d\xee\xb1\x96\xf0\x1c\x4a\x9c\x51\xbe\x43\xbf\x7f\x4f\xb9\x1b\x44\x04\x57\x96\xd7\xfb\x53\x0c\x2d\x76\x20\xd5\xce\x14\xea\xb4\xd2\xdd\x24\xc8\xba\xa4\xc9\x35\x5d\xcb\x6e\x10\x77\x19\x89\x5a\x6c\xcb\x34\xa5\xbb\x6a\x76\xd5\x45\xe6\x31\xb0\x40\x21\xaf\xe5\x83\xea\xeb\xc9\x0c\xc7\xc8\xf8\x95\x34\x58\x00\xe8\x30\x5f\xce\xa8\x54\xa2\x35\xa6\xa9\x36\xc2\x6d\x5c\xa4\x59\xde\x39\x10\x26\x58\xd5\xd9\x66\x9f\xa5\x24\xe5\x62\x55\x40\x55\xe3\x97\xb6\x92\xcb\x26\x9f\x92\x6c\x4e\x52\x2d\xc9\x8c\xd7\x6d\xa4\xeb\x7e\xfb\x64\x61\x9b\xb3\x66\x02\x1c\x4b\x44\x10\x38\x40\xf5\xbb\xb1\x41\xa2\xec\xbc\xdd\xdb\x6e\xb3\xc5\xca\x5c\xd3\x11\xe4\xb0\x82\x97\x1b\xdc\xec\x4b\x25\x37\x37\xd0\x77\x63\x2c\x87\x0f\xa5\x59\x1d\xad\xb1\x24\x4e\x63\x19\xde\x54\xf1\x95\xad\x73\xbc\x86\x0b\xbf\xec\x95\xd7\x9c\x30\x2c\x72\xbb\x7e\x60\x47\x0b\x5a\x6a\x7d\x79\x20\x22\x47\x12\x71\x18\x6a\x06\xa5\xc1\xd4\xd7\xab\x44\x25\x4e\xa3\xdc\x82\x48\x72\xd1\x1a\x5d\xda\xc5\x90\x1d\xa9\x1c\x27\xa0\x49\x84\xc5\x19\xab\x9b\x3a\x59\x34\xa4\x3b\x76\xf3\x94\x50\xa6\xfe\xfc\x1f\x6b\xed\xa6\x56\xad\xec\xba\x41\x41\x29\x1c\x45\x44\x1a\xdb\xba\x8d\x3e\xc6\x13\xfe\x04\xb5\xa4\xb6\xd9\x55\x7d\x94\xf5\xbc\x35\x83\xf7\x10\xc4\x71\x41\xea\x46\x5c\x98\x0b\x9e\xcf\xe6\xce\x86\xa4\xcf\x8c\x9e\x5a\xd3\x5e\xfe\x58\xb3\x91\xaf\xbd\x97\xdf\xe5\x34\xd9\xcc\x42\x77\x57\xaa\xb2\xf5\xe9\xfc\x1e\xc9\xb9\x3f\xad\x13\x68\xb6\x71\x63\xeb\x83\xee\xde\xa7\xfd\xd6\xfb\x69\xa0\x9b\x03\x07\xbb\x39\xe5\x49\x02\x9e\x06\x49\xd2\xa7\xb0\x38\x7e\xd8\x3d\x4c\xf8\x9e\xae\x87\x98\xe7\x07\x00\x5f\x17\x09\x11\x9d\xe4\xaf\x1b\x23\x1a\x4a\xe4\x46\x5f\x0d\x56\x30\x21\x6a\x9c\x11\xd6\x64\x63\xfb\xa9\x5e\xe0\xe4\x9d\x05\x0a\xba\xa8\xb1\x9d\x05\x0b\xba\x25\x79\xe5\x80\xc1\x15\xf3\xd8\xd7\xa0\xc1\x0a\xb3\xf3\x31\x7c\xc5\x35\xe3\x02\x86\x8c\xe2\x33\xd0\x4b\x3c\x62\x83\x52\x1e\x85\x2b\x04\x3d\x59\x14\x81\xd8\x46\x87\x08\x99\x19\x94\x91\xb0\x86\x15\x70\xa3\xe9\xbf\x40\xd3\x31\xa0\xb5\x26\x94\xd0\x85\x0b\x42\x14\x39\x89\x0f\x71\xb4\x88\x12\x1a\x05\x3a\xf3\x4c\xe0\x6c\xde\xc4\xf1\xdc\xce\xf7\x68\x3b\x6f\x85\xb6\xd3\x56\x6f\x69\x9d\x78\x6d\x47\x57\x0c\xa7\xa4\x47\x01\x6a\x42\x01\x3a\xf0\x38\x17\xac\xa8\x1c\xf5\x86\xf0\x09\xf5\x73\xd7\x43\x01\xbd\x01\x14\xd0\x26\x87\xaf\xc0\xf9\x29\x1d\xbb\x1e\x9e\xe8\x43\x27\x78\x22\x7f\x09\xee\x15\xe2\x4c\xfb\x79\x7c\x63\x24\x93\xfa\xc0\xde\x12\x8e\xa8\x41\x5c\x58\x47\x6e\x5a\x86\x47\xb4\x8c\x2e\x3a\xad\xcb\xdb\xa2\x03\xad\xb7\x32\x6b\x01\xff\x34\xde\x5d\x7b\x02\x03\xd4\xbe\x0d\x7b\x72\x6e\x76\x99\xcd\xb2\x5e\x69\xcc\x30\xa3\x65\x1d\x05\x6b\xbd\xe4\x16\x4f\x0f\xef\x2b\xc1\xa5\xa8\x21\xb6\x59\x92\xcb\xc0\xf9\xa0\x89\x40\x73\x9e\xc4\x0e\x7c\xc2\xaf\x96\xef\xc0\x67\x00\xf8\x05\x72\x9b\x01\xb5\xbc\x41\xdb\x2a\x0a\x81\x2d\x4b\x65\xf1\x9b\x08\xc3\xdd\x01\xa3\xd9\x85\x15\xc1\x73\x92\x4d\xec\x07\x2b\x65\x11\x59\x36\x7f\x2f\x19\x63\x69\x85\xc0\x6a\xde\x3c\xcc\x95\x76\xdf\x15\x83\x5b\x26\x7a\x04\xc6\x41\xd1\x54\xc9\xd2\xd0\x19\x3c\x7d\xa2\xce\x10\x81\xc3\x1e\x97\x7a\xe9\xdc\xec\x3a\x79\xea\xaa\xc4\xb2\x41\x30\x58\xad\x62\xdb\xf6\xa0\x40\x29\xfe\x3c\xce\xb0\xc0\x49\x42\x12\x2a\xd3\x17\x0b\x06\x3e\x2d\xbb\x6b\xf5\x59\x15\xdc\x98\x88\x58\x9e\x4e\x0c\x29\xba\x81\xd8\x3a\x91\x8a\x23\x91\xb3\x10\xd2\xec\xb9\x56\x4c\x3f\x87\x7b\x01\xac\x4a\xd1\x1c\x8a\x92\x4e\x31\x15\x8c\xc8\xd6\x12\x90\x24\xca\x05\x55\x8b\xb1\xad\xa8\xd9\xfd\xc0\xdd\xd9\x2f\x4f\xed\x87\xcb\x3d\xdc\x2e\x9b\xdf\xf5\xe7\x2b\x78\x66\x44\x40\x79\x20\x57\xe8\x26\xa8\x1a\x6a\xd1\x1a\x88\xaf\x31\x04\xe1\xcf\xb5\x6b\xbb\x2d\x70\x18\x3f\x8f\x83\x4c\xaa\x71\x54\x25\x8e\x55\x87\xb5\x09\x6f\x6a\xd9\x24\x5f\x18\x71\xa9\xc5\x8b\xfc\x02\xd5\x45\x6c\xba\x84\x69\x5a\x0f\x38\x70\x05\x83\xbd\xb2\xd8\x98\x20\xd5\xdd\x2a\x55\x2d\xe3\xb4\x18\x3f\x4d\xc1\x47\x4b\x06\x3b\x08\xbe\xea\x30\xe2\xa0\x93\x1d\x0d\x5b\x1f\x74\x21\xf2\x4c\xd1\x49\x1d\xd2\x46\xed\xae\xda\xe8\x20\x81\xf4\x6a\xe7\x66\x28\x75\x6b\x4a\x90\x96\x38\xb1\x9d\x9d\x96\xff\x2d\x7e\x98\x43\x06\x32\xc8\x4a\x61\xfe\xde\x75\x4a\x95\x72\x89\x02\xc6\x00\xad\xa9\xb3\x6c\x9b\xfd\xca\x85\x7b\x60\x28\x64\x6a\x4c\x44\x47\x23\x36\x90\xe8\x99\x20\x46\x2c\x74\x44\x43\x89\x52\x6f\xd5\x86\x9a\x4f\x13\xa2\x7b\xf2\xb1\x29\x5a\x78\xa0\x4a\xfa\xb2\x63\xa6\x8f\x29\x4e\x24\x39\xd0\x0d\x43\xb5\x52\xc5\x21\xf8\x13\xa3\x67\x81\xb3\x8c\x88\x11\xb3\x59\x1c\xe0\x70\xe1\x3c\x31\xed\xb7\x85\xb8\xda\x35\x20\xe3\x08\x47\xf3\x57\xda\x23\x0c\x49\x38\xd1\x9c\xc4\x2e\x4f\xb8\xbc\x3d\x6e\xde\xc6\x60\xbd\xc6\x66\x9d\x4f\x5d\xd9\xac\x03\xdb\x49\x12\x69\x8e\xe2\xab\x28\x67\x44\xe8\x51\x6b\x1a\x7e\x22\x0c\xd1\xa9\x1b\x87\x8d\xdd\x41\xcf\xe0\x99\xd2\xa4\xff\x84\x69\x62\x12\xef\x5d\xd7\x4e\x08\x34\xe6\xf7\x11\x33\xee\x6e\x16\x95\x32\x53\x29\xa3\x72\xae\x39\x75\x0e\x3e\x49\x50\x33\xda\x12\x67\xd8\xd3\x3a\xa7\x79\xa8\x5f\x5f\xce\x41\x9f\xa8\xe0\x2c\x85\x24\x19\x8b\xc7\xe4\x96\x4f\x12\xe5\x8f\x47\x63\x6a\xe3\x4a\x89\x38\x8e\x65\xd9\xf8\x69\xd4\x4a\xfa\x6b\xc9\xec\x72\x58\xca\x06\x8c\x02\x38\x21\x08\xe2\x74\x15\xc5\x96\xc9\xbf\x7d\x6a\x43\x3d\xb5\xa1\x79\x6d\xf6\x31\xbd\xc1\x1f\xe2\x75\x53\x1c\xda\xb6\x7f\x17\x92\xed\x0e\x53\x1d\xde\x38\x27\xe0\x65\xd2\x01\xde\x36\x7f\xe3\x25\x52\x37\xfa\x04\x87\x37\x4c\x70\xe8\x6c\xa9\x2d\xc7\x66\xb7\x1f\xdb\xb5\x92\x03\x56\x80\x38\x35\xf5\x72\x49\x94\xa0\x91\xdc\x05\x7f\x90\x19\xee\x18\xd5\x06\x5a\x60\xb6\x42\x6a\xd2\x2f\x78\x27\x24\xc4\x89\xf9\xfa\x7e\x13\x41\xf0\x63\xcc\x9f\x6b\xb6\x3a\x19\xa2\x68\x5c\x72\x2d\xf6\x08\x12\x51\x49\x4a\x91\x2c\x54\x22\x46\xa4\x35\x76\xe2\x11\x9b\x53\x22\xb0\x88\xe6\x90\xdd\x58\x6c\x8c\xc9\x92\x35\x40\x46\x26\x96\x21\xf4\x36\xad\xb1\xe9\x1d\xd6\xbd\x6a\x61\xf2\xb8\x74\x76\xcf\xf5\x48\x52\xf3\x89\x17\x66\xac\x94\x11\x9a\xe4\x3a\x6d\xff\xb6\x81\xf8\x7e\xb1\x5f\x34\x18\xdf\x07\x13\x05\x5f\x74\x0c\xc8\x2f\xa8\xa1\x0f\xca\x7f\xa1\xa0\xfc\x86\x25\x5e\x2f\x30\x7f\x23\x93\xdf\xeb\xc7\x0c\xbb\x9e\x5f\x23\x6e\x78\x55\xd0\x56\x3e\x19\xbf\xf8\xd1\x6b\x9c\x73\xd7\x13\xf8\x93\x27\x0a\x23\x11\x0b\x4d\x67\x13\x12\xc7\xc0\x69\x15\xb7\x15\xa2\x0b\xda\x71\xe6\x01\x7d\xf7\x62\xa9\x89\x1d\x27\x9c\xcd\x24\x8d\x0d\xc8\x4a\x86\xa1\x52\x6b\x68\xbc\x00\x70\x01\xd8\xdf\x24\x21\xc2\x79\x25\x04\xfa\x5a\x52\x66\x51\x14\xfd\x6f\x31\x27\x92\x7d\xa5\x8c\xb1\x00\xb3\x05\x7a\x64\xfc\x39\x21\xf1\x0c\x76\xa8\x3a\x98\x43\x44\xc9\x01\xa2\xca\x7f\x26\x00\x8d\x80\xe7\x6a\xa4\xc7\x0e\xb1\x66\x46\x03\x20\xf6\xdb\xa0\x16\xba\x6f\xe6\x9b\x23\x84\xce\x19\x9a\xe2\x48\x1d\x20\x99\x4f\x8a\xf6\x63\x6e\x8a\x5b\x6b\xed\x3b\x98\x78\xd1\x48\x1f\x33\xde\xd0\x79\xf3\xd9\x70\xdc\x41\x93\xeb\x20\xa1\x78\xab\xd8\xba\x27\xbc\x0d\xb4\xe8\x65\x2e\x6d\x10\x06\xe2\xcc\x1f\x7d\x0b\xab\xe4\xb1\xa1\x01\xe7\xd3\xe0\x2c\x33\x1e\xb7\xda\x3a\x2b\x53\x59\x77\x2c\x45\x20\xa4\x15\x94\xac\xa3\x0a\xda\x35\xcb\xad\xa5\x26\xa9\x04\xc1\xa9\x75\x0e\xe8\xab\x06\xc4\x1a\x13\x06\xa9\x47\x4f\x85\x91\x30\xd7\xd9\xe2\x0b\xca\x1e\xf5\xee\x16\x68\xd8\x50\x57\x1e\x7a\x6e\xda\xb4\x4c\xdf\x78\xe4\x94\x33\xe3\x20\xdc\x4a\xee\xa4\x33\x86\x93\x35\x6d\x1c\xb5\x95\xab\xfb\xf4\x9c\x9c\x65\xc5\x05\x2d\x45\x18\x63\x1f\x32\x3d\xae\x65\x43\xaa\xcc\x37\x94\xf7\x30\x8a\x49\x46\x58\x4c\x58\xb4\x00\x12\x61\x80\x98\x23\x18\x4e\x10\x86\xef\x70\x72\x84\xce\x4c\x7e\x8d\x97\xf0\xec\xb5\x0e\x17\x7a\x8a\x19\x9d\x6a\x3d\x01\x8c\xb0\x76\x94\x23\x66\x86\xe9\x7c\x20\x41\xb1\x7e\xbf\x62\x4d\x3b\xa3\x6f\x90\xab\x2d\xd1\x88\x59\xf9\x7b\xb4\xfc\xc2\x81\xde\x96\xed\x8e\x6e\xce\xd5\x1e\x90\xf9\xe4\x10\xfe\x5d\x4a\x38\x73\x40\x3d\x05\x8a\x0c\x49\x08\x98\x03\xad\xc7\x0b\x2e\xc6\x36\x40\xb9\x5d\xf8\xed\x56\xe4\x71\x04\x7d\x94\x94\x9a\x94\x32\x9a\xe6\x69\xe0\xbc\x33\x95\x0a\x22\x6b\xbf\x34\x99\x18\x99\xd6\x03\x22\x07\x5a\x8e\xf4\xe5\xca\x16\x68\x46\x9f\x08\x1b\xb1\x8c\x53\xa6\x8e\xd0\x15\x57\x24\x28\x0d\x61\x20\xa3\x78\xa6\x68\x6a\x50\x4e\x05\xd1\xe7\xc0\x80\x61\x03\xc0\xe4\x1c\xab\x03\x14\xe7\x70\x54\x19\x51\x9a\x75\xe8\x1b\x57\xc1\xce\x40\x7c\xb4\x18\x31\x73\xd3\x4d\x31\x4d\x72\x41\xac\xcc\x8a\x4d\x5e\x4c\x31\xe4\x62\x64\x16\x01\x2d\x98\x44\x4a\x67\x73\xa5\xb7\x48\xcb\x78\xd6\xdf\x38\xd7\xdc\x88\x8f\xd8\x84\x20\x8c\x32\x2e\xa9\xa2\x4f\xde\x7f\x49\xa7\x08\x4b\x09\x16\x94\x23\x74\x56\xb2\xff\x53\x09\xaa\x77\x5b\x5c\x2d\x65\x63\x6b\x7b\x6e\xcf\xc7\xd9\x7a\x23\x4b\xbd\xd8\x55\xc6\x13\xc9\x93\x5c\x85\x2e\xd8\xe6\xbd\x2d\x4c\xe3\x0e\xb0\x1f\x0c\xc4\x7c\x3a\x62\x8e\xae\xe5\x11\x1a\x48\x24\xb9\xde\x25\x69\xb6\x32\x12\x54\x11\x41\x0d\x8a\x13\x51\x66\x13\xfc\x39\xf5\x67\x20\xc5\xe2\x51\x8b\x50\xa1\x05\xde\x60\x89\x96\xac\x1d\x13\x23\x21\x01\xac\x55\xb8\x1d\x60\xfa\x47\x8c\xb3\x43\x46\x66\x78\xd5\x8e\x8c\x58\x69\x4b\xd0\xd7\x74\x5a\x28\xa4\x6d\x3e\xc7\x60\xed\xc6\x10\xf9\xd4\xb6\x4b\xa6\xe3\xb6\x4d\x9a\x26\x1c\xaf\x70\x1b\x4f\x8b\x43\x8f\xfe\xce\x27\x66\x8c\x5a\xef\xe7\x0a\xa4\x40\xad\x5e\x4d\xb9\x20\x73\xcc\xe2\x03\xb7\x59\xe5\xb1\xc1\xcd\x68\x4d\x6d\x4e\x19\x03\x49\xd0\x81\x07\x13\x83\xc5\x84\x59\xb0\x17\x56\x71\xb3\x5b\x51\xec\xc3\x5a\x77\x85\x6f\x0d\x6a\x9e\x18\x03\x84\x61\x79\x8b\xcc\x1e\x71\x49\xd3\x2c\x29\x72\x9a\x02\xdb\xe8\x54\x8b\x58\x8e\x47\xf2\x27\x30\x5d\x39\xad\x0d\x6e\x75\xbb\x73\x9a\xce\x1a\x46\xee\x19\x29\xdc\x1a\xce\xe6\x65\xca\x5f\x06\x2c\xec\x6b\x49\xf4\x3f\x15\x29\xd4\x3e\x23\xac\x8f\x98\x13\x41\xbe\x01\x2e\x63\x9b\x0d\x8c\x67\x5a\x84\x36\xf0\xae\x76\xfd\x50\x64\x9c\xdc\xa5\x73\x62\x0f\x83\x7b\xb5\xe1\xa2\xfa\x8e\x32\x5c\xca\xbc\xdd\x40\xf0\x4b\xf2\xb5\x92\xab\x02\xb7\xdf\xa2\xad\x96\x89\xc2\xab\xca\x8b\xac\x41\x09\x66\x9f\x09\xd2\xdd\x59\x6a\x76\x95\x6e\x30\x44\x04\xcc\x49\x92\xa1\x98\x4e\xc1\x2c\xa5\x80\x7d\x7b\x60\x31\x83\x01\xaf\x0f\x7b\x9a\x33\x03\x12\x67\x3c\x22\xcf\x16\x67\xdb\x5e\x8d\x45\xe3\x47\x23\x76\xae\xbe\x92\x5a\x44\xe7\x6c\xa6\x2f\x9a\xf8\x89\xca\xa2\xb8\x49\xc4\x99\xcc\x53\x22\x6c\x17\xfa\x46\xd6\x14\x69\x0b\x03\x60\x27\x43\xe9\xb1\xe9\xbd\x7f\xc2\x09\x8d\x5d\x01\x1e\xfd\xa3\x39\x73\x7a\x94\xd2\x79\x14\x1b\x42\xc2\xec\xe6\xc6\x7a\xad\xde\x4c\xac\xff\x31\x94\xdc\x51\x5a\x08\xf9\xd8\xda\xea\x8f\xab\x22\xbe\x5d\xf5\x25\xe2\xfd\xa4\x36\x29\xb4\x5c\x30\xb2\xab\x70\xb6\x0a\xc5\xd0\x21\xe9\xe6\x26\x04\x58\xf7\xe3\x8c\x3e\x66\x70\x6b\xb1\x9f\xca\x04\xed\xa8\x0d\x67\x09\xc5\x7b\x42\x41\x36\x90\x0a\x6b\xf1\xc2\x5c\x07\x5c\x58\x0d\xc7\xde\x39\xed\x5b\x7b\xb6\x65\x79\x08\x19\xe1\xa4\xbe\xc3\x4b\xec\xcd\xe6\xfd\xe5\x4a\x80\x3d\x6e\xa6\xed\xa5\x49\xbf\x11\x4f\x92\x75\x4a\x97\x54\x66\x7e\x5a\x7c\xbe\x7c\x44\x45\x3f\x7a\x03\xdc\x5e\xc0\xa9\x31\x97\x37\x4e\xac\x29\x45\x2a\xbb\x4b\xe1\x4b\x46\x0d\x5b\x58\xd6\x3a\x62\x7c\x0a\xc5\x6d\x92\xb6\xa8\xae\x4c\xf0\x94\xae\x83\xae\x6c\x02\x9d\x6e\x9d\x5d\x7c\x85\x95\xc1\x59\xcf\x41\x34\x35\xe4\x65\x7b\x84\x7c\x3d\x6c\xc5\xcd\x25\x67\x28\xc5\xd9\x46\x0b\xbe\xca\x2b\x34\x40\xa9\x71\xc9\xd9\xd5\x03\xbc\x45\x02\x75\x62\x60\x91\x9f\xf1\xa2\x48\x8d\x6e\xc3\xcd\x65\x6b\x91\xc3\x83\x7e\xfd\x9c\x4d\xf9\x1a\x87\xb3\x48\x65\xb6\xa7\x0f\x3b\x9a\x0d\xce\x9f\xf7\x52\x98\xdd\x37\x6b\xda\xe5\x3c\x9e\x36\x11\xf5\xda\x27\xd3\xad\xe0\x4b\xda\x28\x43\x26\x12\x9a\x27\xd7\xb9\x5b\xcb\x47\x2b\x68\x11\xc1\x70\x96\x2f\xd5\x65\x89\x0e\x77\xbe\x46\x95\x76\x90\x31\x85\xbb\x60\xea\x9b\xe6\x56\x5f\x61\xcd\xec\x21\xe9\xb4\x58\x5b\x62\x37\xac\x87\xff\xeb\x7a\xf4\xa8\xbf\xcd\x27\x74\x65\x71\x83\xee\x8b\x01\xdc\x4c\x5a\x3b\x57\x11\x99\x69\x53\xd4\xa6\x34\xd1\x22\xf6\x79\x83\x81\xd3\x25\x88\xf9\x80\x2a\x13\x2a\xef\xa4\xa7\x5c\xd0\xa0\x20\xa8\x93\x91\x10\x85\xc2\x24\xa1\x93\x27\x50\xe8\xc1\xb4\x38\xe7\xcf\x26\x3a\x5d\x50\xcd\xb3\x8c\xb0\xaa\xc0\xdc\xa3\x79\x01\xb5\xd6\x12\x63\x6c\xf2\x1f\x70\x13\x33\x88\x6d\xcd\xe3\x62\x54\x2d\x5b\xba\x8b\xd2\x4e\xdd\xf3\xef\x5c\xaf\xf7\xfa\x8b\xfa\xde\x34\x8e\xf0\xbe\xdc\xfa\xda\xa3\xf3\x52\xfe\xfa\x01\x53\x1f\xe1\x53\xa7\xf4\x60\x34\x15\x04\x1c\xfc\xa9\xc7\xd4\x30\xa0\xba\x9c\xc3\x7d\x77\x77\xf6\xc3\xf1\xc3\x39\x22\x2a\x42\x09\x7d\x24\x23\x16\xc9\xa7\x03\x2d\x1e\xff\x23\x27\x4a\xff\xdc\xe2\x11\xa0\x29\x61\x12\x38\x01\x55\x35\xec\xa1\xe6\x85\x74\x0b\xa3\xff\x7b\x56\xfe\x7e\x09\xc9\xd7\xd2\x87\x81\x76\x5d\x9d\x1b\x20\x53\x28\xe5\x61\x96\x56\x36\x50\x8c\xb1\x45\x0e\x9b\xaa\x60\x6e\x90\x2e\xc4\xfe\x9e\xb3\x35\x85\xae\xd3\xe2\xa3\x60\x14\x2d\x32\x5d\x9a\x61\xc0\xba\x5e\x2f\x0f\xc9\x7c\xd3\xd8\xfa\x2a\x26\x52\xa4\x65\x3b\xdb\x72\x51\x30\x14\x29\x41\x08\xb0\x10\x4f\x4f\xf6\xae\xb7\x48\x1c\x7e\x62\xc1\x47\x47\x23\x76\xe9\x3c\xce\xc5\xaf\xb2\xd0\xc3\xd3\x49\x00\x01\x5e\x6e\x05\x9a\x8d\xa9\xf4\x3f\x40\x21\x17\x99\x27\xca\x54\xb2\x9b\x52\x86\x13\x3f\x50\xf3\xa4\x89\x4b\x08\xcc\xa2\xf9\xb6\x26\x64\x3a\x1d\x93\x64\x1d\x49\xf4\x7c\x3a\x4c\xa4\xa6\xef\xe8\xb1\xe5\x74\x6e\x52\xab\xb1\x98\x8c\xad\x40\x6b\xea\x3d\xa1\xc2\x04\x8d\x13\x53\x49\x8e\x20\xf0\x51\x56\xb3\xc7\x0c\x40\x84\xde\x45\x2b\xa9\x1b\x17\xa5\x49\xdb\xf0\x21\xd9\xd0\x0b\xc2\x6a\xc4\x44\xce\xa0\xc8\x84\x8f\x58\xc0\xa8\xc0\x0b\x8f\x9c\xff\xc0\x7a\x73\x66\x9a\x4d\x18\x38\x6e\xf3\xb2\xd6\xcf\x78\x2e\xc1\x56\x93\x12\xa5\x2f\xa8\xaf\xa1\xfe\xab\x09\x19\x3a\x40\x99\xa0\x29\x98\x5b\xe5\x37\x0d\x5b\x77\x8a\x15\x4e\xf8\x6c\x20\x14\x9d\xe2\x48\xdd\xe3\xad\x34\x70\x6c\x9b\xd9\x34\xfc\xd4\x0d\x03\x9d\x9f\xe9\xc5\x9f\x11\x46\x04\x4c\x54\xeb\xe4\xcd\x47\x18\x9e\x6c\xc4\xb9\xc1\xca\x66\x0d\xa3\xd2\x5b\x2c\x70\xae\x78\xaa\xf5\x5b\x9c\x24\x8b\x03\x63\x91\x25\x68\x8e\xe5\xdc\x6d\xb4\x31\xa6\x75\xb9\x9b\xec\xe2\x9e\xe2\x68\x4e\xee\xa0\x1a\x72\xd3\xe2\x56\x46\xf9\x81\xb0\x3c\xfd\x70\x82\xfe\xa7\x98\xe3\xe9\xe0\xf4\xfb\xe1\xf8\xec\xfc\x6e\xf0\xdd\xc5\xf0\x2c\x98\x8f\x7d\x72\x79\x7e\x77\x57\xff\xf5\xfb\xf3\xfb\xfa\x8f\x37\xd7\x37\x0f\x17\x83\xfb\xa6\x56\x2e\xae\xaf\x7f\x78\xb8\x19\x7f\x1c\x9c\x5f\x3c\xdc\x0e\x1b\x3e\x7d\xb8\x6f\x7f\x78\xf7\xc3\xf9\xcd\xcd\xf0\xcc\xad\xca\xdf\x82\xd3\x05\xd6\x63\x48\xbd\x68\x9e\x46\xf5\x00\x1e\xa2\xf2\x8b\x27\xe8\xa1\x5a\xfa\xc0\xc6\x22\x1b\x1c\x8b\x67\x2c\x35\x0f\x83\x50\xf8\x11\x43\xee\x73\xbd\x28\x6d\x9f\x9a\x70\x9d\x68\x4e\x50\xc2\xf9\x63\x9e\x59\xd6\x66\xe2\xc3\x18\x37\x86\x1f\x22\x83\xd6\xbe\x3f\xbf\x3f\xa9\x97\x60\xf0\x8d\x05\x88\x59\xee\x0c\xc0\xb8\xb0\x63\xa7\x60\x4b\x71\xd0\xfc\x85\xf5\x36\xe8\xc1\xef\xcc\xb2\x7e\x4c\x6b\x98\xa9\x4a\x37\x71\x6c\x8b\xfd\xba\x89\x05\x0d\x97\xf7\x75\xd9\x6a\xfa\xe5\x30\x35\xa7\xd0\x84\x44\x38\x37\x41\x4d\xfa\x9e\x12\x82\x8b\x70\xc0\x05\x3d\xec\xae\x51\x4b\x47\x8d\x0d\x56\xf6\x4c\x4f\x5c\x3e\xd2\x2c\x23\xf1\x87\xba\xfc\x52\xae\x0a\x6b\x6b\x91\xf3\x29\x0a\xce\xa4\xd6\xeb\x41\xe7\x77\x05\x53\xe6\x0b\xef\x49\x83\xc0\x8d\x22\x94\x05\x80\x9c\xf5\x9d\xe0\x0b\x5b\x50\x70\x8d\x61\x85\x9e\x09\xa4\x54\xe7\xb6\x62\x94\xd1\xbd\xf5\xd9\x86\xee\x8c\x4d\xdb\xd5\x7f\x2b\xa5\x5a\xb7\x32\xe3\x5d\x08\xdc\xfa\x7b\x49\x9a\x18\xf1\x16\x79\xb1\x67\xa6\x51\xe0\xce\x2e\xe6\x0d\x46\xdc\x12\xdc\xe0\x6e\x83\x06\x0b\xf9\x12\xf9\xaa\x7e\x23\xad\xb8\x2c\x34\xdb\xee\x32\x1e\x87\x05\x52\x02\xb8\xee\x3e\xb0\x12\x08\xf2\xca\xb5\xba\xe7\x31\x5e\x68\xe2\x80\x58\x63\x99\x67\x19\x17\x0a\xb5\xb4\x61\xdc\xf8\x66\x7c\x70\xe7\xd8\x79\x78\x1e\x07\x8d\x68\x09\x43\x36\xd4\xd2\xe8\x06\x8f\x60\xd7\xb5\x60\x1c\x61\x80\x2c\x28\x82\xbe\xde\x51\x5a\x52\xa9\x4b\x14\xda\x24\xfc\x6e\x93\x61\x90\xe9\x0b\xbe\x6b\xf9\xbd\xa6\xde\xaf\x5d\x0b\x8d\x5b\x9e\x90\xa9\x1a\x37\x7a\x7d\x96\x18\x38\x75\x8b\xac\x0d\x51\x86\xce\xe6\x3b\x68\xb1\xbb\x96\xf0\x47\x1b\xd8\xa3\x55\x83\xc0\x42\x20\x38\x57\x46\x3e\x2d\x74\x18\xe4\x56\x13\xcc\x0b\xb6\x53\x9b\x0b\xe6\x85\x40\x2d\xf3\x1b\x7f\xa8\x4f\x9b\x3a\x1a\xb1\x21\x04\x50\x14\x8a\x88\x4b\x11\x03\x2d\x60\xa5\xfc\x5f\x2a\x36\xfa\xaa\xd1\x9a\xed\x08\xaf\x05\xdd\xdb\x3a\xf9\xc9\x02\x15\x05\x65\x4b\xdf\x75\x39\x3d\xc6\xea\xed\x44\x40\x33\x61\x5b\xbe\x5d\x91\xcc\x5a\xe6\xcd\x3c\x8b\x48\x1f\x88\x0f\xd3\x5d\x1d\xa1\x9f\x9c\xe5\x07\x02\x5f\x8b\x5a\xcc\x36\x76\x23\xc1\x0b\x07\x0a\xd9\xb4\xb0\xbb\xc0\x59\xdc\x75\x28\xec\xf2\x05\xf6\x80\x4e\x0d\xab\x5c\x52\xc0\x19\x33\x16\xd9\x35\xd2\x3e\x4e\xfd\x47\x77\x64\x79\x54\xc0\x47\x28\xbf\x69\x23\xab\x40\xe8\x60\xc9\xe2\x7f\x99\xcd\x32\x99\xa8\xae\xb0\x96\x2d\x87\x68\x3d\xa8\xfa\xfc\x80\x07\xd0\x24\xaa\xa2\x29\x4d\x12\x90\x03\x8e\xd0\x00\xca\x02\x43\x22\xa7\xbe\x0a\x5d\x80\x05\x9d\x31\xbe\x2a\xc7\xac\x85\x98\xa2\x80\x98\xee\xda\x89\x49\x02\x35\x15\x79\xfc\xbb\xa1\xa8\x1d\x60\xba\x68\xde\x82\xeb\x88\xd8\xdd\x91\x5c\xd6\x50\xde\xdf\x22\x3a\xba\x36\xdc\xe0\xc3\x7f\x35\x0f\xfd\x53\x8e\x05\x66\x0a\x62\x7e\xad\xe8\x2e\x48\x90\x7a\x44\x3e\x43\x7c\x06\x33\x86\x60\xf8\x29\xdc\x5c\xe7\xf2\x87\x70\x2f\x44\xe3\x03\x44\x8f\xc8\x11\x54\x67\x13\x5a\x96\x98\x14\x6f\xce\xb5\xe4\x30\x62\xb5\x58\xc6\x23\x34\x48\x24\xb7\x5f\x10\x16\x25\x50\x86\x3b\x08\x4f\xf6\x94\x6f\xdd\x4a\x93\x05\x28\x28\xb0\x95\x45\xf3\xdc\x3e\x08\x3e\x84\x22\x63\xe0\x13\x4f\xe0\xa4\x17\xbf\xff\x9e\x67\xc6\x5b\xd1\x16\x27\xf1\x82\xe5\x1c\x6a\xd7\xd0\x8b\x6d\x92\x29\x15\xb8\x6c\x83\xe0\x0d\xd8\x98\x22\xc6\x34\x40\x60\x41\x5f\x63\x85\x12\x82\xa5\x42\x7f\xf8\x66\xad\xd8\x10\x37\xc1\x82\xbb\xda\xe3\x5b\x24\x8a\xb9\x54\x83\x50\xb8\xf3\x1d\x43\xed\x38\x2c\x14\xc2\x88\x91\xe7\x30\xb2\x94\x43\x30\xb0\x2b\x08\x47\x82\xdc\x56\x13\x4f\x66\x32\xf3\x21\x5b\xc3\xa8\x4c\x2d\x7c\xc4\xc1\x1d\x5b\xf7\xa9\x1d\x56\x03\x65\x59\xe5\xc9\x86\x78\x02\x24\x57\x11\xf4\x3f\xc7\x6a\xc4\x2c\x67\x75\x61\x23\x41\x9a\xd7\x20\x49\xca\x81\xf6\x18\x72\x49\x98\x9e\x30\xd4\x65\x3f\xf2\x0b\x74\x05\xea\x97\x8f\x76\x2e\xd9\xe9\x8a\xc3\x62\xe2\xf1\x3c\xde\x51\xd8\x76\xa3\xb4\xd3\x64\x5f\x7e\x45\x21\xb8\xa1\xfb\x0b\x53\x20\xbf\x83\x30\x4c\x9a\x86\xbc\xe2\x60\xd5\x6d\xfa\x4b\x64\xe3\x5d\x77\xd0\x5d\x54\x6e\xb6\x8f\xc3\x35\xfb\xcc\x1b\xcc\xed\x2d\x9b\x1b\xc8\x16\xdb\x28\xe0\x3e\xec\xfe\xb5\x3c\xbe\xa5\xa1\x9f\xc7\x90\xf4\xb7\x9a\x0b\x16\x49\x74\x8e\x75\x98\xd8\xeb\x38\xc8\xe9\x09\x52\x08\x20\xf8\xcf\x31\x3e\xfb\x66\x8b\xe7\x35\x7b\xdf\xd3\x3f\x28\xe6\xef\xa6\xe2\x83\xe0\xea\x13\x6f\x17\xf6\x06\xf1\xdf\x71\x04\x91\xfe\xd0\x93\xcb\x31\xa8\x03\x32\x39\x18\x6b\x0c\xc6\xfc\x46\xf1\x30\x13\x3c\x22\x52\x1e\xa1\x21\x5c\x34\xf6\x9f\x08\x4f\x9d\x43\x22\x78\x79\xc4\xb4\x66\xe2\xf0\x5b\x82\xf6\xcb\x24\xde\x74\x02\x0c\x18\xdc\x56\xbe\x9c\x74\x75\x8d\x92\x36\x6d\xc2\x61\xd1\x41\x1b\x50\xd6\x00\x0d\x67\x27\x28\xe6\xd1\x23\x11\xc7\x82\xc4\x54\x9e\x80\x6f\x5d\xb5\x3a\xf5\x52\xad\x6d\x6f\x2d\x69\xb4\x05\x0a\xac\x48\x8a\x3b\x35\xfd\xdb\x00\x6b\x17\x5e\x7b\x80\xe8\x14\xd4\x09\x97\x93\x61\x82\x90\x1d\xdc\x0d\x61\x4a\x2c\x20\xae\xdf\x9b\xb2\x2a\x0b\xe1\x34\x0d\x2d\xb4\xb5\x65\x13\x89\x5d\xc4\xe0\x6c\x38\xed\xfb\x39\x91\xc4\x05\x1c\x98\x49\x29\x6e\x63\x99\x0d\xbb\xc8\xb0\x9a\x4b\x48\x5d\x2d\xaf\x81\x55\xba\xe0\x53\xbd\x42\x38\x83\x78\x05\x63\xa5\x28\x3e\xf2\x09\x96\x52\xd1\x24\x19\x31\x46\x48\x2c\x11\x64\x99\x7e\xd5\x98\x21\xaf\x3f\x3d\x40\x38\x8e\xd1\xff\xfe\xfa\xe3\xc5\xcf\xf7\xc3\xf1\xf9\x15\x18\xad\xcf\x2f\x86\xdf\x1c\xf8\x1f\xaf\x1f\xee\xfd\xaf\xc6\xc2\xf2\x44\x04\x4a\xf1\x23\xa8\x78\x4c\x12\x9b\x3c\x41\x46\x2c\x1c\xa9\xc3\x0e\xd0\x4f\x24\x71\x91\xae\x56\x4c\xf1\x10\x8a\x76\x0f\x5b\x2b\x16\x1b\x9b\xdf\x1a\xca\xef\xad\xff\x64\x39\x0d\x3a\xe2\xf1\x5d\x38\x31\x10\x72\x64\xb0\x0c\x92\xc9\xad\xee\x5b\x10\x1c\x61\x33\xca\xda\xe2\xf1\x08\x7b\x7a\x49\x21\xfe\x07\xb2\xf8\x51\xab\xd7\x37\x98\x8a\xce\xb4\xd7\x8c\x06\xe4\x4e\x8c\xd6\xd3\xb1\xac\x1e\x2a\x69\x64\x61\x93\x6d\xd3\x1a\xf3\xd9\x04\x04\xf7\xe6\xd3\xb5\xf0\x52\xe4\xb3\x12\x0e\xa5\xc2\xe7\x73\x38\x28\x27\x7f\xd1\x14\x34\x38\x62\xf7\xd7\x67\xd7\x27\x88\x24\x78\xc2\x21\x94\xdf\x86\x04\xb9\x26\xec\x82\x45\x3c\x0d\x1a\x2a\x21\x94\x1c\xa0\xac\x40\x28\x09\x8d\x68\x47\xa6\x8d\x15\x48\x25\x19\x17\x75\x7c\x8f\xdd\xaa\x80\x76\xb2\x37\x5c\x74\xb9\xfe\xf5\x6b\xb0\x74\x3c\xd3\x8a\x5c\x85\xf3\xda\xbb\x79\x4a\xb0\xa9\xa1\x6f\xdc\x42\xd6\x96\x6f\x03\x58\x93\xa4\x54\x4f\x51\x1f\x1c\x79\x64\x5d\xf0\xc5\x9b\x9c\xa1\x1f\xfe\x22\xd1\x24\x57\x23\x56\x6e\x83\x33\x34\xf8\xe9\x0e\x7d\x87\x55\x34\xff\x66\xc4\xae\xb5\x9a\xf9\xc3\x5f\x5a\xa0\x94\xd6\x46\x27\xd4\x6b\x72\x86\x15\xbe\xe0\x38\xa6\x6c\xd6\x04\x4d\x58\xd4\x8f\x19\xde\x0f\x4e\xd0\xb5\xd5\xe1\x8b\x4c\x10\x9f\x12\x1c\x34\x04\x0c\x19\x26\xe2\xb8\x08\xb0\x72\x56\x86\x6f\x33\x9a\x19\x5c\x58\x23\x76\x6f\x30\x19\x35\x57\xa5\x0a\x65\xdc\xd6\x30\xd2\x5a\x99\x41\xab\xc4\x2e\x43\x8a\x24\x0b\xa4\x57\x07\xc8\xd8\x6f\x86\x95\xc7\x40\x9e\xa9\x33\xfb\x11\x03\x05\xdd\xe7\xa6\x24\x3c\xc2\x09\xc4\xe4\x1d\x06\x36\x3d\xad\xb6\xf3\x1c\xf2\xc3\x4d\xd1\xf3\x45\x39\x74\xd6\x43\x16\x78\xa1\x2c\xdc\x28\x30\x00\xc0\x3e\x5a\x6f\x6c\xca\x35\xc7\x31\x58\x6c\x60\x7c\x4b\xcc\xea\xe8\x0f\x3d\x36\x9b\x59\x16\xfd\xd4\xa7\x6d\xf1\x9c\x39\x2c\x92\x08\xcc\xf7\x6c\x01\xe1\xdb\x50\x74\x84\x43\xe8\x47\xc1\x9d\x2d\x51\xd6\x76\xd1\xdf\x89\xc1\x67\x23\x66\x22\x05\x4b\xfb\x12\xa2\xf7\x04\xbd\x73\x06\x81\x8c\xf5\x5c\xb1\x3c\xb3\x81\x8d\x56\xd6\xcf\x04\x39\xf4\x19\x50\x71\x69\x4d\xf5\x0d\x7b\x84\x6e\x43\xf5\x3a\xe6\x51\x9e\x3a\x64\x65\xc8\x9e\x2a\xca\xca\x97\x24\x1e\x73\xb1\xaf\xa2\x78\x40\x69\x51\x04\xd2\xc7\x3b\xeb\xc7\x86\x60\x06\xe1\xa7\x75\x49\xbd\x5d\xf0\x05\xde\xb1\x5d\xd4\x9a\x69\x68\x9c\x95\x5b\x2a\xb5\xb6\x75\x5e\xe2\x55\x81\xfe\xca\x05\x08\x5b\xe4\x73\xc6\xc1\xc8\x6d\xd2\xb3\x78\xfc\x95\x44\xe7\x37\x5a\x02\xd2\x1a\xaf\x3f\x83\xb9\x54\x26\xb8\x0c\xd2\x75\xcc\xd7\x26\x5d\xe0\x00\x7d\x8b\x46\xf9\xb7\xdf\xfe\x29\x42\x9f\xdd\x1f\x7f\xfe\xcf\xff\xfc\xd3\x9f\xd7\x49\x27\x71\x0a\x39\xb4\x5b\xac\x91\x2f\x27\x55\x16\x89\xc2\x1d\xa8\x73\xaa\x2d\x76\xc1\x1e\xc0\xb6\xe5\xdf\x04\xe5\x31\x88\x1d\xc2\x33\x7b\xc2\x65\x78\x32\x51\xe9\x68\x16\x91\x04\x92\xa8\x83\x32\x87\xf0\xc2\xae\x95\xe8\xff\xd7\x12\xb0\xb2\xb1\x3e\x2a\x9b\xc5\x38\xd1\xc4\x8b\xd7\xba\x11\xf4\xb5\xb5\xff\x29\x70\x20\x7e\xe3\x2e\x38\x9e\xc4\x44\x98\x31\x79\x93\x9d\x37\x24\x02\x73\x20\x9f\xb3\x84\xc7\x0e\x1e\xb5\xc8\x05\xa4\x20\x20\x0c\x3f\x63\xcd\xb9\x0f\x2c\x8c\x96\xf9\xc8\x78\x5e\xa6\x38\x32\xa8\xa0\x12\x7d\xfd\xf9\x44\xff\x76\x80\x16\x27\x10\x44\x7a\x80\x7e\x3d\xb1\x68\x39\x58\xa8\xb1\xfe\xe9\x1b\x27\x6b\xdb\x26\x60\xd0\x54\xa2\xaf\x8e\x9f\xb0\x30\x35\xa3\x8f\xcd\x88\xbe\xb2\x9c\xd5\xd7\xc5\x0b\x65\xf3\x84\xf3\x47\x1b\x60\x5b\xfb\xf0\xd8\x01\xaf\x01\x79\x7b\xbf\x89\xd9\x7a\x9f\x98\xaf\xd0\x21\xbc\x40\xd0\x51\x36\x41\x47\x7f\x97\x9c\xa1\xa3\x05\x4e\x13\xfb\xab\x7b\x6a\xe3\x7f\xb1\xb4\x39\x71\xb1\x0f\xf2\x49\x16\xc6\x52\xfa\x5d\xc2\x27\x30\xab\x4b\x37\x53\x13\x41\x0b\x03\x2d\x6e\x9f\xe2\xc2\xb2\x13\x71\x89\xa8\x80\x1f\x94\x72\x65\x5e\x01\x1e\xd7\x34\xab\xcf\x7e\x48\xff\x6d\xfc\xc2\xb0\x28\x2e\x89\xcf\x18\x87\x7d\xf4\x9a\x6e\xf4\x33\xfa\xda\xb2\xa0\x6f\xf4\x1d\x63\xc3\x95\xcd\x32\x34\x75\xb0\xf0\x1d\xfc\x1c\x74\x40\x19\x32\x69\x99\x4b\xbe\xfc\xf5\xf8\xe8\xe8\xc8\x7f\x0d\x59\xeb\xff\x2f\xa2\x4a\x92\x64\x6a\x5a\x72\x37\xd8\x62\xc4\x2e\x5d\xe1\x05\x67\xbc\x2e\x20\x1d\x33\xc1\x15\x8f\x78\x82\x0e\x0b\x83\x6e\xcc\x23\x89\xfe\x5d\x8b\xb5\xc1\x52\xc2\x8f\x5a\x8f\x6b\x81\x81\x35\x48\xcf\xaf\x74\xa8\xac\x41\xbc\x7a\xac\x42\x14\x37\xaf\xd8\x62\x19\x56\xf1\x00\x5a\xd0\x94\x73\x6c\x91\xde\x84\xd0\x2f\x93\xcf\x0a\x1e\xb5\x00\xe9\x35\x86\xb2\x37\xdf\x94\x35\x76\x5b\xe0\xe9\x19\xb2\x6e\x59\x00\x8b\x77\x65\x39\x83\x99\xe7\x41\xe8\x3e\xd1\x97\x0b\x0b\x4b\x01\xc8\x3c\x4d\xb1\x58\x1c\x17\xa7\xad\x4e\x9c\x05\xd2\x1a\xf0\x98\xc4\x2d\x00\xb8\x70\x13\x7b\xb4\x6c\x14\x83\x15\x2f\xdd\x8d\xe6\xcf\x6e\x04\xb5\x0c\x03\xc4\x02\xc2\x22\x1e\x5b\xba\x2e\xb2\x4f\xcb\x12\x8b\x7f\xa7\x2e\xab\xb8\x88\x18\x59\x18\xe3\x98\x32\x10\x1e\xf6\x0d\xf7\x71\x0b\xfb\xe6\x63\xa8\x8a\x4b\x66\x6b\xb8\x47\xcf\xaf\xef\xdc\x37\xdd\x2f\x5d\x58\x87\xb2\xc8\x8e\x93\x10\x1f\x8f\xcd\x90\xc0\xcf\xc5\xf5\x0b\xb1\x1d\xc6\x3a\x93\xfb\xdc\x5c\xf3\xef\x53\x7e\x43\x13\x7d\x6b\x01\x8d\x1f\x8d\x58\xe9\xe7\x03\x44\x12\x9a\x52\xe6\x63\xeb\x0c\x73\xe7\x53\x23\x3d\x3f\x52\xa5\xb7\x4c\xc6\x8f\x9a\x83\x39\x5c\xa7\x40\xa5\x1a\xb0\x85\x23\x1d\xef\x98\xb2\x16\x88\x5c\xea\x71\x15\x3a\xba\x16\x66\x75\x13\x87\x56\x20\xa5\x01\xe1\xc1\xf9\x1d\x31\xdd\x9a\x3b\x4b\x45\xb8\x70\xd0\x5e\xd0\xdc\xa1\x03\xc4\x0f\x38\x00\xf4\x51\x8a\xf9\xf5\xf2\x6f\x83\x80\x32\x64\x79\xba\x6d\xb2\x89\x0d\x1f\x7e\x2b\x33\xdd\x8d\x20\xee\xa6\xb2\x89\x4b\x84\xe5\xa9\x3b\x50\x6b\x50\xdc\xd0\x8a\x3f\x31\x89\x12\x6c\x90\x6a\x74\x43\x10\xf9\x78\x60\x1c\xa4\x59\xd0\x97\xb9\x5e\x4c\x37\xa6\xc6\x4e\x42\xd8\xd7\xe6\xdf\xdf\x20\x7b\x37\x7c\x7b\x60\xef\x73\x21\x3d\x02\x88\xd9\x73\xa8\xd1\x48\x62\x63\x43\x07\x54\xe2\x19\x16\xb1\xb1\x96\x87\x5a\x85\xc9\xe0\xd5\xf2\xd7\x82\xe7\xe8\x99\xca\xf9\x88\xdd\x73\x67\x70\x44\x8c\x7b\x5c\xe7\x03\x50\x46\x6b\xfd\x61\x09\x4c\x00\x46\xdd\x44\x01\x9a\x09\x6f\x95\x6b\x04\x51\xb0\x63\xc6\x63\xb2\x1d\x80\xd1\x7d\xe1\xab\x70\xfe\x6b\x41\x4c\x3e\x18\xdc\x14\x6d\xe9\xb4\x44\xca\x35\x6d\xf3\xd5\x8d\x87\x7b\xc8\xb6\x03\x25\x81\x9f\xd7\x42\xd7\x0e\xb1\xc1\xfc\xad\x06\xad\x38\x8d\x33\xc8\x06\x2e\xad\xbd\x47\x4b\xde\x76\x13\xa2\x06\xb4\xa2\x4e\x77\xbf\x99\x7b\x04\xcb\xee\x03\x8c\x31\x9a\x09\x9e\x67\x3e\x65\xde\xa5\xfb\x99\x6d\xb0\x32\xcd\x39\x9b\xf2\x13\xab\x53\x5d\x50\xf6\x68\x28\xfe\xa5\xf6\xc8\x00\x62\x93\xb8\x04\xe3\xe6\xaa\xb4\xc2\x1c\x0e\x11\x65\x51\x92\xc3\xc5\x27\x15\x8e\x1e\x0d\xa8\x77\x9b\xd1\x57\x7f\x33\x5e\x9d\x4c\xd9\x22\x31\xe5\x49\x62\xbb\x2d\x2e\xd0\xa2\x8c\xf5\x13\xc5\x08\xa3\x87\xdb\xf3\xe6\xbe\x1f\x69\xdd\x99\xd3\x7c\x7b\x96\x09\x04\xfe\xe7\x07\xba\x56\xdc\x65\x05\x16\x8f\x94\x48\xdd\x1b\x97\xda\x40\x57\x35\x91\x7e\xc2\x8a\x6c\x9b\x09\x65\x30\xc0\xd6\x88\xd4\xab\x81\xab\x2d\xb5\x1e\x6f\x89\x4c\x56\xa0\x8a\x41\x68\x50\x3b\x44\x5a\x18\xac\x05\x0f\xd7\xc0\x6e\x80\xf7\xbb\xcd\xa7\xf2\xee\x8a\xe9\x2c\x1f\x66\x42\xc8\x1a\x68\x03\x77\xfa\xf5\x8e\x83\x2c\xbd\xba\x6c\x8c\xcf\xd8\x54\x5f\xa8\x83\xfe\xc6\x56\xb2\x5b\x87\xd9\x3a\x72\x34\xe2\xb5\xf4\x39\x22\x7e\x24\x2e\x0c\xc7\xcb\x62\xae\xdf\x19\xf8\xb6\x78\xa9\xb8\x83\xb7\xd0\x36\x10\x7e\x20\xb6\x6e\x19\x36\xa1\xc5\xaf\x71\xda\x19\x50\xae\xe8\xf8\xcc\x7e\x7c\x59\x83\x97\xf3\xac\xe8\x12\xb2\xf8\x3c\x70\x4a\x8a\x99\x3e\xd9\xae\xd7\x16\x23\xa4\x91\x08\x37\x1a\xd2\x43\xb6\xd1\x80\x4c\x8f\x1d\xeb\x1e\xda\xae\x5c\x2b\xcf\xc6\x0e\x8f\x13\x63\x67\x52\x73\x30\x41\x14\xf5\x82\x34\x47\x2b\x9b\x22\x4c\x6d\xa1\x04\x8b\x99\x51\x90\x24\x51\xf2\xff\x63\xef\xdb\x9a\xdb\x46\x92\x74\xdf\xe7\x57\x54\xc4\x3e\xd8\x3e\x87\xa2\xa6\x7b\x62\x37\x7a\x1d\xb1\x0f\xb4\x2c\x4f\x6b\xda\x96\x3c\x92\xdc\xdd\x7b\x96\x1b\x74\x11\x28\x92\x18\x81\x55\x30\x0a\x90\xcc\xd9\x99\xff\x7e\xa2\x32\xb3\x2e\xb8\x12\x20\x25\xdb\x33\xdb\x0f\xbb\xd3\x16\x81\x42\x5d\xb3\xb2\xb2\xbe\xfc\xbe\x17\x2d\x23\xec\x73\x1e\x8e\x18\xe1\x03\x34\x59\xc3\x7b\x4f\x70\xbf\xfb\x56\x9a\xab\x65\x95\x5c\xd4\xed\xca\x4e\xdd\x38\x60\xce\xf3\x89\x18\x91\xca\x91\x89\x3b\x36\x6b\xa5\x9b\x33\xe5\x48\x6d\xee\x4b\xbe\x75\x8c\x00\x56\x21\x98\xf2\xbb\xb0\x72\x4b\x01\xbc\xb8\xdd\x75\x38\x5a\x84\x3b\xac\x02\x89\x62\x76\xd5\x60\x2e\x67\xf6\x11\xcf\xee\x65\x0e\x66\x39\x3a\xe0\x80\x0f\x45\x34\x34\x9c\xaf\xb8\xef\x75\x6a\x5c\x47\x23\xc6\x26\x6f\xd6\x75\xc4\xcd\xf9\xce\xed\x46\xa4\x18\xe4\x38\x3c\x7b\xd5\x9a\x48\x3e\xff\x88\x8f\xdf\xd8\x26\xd6\x94\xf8\xdb\x3e\xbc\xff\x2c\x65\x19\x23\xa8\xa0\x50\xfc\x1f\x31\xa4\xe9\xce\x4f\x53\x4f\x12\x57\xfb\x58\x73\xb5\x16\x47\x59\xe3\x84\x6f\x17\xb9\xea\x96\xb3\x1a\xd0\x4d\xb6\x88\x4a\x7c\x67\x83\xf2\x16\x3b\xf6\xa9\xe4\x29\x6e\x6e\x92\xa6\xa3\xad\x36\xb8\xca\xdf\xff\x1b\x9b\xc1\xee\xc3\xde\x81\x5d\x84\x0b\x7e\x28\xad\x50\x2c\xd9\x66\x22\xd7\x4a\xf2\x4e\x5d\xb7\xbb\x1f\xf4\x82\xb4\x69\x16\x3c\x8a\x54\xd9\xd4\xa1\x19\xd1\x92\x96\xd2\xc2\x46\x71\x76\x57\x2e\x45\x2e\x05\x6a\xd7\xc1\x73\xcc\x3e\x37\xa8\xba\x8a\x97\xc5\xe6\xfb\x45\x94\x26\x83\x05\x73\x20\xbb\x68\x66\x5e\x3b\xc3\xb7\xfa\x1a\x50\x29\xbf\x52\x75\xc9\xf0\x37\x86\xbf\x4d\xd9\x2b\x1e\xdd\x09\x19\xb3\x2c\x2d\xd7\x09\x91\x09\xc0\x0e\x05\xe6\x32\x08\xcf\x56\x1b\x86\xbe\x05\x96\x6f\xb6\xa1\xb9\xdc\xf2\x3b\x24\xb1\x25\x27\x32\xe2\x69\x27\x15\x95\x73\xab\x17\x49\x73\xee\xee\x1d\x2d\xb7\x1f\x36\x8b\xa9\xcf\x3d\x5d\x62\x6e\xc5\xc3\x46\xd1\x8d\x74\xc5\xab\x1f\xb1\x70\xdd\x6c\x6d\x70\xbe\xd8\xbc\x7c\xa7\x62\x48\x95\xc1\xd5\x0b\xe1\x5e\x20\x62\x2e\x25\xe3\x40\x1b\xf3\x4c\xb3\x32\xb3\xfe\x19\xc4\x21\x53\xb8\x15\xc6\x21\x30\x3f\x64\x89\x39\xa5\x6d\xc4\x5c\x02\xd2\x96\xb9\xe6\x35\xc4\xae\x98\xf0\x80\x98\x36\xd3\xb0\x42\xd2\x84\xe3\xee\x38\x1b\x3c\xce\x7b\xe6\xe9\x40\x14\x71\xb1\x11\x72\x71\x00\x9d\xf0\xf0\x41\xab\x20\x86\xc9\x0d\x76\xf1\x5c\xd7\x85\xa5\x4c\x48\x40\x8a\x42\xf8\x21\x57\x66\xb2\xaa\xb9\xd1\x89\x66\x9a\x17\x89\x36\xb6\xac\xb5\xc7\x3d\x55\xc5\x31\xbd\xce\xc7\xf1\x63\xb4\x70\x63\xd4\xfa\xc2\x65\x25\x4c\xd9\x1b\x88\x82\x05\x27\x03\xe5\x98\x26\xba\x0c\x56\xb1\x11\x9d\x94\x8b\x8f\x01\xe7\xb1\x2d\x08\x9e\xef\x0d\x6e\xba\x0c\x94\x29\x9b\xf9\xdb\x07\xe4\xda\xc0\x7b\x85\x3d\x2d\x12\xa9\x16\x87\x4c\xbe\x41\x81\x3a\xb8\xa1\x87\x09\xc4\xc0\x93\xd2\xe6\xef\x9e\x41\xde\x55\xf3\x01\x92\x3c\xf9\x9d\x90\x7d\xd1\x98\xe1\x35\xc4\x70\x59\x6f\x48\xc0\xc5\xe1\x14\x86\xe2\x0e\xa9\xe0\xf0\x65\xe7\xe9\x4d\x92\xd5\xa9\xe9\x72\x73\x0c\x89\xee\x28\xb5\x04\xa3\xb1\x44\x90\xf2\xb0\x51\x3a\x5c\x67\x76\xfc\xf0\x24\x9b\x97\x8e\x25\x1c\x52\x73\x5c\x07\x23\x26\x47\xaa\x90\x3f\x05\x6a\xed\x16\x29\x46\x9a\xdd\x78\x33\x6b\x42\xa1\x1b\xe0\x16\xcb\x16\xd5\x5c\xcd\x3f\xfd\xa0\xaf\x60\xc5\x3e\x46\xa6\x7e\xbb\x2c\xeb\xf1\x28\xf9\x03\xef\x07\x1c\xfe\xcb\x6b\xba\xf2\xd8\x71\x4b\x64\x2a\x66\x7e\x7a\x8d\x17\x70\xfd\xfa\xcd\xaa\x09\xbf\x0e\x6a\xdb\xbe\x99\xfd\x2e\x00\x11\xb0\x65\x99\xa0\x86\x7a\xc5\x21\x54\xd6\xe3\x00\xfe\x63\xd8\xfe\x13\xed\xf6\x93\xf6\x39\xf6\x5e\xc5\xc7\x4c\xac\xf1\x74\x7a\xcd\x79\x3d\x00\x63\xac\xdb\x34\xdf\x7b\x7a\x22\x53\xdd\xe8\xd0\x78\x31\x5c\x25\x1d\xe0\x00\xcb\x72\x75\x03\xea\x22\x5d\x8c\x15\x01\xf1\xbe\x4d\x41\x33\xe3\x6c\x3e\xe3\x12\x22\xba\x06\x85\x6e\x97\xfd\xf6\xcf\xd9\x9f\x6e\xae\x2e\x4f\xb6\x3c\xd7\x1b\x0e\x19\xc1\xb6\xac\x89\x15\x6c\xc3\xe3\xb1\xbd\xf5\x4a\xe4\x5c\x9e\xb0\xb5\x9a\xe0\x1d\xeb\x4b\xb6\x29\x8a\x4c\xbf\x3c\x3d\x5d\x27\xc5\xa6\x5c\x4e\x23\xb5\x3d\xf5\x5d\x73\xca\xb3\xe4\x74\x99\xaa\xe5\x69\x2e\x00\x65\x7b\xf2\xdd\xf4\xfb\xef\x60\x64\x4e\xef\xbf\x3b\x85\x9b\xb5\xe9\x5a\xfd\xcb\xdb\xef\xff\xfd\x0f\xff\x66\x0a\xce\x76\xc5\x46\xc9\x97\x74\x81\xdb\x5b\xf6\x09\x7a\xe5\xa7\xf8\x4a\xed\x2b\xff\x3e\xfd\x7d\x58\x0d\x7a\x74\xab\x62\x91\xea\xd3\xfb\xef\x16\x76\x60\xa6\xd9\xee\x37\x5c\xea\x57\xc3\xa5\xde\x25\xc5\x6f\xb8\xd4\xaf\x8a\x4b\x1d\xee\xe1\x38\x1b\x03\x44\x9f\xde\x3e\x9a\xbf\x3b\x1b\x69\x43\xef\xfb\xec\x50\xcb\xe6\x10\x66\x0d\x1c\xb1\x45\xdc\x89\x51\x47\xec\x5a\x73\xdd\xd1\xa1\x23\xc4\x36\x96\x6c\xbf\xd3\x99\x1f\x95\x24\x0d\x28\x90\x24\x02\x22\x67\x0c\x09\x66\x3c\x69\x43\x9b\x12\xda\xe9\x98\xfe\x7b\x4a\x4a\xf2\xc7\xe6\x22\xa7\xe6\x1e\xc8\x43\x9e\xe2\xdb\x16\x9b\xa5\x1e\x2c\xff\xf8\x63\xb0\x76\x0f\xd4\x71\x75\x64\xc4\x38\x79\xa0\x2e\xb6\x5e\x1d\xd5\xd8\x70\x7d\x18\xc8\x6f\x86\x94\x7f\xee\x9e\xce\xa9\xe2\xd3\x07\xed\xc6\x61\x59\x14\x40\x24\x9c\xc8\x9a\xb2\x32\xcf\x94\x16\x7a\xca\xde\xd4\x94\x0e\x3d\x70\xf1\xfa\xcd\x19\xfb\xee\x87\x7f\xff\xc3\x5c\x3e\x6f\xd9\xb7\xc1\xde\xab\x7c\x4d\x38\x4a\xd8\xad\xb7\x5c\x17\x22\x3f\xcd\x57\xd1\x29\x5a\xb9\x53\xf3\xfe\x09\x7d\xf4\x44\xad\x4e\x1c\x25\xf1\x09\xb1\xb3\x4e\xb7\xf1\x38\x82\x81\xca\xd4\xc3\xbd\x86\x36\x1a\x0d\x9b\x12\x52\x11\xa9\x95\x23\x9f\xc7\x3c\x17\xd4\xa9\x50\xab\x96\xff\x78\x95\xaa\xa5\x7e\xe1\x08\xd0\xb8\xb6\xdf\xf0\x8c\x44\xdd\x4b\xf3\x71\xd8\xc9\xed\x14\x79\xca\x40\x85\xb5\x25\xe1\x71\x64\x4c\xc7\xb7\x2f\x36\xbf\xdd\x23\x1f\x03\xcf\x55\x29\x2d\xbb\xb3\x92\x42\xad\x00\xc5\x07\x9e\xb0\x45\x29\x40\xac\xd6\xec\xb4\x9e\x7b\x21\x17\x19\x6e\x30\x70\xab\xd0\xdd\xdd\x47\x32\x9c\xef\xeb\xe7\xa7\x60\x38\x3f\xb6\xdf\xc9\xa0\x7c\xa5\x0e\x3f\x16\x4a\x88\x4b\x69\x0c\xaa\xc2\x3c\xbf\xf7\x06\xd5\xd9\x01\xaf\x3e\xe4\xc9\x84\x33\x9e\x83\x93\x26\x4e\x0a\x75\x02\xa4\x35\x40\x85\x82\x9a\x03\x5d\xb0\x0a\xb8\x79\x1e\xb3\x4d\x9a\xe7\x07\xd4\x13\x1d\xf3\xcf\x41\x45\xc9\x27\xd1\x48\xe1\x49\x90\xac\x44\x4a\x91\xd3\x9d\xda\xde\x1d\x75\xe4\xbd\x74\x38\x94\xfd\x88\xac\x40\xd7\x3a\xe0\x83\x77\x78\x7c\x1e\x18\x81\x29\x03\xef\x73\xa3\xb6\xca\xb8\x33\xaa\xd4\xc1\x8f\x78\x7a\x81\x4d\xb8\xd3\xf7\xda\xf2\x0c\x49\xea\xbe\x5e\x6b\xcc\xd2\x32\x3f\x61\x50\x2f\x7c\x68\x94\xc4\xc6\xb2\x2a\x2a\xb0\xa7\xfe\x8e\x0d\xbe\x7f\xde\x00\xea\x01\x75\xea\x40\x2a\x96\x38\x9e\x93\xbf\x9a\x73\x8d\x99\x52\xee\xa4\xe0\x76\x6e\x04\xe9\x20\x17\x63\x48\xf7\x6a\xbd\xf9\xce\x6c\xe9\x72\x3b\x72\x0c\x1c\xc8\x78\xc8\x00\x70\x89\xb0\x5b\x8b\xb7\x3d\x69\x05\xdc\x76\xad\x4b\x2b\xcc\x1a\x2f\x2c\x5f\xe8\xb8\xaa\xde\xb8\x02\x88\x1a\xb4\x59\x6f\x4f\xb7\x04\xe8\x6c\xec\x63\x34\x08\xd6\xb7\xe8\x00\xdd\xc8\xf1\x8b\x11\x04\x56\xc6\xf4\x1d\x7c\x04\x27\x67\xa3\x07\x83\xb5\xd0\xd5\x81\xe3\x42\x6c\x7d\x11\xab\x36\x38\x3f\x32\xd4\xf9\xec\x1d\x53\xcb\xc6\xe1\xd1\xbd\x78\xef\x55\xa8\x77\x99\x98\xb0\x65\x09\xbf\x5f\x5e\xdd\x86\x68\x8d\x04\x5b\x7b\x12\x6d\x44\x74\x07\x01\x13\xdc\xf2\x9c\x68\x23\xb1\xe1\xcd\xa5\x97\xfe\x2a\x94\x85\x1e\xec\x1c\x1b\xba\x53\x04\x50\x39\x8b\x13\x9d\xa5\x7c\x07\x97\xbc\x12\x71\xfa\xfe\x82\xd8\x25\xb8\x18\x53\xb0\x2f\x5e\x3c\x7c\xa4\xcd\xa8\xcc\xfc\x7b\x63\xfb\x92\xe7\xcb\xa4\xc8\x79\xbe\x63\xbe\x33\x9b\xf6\x80\x69\xb1\xe5\xb2\x48\xa2\xb9\xdc\x0a\x2e\x43\x54\x1e\x5d\x72\x9b\x4e\x8e\x95\x20\xbe\xe0\xd5\x4a\x44\x85\x27\x1c\x04\xe7\xdd\xf5\xd4\xbe\x35\x38\xae\xed\x6e\xe5\xf5\x36\xfd\xc7\x44\x62\x7a\x7b\xb2\x05\xcc\x27\xcd\x21\xda\x1a\x0f\xbc\xbc\x01\xa9\x38\xda\x72\xed\x61\x10\xfe\x65\xe7\x14\x5b\x8a\xe2\x41\x40\x3e\x3d\x25\x00\xb6\xf9\xf8\x47\xcb\x05\x1c\xa7\xfe\xdb\xae\x9b\x1c\x20\xc1\x70\x81\x85\x60\x32\x47\xfc\x23\x6b\x0c\x3e\xcf\x28\x25\x11\xa2\x3d\xcf\x28\x6e\xf5\x0c\xb6\x69\x73\x7a\xcc\xef\x45\x3c\x97\x55\x5a\x25\xf2\x19\xfd\x82\x63\x5e\x08\xeb\x71\xac\x8d\xed\xe3\x41\xb1\xfc\x73\xa0\x92\xf0\x24\x92\x2e\xe9\xae\x47\x98\x0b\x1b\xfd\x94\xa7\x2a\xab\x09\x18\x7a\xf7\x03\x20\x59\x42\x5b\xa1\x1b\xd2\xc5\xab\xe0\x29\xdc\xa4\x74\xa4\x31\xc8\x28\xe7\x00\xb0\x14\x97\x6c\x44\x3a\xdb\xca\x98\x4b\x9b\x4d\xbd\x2a\x53\x64\x09\xed\x92\x0a\x23\x0e\x29\x9b\xf9\xf1\xf5\x32\x80\x5c\x5c\x8d\x05\xda\x62\x0e\xf6\x10\x80\x91\xd1\xd6\xd9\x59\x2f\xa4\x46\x41\x6a\x2b\x2b\x04\x81\xe7\xb5\x28\x60\x37\x8f\xcb\x14\x93\x83\x21\x62\x0e\x7c\x54\x3c\x4d\x59\x52\xe8\xb9\x74\xf4\x59\x48\x86\x0e\x16\xd6\x86\xd4\xad\x22\xad\x74\xba\xb6\xa4\xdd\x0f\x7e\x58\x12\x25\x45\x03\xc2\xbd\x0b\xa5\x38\xb2\x4c\x70\xcc\x65\xc3\x61\x9b\xcb\xf0\xcc\x55\x1f\x04\x4a\xfc\x02\x8d\xf2\xc7\xc8\xc1\xea\x41\xe4\x83\xb0\xfb\xe8\x21\x99\xb2\x19\xb6\xce\x1c\xb8\xac\xca\x26\xd6\x96\xf2\xe7\x09\x69\x69\x4e\x35\x85\xb6\x31\x72\x7f\x6e\x05\x39\xe7\xa8\x4c\x79\x9e\x02\x27\xfd\xaa\x4c\x59\xb2\x0a\x04\x43\x61\x0c\x90\x3c\xc9\x0c\x57\xa4\x60\xaf\xb6\x51\x72\xcd\xb7\x22\xc8\xdb\xa6\xf0\x4e\x1a\x60\x28\x90\x11\x1a\x2f\xe7\x4d\x59\x2f\xa6\xec\x75\x5d\x61\x1e\xd6\x44\x40\xba\x98\x68\x34\x7f\xae\xbe\x41\xca\x21\x2a\xd5\x27\x2b\x73\xa4\x7c\x16\xac\xba\x8e\x11\x04\xf2\xf6\x71\x00\x0d\x4b\xdd\xdf\x8f\x1a\x6e\x4d\x39\x36\xaf\xd6\x60\x1b\x6e\x41\x74\x54\xd0\xee\x0a\x23\x2b\x19\x12\x56\x1e\x50\x51\x47\x08\xda\x52\xd9\x6d\x8f\x3e\x29\x8c\xe3\xc8\xaa\x06\x6a\x3f\xe3\x2b\x1a\xcc\x9c\x10\x8e\x33\xa4\x67\xd7\xbc\x18\x8b\xcd\x71\xc9\x38\xe3\x2b\xda\x8a\x83\x1a\x52\x4d\xb0\x1e\x23\xeb\xe9\x25\xf8\xc7\x57\xd4\x49\x3f\x7b\x3d\x00\xaf\x89\x5f\xc9\xa1\xb4\x4c\x87\xae\x05\x7a\x2e\x69\xb3\x1b\x9f\xfe\x39\xf3\x73\x0e\x04\x8f\x98\xa9\xfe\x94\x5d\x49\x81\xc8\x39\xb5\x0a\x36\x15\xaa\x00\x29\x23\x01\xd9\xbc\x0c\x24\xa8\xd3\x44\xde\x59\x6a\x09\xb3\xe4\x26\x8c\xfb\xd2\xc1\xea\xe1\xb4\x41\x2b\xd2\xe1\x4b\xb6\x49\x33\x1c\xe1\x5e\x0e\x4b\xd0\x6c\x3f\xf3\x07\x00\xd4\xf1\x16\xa0\xad\x1d\xc3\x87\xa5\x17\x49\xee\x4e\x71\x15\x8d\xf1\x10\x35\x5a\x24\xc5\x6e\x5f\xff\xbe\xdf\x54\x51\x88\x23\x84\x8c\x3e\x5c\xbe\x3e\x7f\x73\x71\x59\x55\x1f\xfa\xf3\x87\xf3\x0f\xd5\xbf\x5c\x7f\xb8\xbc\xbc\xb8\xfc\x63\xf8\xa7\x9b\x0f\x67\x67\xe7\xe7\xaf\xab\xcf\xbd\x99\x5d\xbc\xad\x3d\x67\xfe\x54\x7d\x68\xf6\xea\xea\xba\xa6\x77\x64\xc5\x8a\x82\x3f\xdd\x5e\xbc\x3b\x7f\xbd\xb8\xfa\x50\x91\x4c\x7a\xfd\x9f\x97\xb3\x77\x17\x67\x8b\x96\xfa\x5c\x9f\x9f\x5d\xfd\x7c\x7e\xbd\x47\xf1\xc8\xb7\xb7\xb5\x4b\x1f\x03\x3e\x76\xb0\xfe\xd5\x8c\xad\xf2\x44\xc8\x38\xdd\x21\xf6\xde\x9e\x6c\x6b\x60\xda\x70\xef\x4d\xb6\x42\x95\xc7\x40\xe8\x6f\x37\xa8\x50\x0f\x2c\x18\x58\x1a\xa5\xcc\x72\x7d\xd7\xc9\x91\x58\xe4\xcd\x5b\x81\xde\x4c\xa1\x22\xdf\xb9\x5c\xb4\xbe\xea\x78\x06\x25\xfa\x08\xcb\x44\xde\x57\x17\xf0\x8c\xf2\x32\x2b\x92\x65\x77\x52\xc4\x40\x66\xa1\xf1\x67\x6f\xe4\xfb\x6b\x27\x47\xb9\x6c\x37\x8c\x95\xdc\x80\x63\x80\xc7\x50\xc2\xa1\xb2\x6e\xee\x6d\x0b\xd6\xcc\xca\x65\x9a\x44\x2c\x89\xeb\xf1\x14\x4c\x61\xc3\x90\x71\x9d\x16\x34\x13\x39\xb8\xaa\xe6\x04\x90\xe5\xe2\x84\x97\xc5\xc6\x2a\xce\xbb\x4c\x46\xa4\xe9\x14\x51\x2e\xf0\x2e\x40\x68\x08\xd2\xa2\x9e\x57\xf0\x25\xa8\x0c\x65\x70\xc7\x40\x16\x33\x0d\x28\xda\x3b\xee\x08\xf0\x4d\x2c\x7d\x44\x90\x14\x9f\xef\xed\x1a\xaa\x71\xa2\xeb\x62\xce\xb0\xc3\xe3\x8f\x56\x15\xcc\xb4\xdb\x58\x6a\xa7\x8a\x85\x83\x6c\x73\x37\xda\x9b\xb1\x6f\x8e\x85\x13\xa5\x9a\xcc\x40\xa5\xd3\x4f\x67\xb9\x80\x4d\x84\xa0\x00\x36\x7e\x01\xd0\x15\xca\xf5\x80\x14\x0f\x73\x54\x5b\x8a\x0d\x4f\x57\xe8\x71\x98\xa1\xf1\xeb\xaa\x39\x45\x6f\xd5\x9d\x90\xd7\x38\x60\x5f\xc5\x1c\x4a\x3c\xf9\xf8\x9c\x7e\x17\x11\xf2\x21\x4c\x53\x47\x3b\xab\x6c\xae\x1b\x38\x53\x05\x9e\x13\x82\x9f\x31\xa5\xc3\x33\xf6\xda\x34\xb9\xd5\x2a\xf9\x6c\x0a\x9c\x4b\xd1\xca\x59\x0a\x78\x21\xcb\xae\xe4\xec\x32\x60\xa3\x90\xa2\xe6\x4e\x48\xd0\x13\x43\xb9\xe1\xbd\x73\x76\x5c\xfc\xbc\x39\x16\x3d\x01\x7d\x88\xf9\x25\x15\x99\xb5\xf0\x96\xc7\xf6\x53\x81\x39\x36\x53\xf6\x9a\x88\x37\xcc\x5f\xce\xde\x5e\x9c\x5f\xde\x2e\xce\xae\xcf\x5f\x9f\x5f\xde\x5e\xcc\xde\xde\x0c\x5d\x7e\x8f\x91\x17\x55\x5b\x7d\xf5\xf4\x20\x67\x21\x4e\x69\xe5\xf9\xf4\x5c\xd7\x28\xbf\xec\x60\x48\xf6\xd7\x3e\x89\xb3\x45\x9c\xe8\xc8\x6c\x7f\xbb\x85\x90\x31\x90\x3d\x1f\x34\x55\xdb\x8b\xaa\xb7\xc2\x3d\xc1\xdc\x13\xd6\x82\xe0\x6e\x77\x6f\x67\xb4\xfb\x1d\x50\x77\x10\x86\xcc\x85\x59\xfc\xb1\x39\x1f\xb8\xdd\x66\xba\x5f\xe1\xc3\x14\x77\x5c\xdb\xaa\x45\xd4\xdb\x84\xf5\x4d\xb4\x2e\xb9\xb1\x8f\xf6\x31\x80\x1c\x76\xf4\x0a\x31\xf0\x85\x8c\xd3\x49\xa0\x96\xca\x12\x3d\x97\x5b\x2e\x63\x5e\xa8\x7c\xd7\xd1\xc4\x61\xc6\x33\x5c\x36\x55\x13\x1a\x6e\xd9\x52\x88\xd8\x8e\x02\x3e\xca\x65\x7d\x2a\x21\x2f\xf5\xed\xd5\x4f\xe7\x97\x37\x8b\xf3\xcb\x9f\x17\xef\xaf\xcf\xdf\x5c\xfc\xea\x90\x90\x19\xd7\x6d\xea\x88\x59\x2e\x8c\x75\xb1\x34\x1f\xad\xf6\x05\x25\x0b\x6d\x39\x24\x53\x95\xac\xe6\xd2\x5a\x96\xdc\x17\xbf\xc9\x55\xb9\xde\xb4\x17\x54\xaf\xe5\xfb\xd9\xed\x8f\x07\x55\x13\x48\x98\x50\xd7\x0c\x57\x5b\x13\x11\x9a\xac\xc8\xee\x21\x8c\xb4\x56\x3d\xa0\x12\x83\x47\xdb\x6e\x19\x3a\x2c\xda\x41\xa7\x97\xa6\xd1\xea\x75\xfe\x5b\x1e\xef\x9a\x40\xb7\x81\xdd\xac\x6c\x23\x80\x50\x46\x79\xcc\x46\x69\x2f\x5b\xfe\x56\xd9\xc1\xbe\x3f\x49\xc5\x7a\x2d\x62\x9c\x5e\xf5\x82\x29\x06\x47\x26\x30\xf2\xfb\x7a\x5b\x2f\x92\x80\xdd\x11\x1b\xb3\xc3\x7b\x0d\x37\xe0\xef\xdd\x2b\xed\xb6\xe2\xcc\x8a\x64\x47\x4a\xea\x82\xcb\x8e\x8b\xe4\xfb\x26\x42\x73\x90\x29\xba\xca\x99\x4b\x7e\xa2\x80\x89\xbd\x32\xf0\xeb\xe0\x90\x2b\x34\x12\xea\x93\x14\xf1\x08\x04\xfc\x02\x55\xef\x96\x41\x80\xd8\xe9\xb5\xb5\x88\x4f\x1f\xdc\xe8\x3d\x3a\x11\xf3\x14\x84\x7a\x51\x29\x89\xc0\xe7\x18\x0d\x02\xf9\xb1\x4e\x60\xf0\xa8\x01\xa9\x7d\xf9\x67\xea\x7a\x3c\xb5\x56\x43\xcd\xdc\x72\xbb\xb9\x01\x72\xce\x5b\x3d\x62\xb7\x3f\xbe\x55\xf1\xc3\x7d\xc9\x59\xae\xe2\x32\xb2\xec\x37\x50\xac\x47\xb8\x50\x40\xcb\x6e\xb0\x31\x3b\x31\xc3\x4c\x87\x14\x11\x9f\x00\x76\x7d\x2e\xbb\xae\x93\xac\x0d\xe8\x08\x73\xbd\xb7\xbb\xd6\x31\x63\xdf\xd2\xfb\xdd\x4b\xd0\x76\xf6\xb0\x1c\x52\x66\x1f\x07\x67\xaf\x03\x20\x44\xe3\xb2\xe4\x78\x57\x5c\xdd\x8e\xbb\xc8\x2e\x9c\x55\x1d\x87\x63\x1a\x06\x03\xa9\x26\x87\xe0\x16\xb9\xe1\x1a\x3d\xd7\x22\xda\x54\x2b\x0e\xad\xa9\x12\xc4\xd5\xab\xeb\x3c\xc1\xe3\x22\x04\x83\x6e\x8c\x26\x78\xa6\x4e\x28\x86\x5b\x11\xfb\x72\xca\x85\xe3\x26\x7e\xe8\x1c\xb9\xc3\x0b\xda\x3d\x30\x58\x29\x2f\x65\xb4\x61\x59\xca\x31\x6f\x7a\xc3\x35\x4e\x69\x0b\x9b\xe0\xcb\x24\x4d\x0a\x20\xa4\xc1\xdb\xbc\x5a\x0f\x9b\x13\x0d\xcf\xef\x2c\x07\x2c\xf7\xec\x43\x7d\x93\xfe\x48\x78\xaa\x17\xc8\xff\x92\x00\x55\xbf\x64\x83\x37\x7a\xef\x02\xfd\xb4\x24\x70\xaa\x1f\x0e\x63\xf1\x60\x5a\xfa\xb6\x8c\x1b\x59\x2a\xf1\x7d\xfd\xf5\x4a\x7f\xb7\x6c\xd4\xe3\xc1\x19\x44\x6e\x3e\xc2\xcc\xd7\xa9\xcf\x5b\x57\xd6\x2a\x55\xbc\x43\x7e\xd7\x96\x8d\x4c\xe6\x5d\x65\xc7\xaa\x5c\x76\x71\xe7\x62\xad\xfa\x4b\xef\x8b\xfb\xdb\x75\xfb\x58\x71\xc1\xd0\x00\xf2\x42\x14\xc9\xb8\xd0\x46\xd0\x68\x5e\x88\x13\x78\xbd\xbd\x70\x4a\xa6\x1b\xdc\xe6\xc6\x44\xf3\x7a\x1a\x8e\xa1\x17\x60\x73\xcd\xd9\xf5\xe7\x92\x1b\xd3\x70\xb5\xba\x41\x86\x94\x63\x26\x59\x91\x34\x67\x58\xfb\x4a\xac\x7f\xf5\xb6\x7a\xa9\x12\xce\x81\xc1\xf9\xa7\x6d\xad\xb9\x31\x6f\x0f\x5f\x90\x55\x8d\xfa\x2c\x4f\x14\x30\x85\x90\x32\x7e\x0f\xc9\x60\xeb\x77\x8f\xe8\xc9\x4f\xa5\x28\x85\x99\xfb\xcb\x32\x5e\x37\x63\x9b\x23\xbc\x33\xdf\xa4\x8d\x7a\x60\xdb\x32\xda\x30\x5b\x38\x8b\x45\xca\x77\x95\xa6\x81\xbf\x54\xa8\x14\x68\x7b\x0f\xe4\x10\x8d\x4a\x5d\xa8\x2d\xc0\x4a\x7d\xb9\x79\x29\x61\xc2\x33\x5e\x14\x79\xb2\x2c\x8b\x56\x08\x5a\x85\x53\xec\xc0\x0b\xad\x9b\xf7\xe7\x67\x17\x6f\x2e\x6a\xb7\x49\xb3\x9b\x9f\xc2\x7f\xff\x72\x75\xfd\xd3\x9b\xb7\x57\xbf\x84\x7f\x7b\x3b\xfb\x70\x79\xf6\xe3\xe2\xfd\xdb\xd9\x65\xe5\xce\x69\x76\x3b\xbb\x39\xbf\xdd\x73\xad\xd4\xfc\x6a\xf7\x40\xf0\x80\xf2\xcc\x02\x5d\x2d\xf7\xb3\x3d\x5d\xd2\x57\x5f\xb2\x99\x25\x80\xab\x50\x14\xda\xab\x41\xc0\x12\xa0\x12\x32\xdd\x20\xbe\xe6\x05\x27\x65\xf9\x29\x9b\x31\x82\x01\x23\xbc\x5b\x1b\x67\x81\xd8\xb1\xcc\xe8\x60\x11\xc6\x63\x88\xfc\xc9\xcd\x8b\xdb\xa9\x15\xf1\xd2\xa5\x22\xa4\x41\xb7\xb9\x4c\x73\x79\x7e\x2f\x64\x51\x02\x47\x33\x4f\x53\x66\x05\xed\xe9\x81\x20\x4f\xdb\xd6\x52\x27\xdb\x24\xe5\xb9\xd7\x21\xbb\xa2\xb2\xc0\x61\xb7\x75\x75\xb4\x3c\xcd\x24\x60\x7b\x78\xf8\x70\xc1\xa0\xde\x67\x6f\x2f\xc0\x05\x8a\x0a\x2b\xb2\x61\x3f\x3e\x97\xc8\x7b\x46\x5f\xdc\x72\x48\x39\x28\x14\xc5\xd3\xf0\xf3\xf4\x70\xf7\x44\xd4\xc7\x2c\x62\x1b\x79\x7e\x2a\x58\x93\xab\xa4\xfd\x8f\x73\x59\xe4\xbb\xc1\x7e\xcd\x2d\xe4\xd8\x6a\xf0\x4d\x09\xc1\x54\xd5\x26\xc3\x70\x07\xb3\xa5\x5f\x82\xb3\x63\xe1\x75\x14\x8d\x77\x41\x77\x44\x33\x74\xf8\xdf\xa9\xd9\x84\xbe\xd5\x7e\x08\x69\x50\xa0\x17\x96\xaa\x94\xb1\x26\xac\xd5\x36\x91\xa7\x5b\xfe\xf9\x85\x6d\x29\xd2\x0a\x38\x85\x00\xa0\x8c\x12\xa9\x39\x89\xec\x8c\x91\xeb\xef\xae\xb9\xec\xe9\xaf\xfd\xde\xa2\xb5\xac\x70\xec\xf1\x67\x54\x44\x8d\xdd\x8b\x5d\xdb\xf8\x35\x54\x5e\x10\x99\x46\x0b\x1e\x0a\xc9\x72\x61\x1e\x74\x90\xb4\x14\x91\x86\xee\xdf\x00\x3d\xaf\x28\xd1\xb5\xdb\xee\xf0\x96\xf7\xa8\x65\xd3\x7a\xbf\xfc\x04\x32\x3d\xf4\x25\x33\x66\x78\xdb\x6c\x03\x9d\x04\xb5\xa7\x6b\x34\x33\x58\x7f\x51\x4b\xb6\x82\xbc\x13\x52\x9a\xce\x05\x04\xb6\x61\x28\x2c\xaf\x34\x10\x0b\x35\xae\xb0\xed\x14\x48\x85\x86\x70\xaf\x34\xc7\x2d\xf1\xa9\xa4\x1b\xbb\xef\x7e\x3f\x6e\x9f\x2d\xf2\x1d\xb3\x1a\x06\x61\xde\x0b\xa5\x7d\xd1\x9e\x0b\xf5\x2a\x65\xd2\xc6\x36\x76\x5d\x4a\xb3\x15\x3f\x06\xd8\x61\xf8\x6d\x56\xed\xa3\xf4\xcf\xbd\xa9\x21\x36\x10\x9b\xe3\xf3\x4f\x46\x1e\xf9\x73\x8d\x33\x92\x3e\x07\x40\x64\x2a\x3d\xdc\xd0\x96\x3c\xba\x7b\xe0\x79\x8c\xb1\x42\x40\x1f\x4c\xd9\x8f\xea\x41\xdc\x8b\x7c\xc2\x22\x91\x17\x9c\x08\x9b\x34\x5c\xbf\xc2\x82\xa2\x72\xe6\x12\x70\xf9\xc8\x7e\x25\x41\xa4\xbb\x48\xd6\x1b\x73\x9e\x0c\x2e\xcf\x55\x6e\xcc\x51\x81\x5c\x7d\x99\x88\x88\x22\xa7\xa3\x03\x56\x29\xbf\x6f\x32\x50\x1d\x92\xdb\xcf\x2e\x5c\x72\xa1\xbd\x9d\xb2\x5c\xfd\x7d\x70\x07\xea\x30\x32\x9a\x48\x6a\x32\x61\x6b\x95\x72\xb9\x9e\x4e\xa7\x4c\x14\xd1\xf4\xc5\xa8\x89\x4e\x05\x86\xf7\x5d\x0e\x54\x9b\x2a\xa5\x45\xba\x73\xb4\x2e\x2e\xed\x01\x70\x76\x9f\x0b\x21\x75\x82\x21\x8f\x96\xe9\x7f\x53\xe7\x08\xf8\xb2\xa1\xf3\xf6\x93\xea\xe8\xa4\xba\x8e\x72\x40\xfa\x67\x44\x49\xf8\x7c\xfb\xc9\xeb\xa0\x24\xd1\x0e\x5e\x59\x25\xc7\x66\x3e\xfe\xac\xba\x84\xac\x0f\x62\x5b\x6b\x2d\x89\xa8\x29\x0e\xca\x16\xeb\x8a\x58\xd4\x12\xf8\x8e\xc8\xdd\xeb\x49\xc3\x1b\x99\x81\xd7\xb2\xee\x5a\x96\x45\x6d\xb8\x47\x2f\x8b\xfd\x6a\x04\xad\x0d\x1a\x99\xe1\xe8\x53\x91\xc7\xb8\x4e\x98\x24\x95\xee\xe0\xc4\xe5\xf2\x1d\x21\xb2\x1c\x07\x91\xf1\x4a\xe0\x1f\x32\x6f\xfc\xcd\x81\xa3\x0c\x0a\x2e\x0a\x74\xa1\x72\xbe\x16\x6c\x2b\xe2\xa4\xdc\xb6\x1a\x1b\x57\xdd\x63\xd0\x5e\x2a\x2d\xb7\xdd\xe4\x6d\xc7\x3a\xd0\xbe\x92\xf8\x5f\x67\xf0\xb9\xc1\x0e\xb4\x97\x6c\xb7\xa2\x30\x54\x5f\x0c\x83\x53\x5f\x9b\x9d\x32\x4f\x34\xd0\x0c\x1e\x92\xe8\xe6\x8a\xc1\xa2\xe1\xb6\x6e\x97\x61\xf8\xb5\x32\xba\x27\xf6\x76\x87\x5e\xd1\x38\xaa\x70\xc5\xd7\xbd\x29\xd4\x31\x64\xa3\xc7\x08\x24\x47\x0e\xba\xd7\x04\xb7\x31\x20\xff\x26\x90\x0b\x14\x48\x37\xf1\x85\x62\x2b\x9b\x3a\x75\x27\x02\x32\xaa\x18\x68\xc1\x1f\x90\xd9\xe4\xa7\x1f\xb4\xbd\xb3\x27\x58\x85\xf7\x58\x0a\xff\x11\xbc\x1b\xb8\xff\xce\xa2\x69\xb0\x85\x58\x04\x50\x46\xc5\x5c\x16\xad\x05\x78\xb0\x19\x94\x85\xaf\xfc\xcc\xcb\xb4\xfd\x71\x2a\x1f\x1e\x45\x89\xa1\xd9\x2f\x37\x0c\xbb\x9a\x08\xa4\xf3\xbe\x8a\x06\x85\xec\xc7\xf3\x40\x77\x2d\x0e\xf0\x04\x2b\xe3\x80\x9d\x6e\x19\xc4\x4d\xb7\x8b\x22\xda\x78\xcf\xa3\xaa\x15\x4c\xfa\x71\xd4\xce\xad\xa7\xc4\x46\xa8\x64\x88\x39\x4b\xd6\x52\x85\x6a\x0e\x4a\x0a\xb8\xa4\x31\x06\x48\x85\xc5\xb2\xa4\xd8\x0f\xec\x19\xc9\x13\xb5\x6f\xaa\x15\x0a\x01\x1b\xd4\xce\xca\x5d\x1b\x1c\x29\x12\x64\x97\xb1\xa8\x48\x3c\x13\x91\x1c\x59\x9d\x2a\xb9\x9a\xaf\x3f\x97\xd5\x4f\x35\x3a\xc9\x22\x6f\x92\x5c\x20\xc3\xa9\x36\xde\x5b\x91\xdc\x9b\x85\xda\x9c\xd6\x6e\x82\x82\x05\x68\xce\xbd\xb9\xc4\x6a\x07\x34\xa9\x77\x62\xa7\x43\xed\x33\x9a\x51\xac\x6b\x42\x26\xa6\x3d\x34\x5e\xfb\x87\x02\x3a\x6e\x11\x68\xb9\x0f\xdb\xcb\xf0\xa3\xef\xcc\xcb\x3d\x90\xbe\x46\xe1\x66\x0e\xfa\xdc\x34\x1f\x53\x24\x33\xe1\xfb\x99\xc6\xd0\xa3\x76\x5a\x74\xfe\x7d\x78\x16\x0e\xbe\xe6\x7c\x3b\x97\xc4\xa4\x1c\x6c\x72\xc6\xe0\x34\x87\x8d\x12\x66\x91\xbf\x75\x57\x21\xfb\x00\xb2\x3b\x4b\xfc\x57\xfd\xa4\xbd\x77\xb4\xd2\x99\x73\x09\x9f\xc6\x94\x42\x1b\xc3\x6b\xfd\xe0\x81\x50\x30\x1a\xdc\x4e\xf8\x57\x90\xb7\x83\x4f\x12\xdf\x1b\x8a\xe8\xe1\xe9\x27\x12\xa6\xfb\x66\xb2\x15\x79\x65\x71\x57\x37\xe7\x67\xd7\xe7\xb7\x5f\x0c\x1e\x66\xb1\x59\xa3\xf1\x61\xb6\x9e\xaf\xcf\xdf\xcc\x3e\xbc\xbd\x5d\xbc\xbe\xb8\x7e\x0a\x80\x18\xfd\x74\x00\x42\xec\x86\x08\xda\xcf\x94\x2c\xc4\xe7\xa3\xf6\xe4\xbc\x94\x0b\x3e\x22\x53\xc1\x49\x34\xf4\xb9\x3b\x58\x68\x93\x60\xde\xb1\xbf\x13\xdb\x20\xee\x68\x8e\x4f\x7e\xe5\x83\x86\xab\x24\x4d\x21\x71\xd3\x85\xd7\x29\x29\xc8\x74\x2a\xd8\x1f\x4b\xb0\x48\x36\x75\x2e\x97\x15\xfe\x7f\x08\xf9\x6d\xcc\x21\x18\x53\x36\x33\xd3\x01\x79\x02\x09\x71\x7d\x1c\xf4\xeb\x44\x0a\x5f\x0d\x14\xbc\x2d\x25\xeb\x24\x0e\xa6\x41\x7c\xca\xbc\x5c\x72\xbc\x86\xfa\x9a\x76\xc6\x55\xe6\xa7\x75\x3f\xed\x8f\xae\x85\xb8\x88\x13\x89\x8e\x69\x65\x35\xdf\xb4\x4f\xdd\x53\xbf\x04\xa0\xdf\xcd\x48\x72\xb8\x83\x00\x4d\x59\x3f\x90\x34\x10\xa8\x4d\xe3\x2f\x27\xee\x12\x44\xd1\xa8\x55\xad\x9f\x8d\x29\x34\x7d\x9d\xc0\x4d\x05\x27\x2e\x8a\x28\x2d\x75\x21\x72\x0a\x9b\xcc\x7e\xb9\x99\xcb\x57\x66\xfb\x7a\x41\xbb\x10\xe9\x97\xe0\x27\x10\xc3\xa1\x2a\xdf\xb7\x1e\x4a\x68\xc1\x9e\x63\x8c\x7a\x2b\xb8\xd4\xa8\xf7\x9d\xa6\x22\xf7\x33\x03\xeb\x23\x44\x4c\x9a\x6f\x40\xbe\xe9\xdf\x27\xc9\x67\x05\xab\xd6\xd4\x97\x7e\x25\xd1\xe3\xfa\x7c\xea\xca\x0b\x06\x80\xe8\x53\xce\x9c\x96\x3c\x85\xa1\xb3\x88\xb0\xb5\xad\x93\xa8\x9a\x35\x30\x68\x2e\xdd\x62\x71\xbf\x4d\xa5\x47\x9c\x4a\x03\xf6\xf5\x70\x97\x60\x1b\x65\x0c\xa8\x13\xf7\xf0\xd7\xcc\x8e\x97\x20\x05\xfc\x93\xe9\xc6\xd6\x5d\xa7\x26\x70\x77\xc4\xae\x83\x8a\x76\xc7\xc1\x39\x67\x2d\x04\x28\x5e\x49\xc9\xde\xed\xf4\x6a\xe7\x3d\x0d\xd1\xd8\xcc\xe2\xed\xa4\x2a\x2c\x65\x80\x83\xb8\x11\x5e\xcf\x3c\xe0\xb8\x2a\x7a\xeb\x48\xfc\x0f\xd6\x4b\x59\x1c\xa9\x3f\x75\x1b\xe2\x02\x2b\x49\x94\x58\x8b\x30\xfd\xda\xa6\x5c\x3b\xca\x86\x31\x93\xef\x70\x85\xc3\xea\x9c\x73\xf4\x7f\x07\x81\x1d\x2e\xaf\x2e\xcf\x43\xa8\xc2\xc5\xe5\xed\xf9\x1f\xcf\xaf\x2b\xe9\xb7\x6f\xaf\x66\x95\x14\xda\x9b\xdb\xeb\x5a\xe6\xec\xab\xab\xab\xb7\xe7\x0d\xcc\xc3\xf9\xed\xc5\xbb\x4a\xe1\xaf\x3f\x5c\xcf\x6e\x2f\xae\x2a\xcf\xbd\xba\xb8\x9c\x5d\xff\x67\xf8\x97\xf3\xeb\xeb\xab\xeb\xda\xf7\x3e\x9c\xf5\xa3\x27\x2a\xcd\x68\x0f\xff\xf8\xcb\xd9\x80\x09\xb1\x75\x19\x57\x15\x20\x8f\x58\xc5\x03\x41\x58\xfb\xa6\xa3\xcd\xae\x8d\x43\x82\x74\x5c\x18\xa6\xaa\xa3\x66\xdd\xe3\x4b\x56\x56\xba\x2e\xe3\xc7\x99\x3d\xb3\xab\x2d\x1e\x03\x14\xd7\xeb\x00\xba\xaf\xd4\x02\xb7\xba\x80\x14\x24\xec\xda\x0c\x6e\xb0\xd6\xbc\x53\xb0\x45\xc6\x4f\x5e\x53\xfb\x8d\x7d\xf5\xf4\xcc\x3b\x7b\x08\x4c\x1e\x8b\xbc\xa0\xaf\xd2\xc1\xc7\x6c\x6e\x70\x12\x5b\x47\xc1\xfe\x18\x6c\xdc\xd0\x0c\x33\x73\x82\xe9\xd8\xa5\x2d\xd8\x9e\xe3\xd0\x4f\x96\x35\xb6\xfe\xf4\x91\x66\xdd\x6b\xcc\x0a\x23\xea\x0d\x0c\x37\x63\xea\x7d\xcb\xf5\xdd\xd8\x7a\xd3\x47\x9a\xf5\x06\xb7\xef\xa0\x7a\x43\xc0\xbb\x68\x67\xbd\x18\x61\xc4\xc2\x62\xaa\xd5\x73\x29\xb9\xee\x91\x40\xc2\x73\x58\x1d\xcd\x02\x78\xda\xe3\x65\xc6\x87\x5f\x64\x40\x6d\xdc\x72\xe5\x35\x12\xe8\x1b\xf8\x15\x5a\xb8\xcc\x05\xbf\x8b\xd5\x03\x8d\x47\x1d\x19\xca\x06\x59\xf3\x6a\x07\x19\x1b\x6e\xb7\x08\x10\xfe\x36\x9f\x44\x94\x9a\x2f\x1e\x60\x72\x09\xd1\x18\xa3\x0f\x16\x68\x4f\xd6\x79\x43\x80\xa9\x45\xfa\xd1\x99\x4b\xf4\xe6\xdb\xf4\x2b\xcd\xa8\x9a\x1a\x51\xa6\x3f\x34\xd5\xf9\xd0\x78\xb9\xae\x83\x81\xa5\x5c\x86\x32\x07\x30\xdd\x32\x87\x33\x13\x74\x48\x22\x21\x98\x9c\x9b\x03\x4f\x2e\xa2\x44\x8b\x40\xc3\xa7\x75\xc7\xfe\x74\x1c\xe3\x7f\xc1\x8b\xd6\xb0\xeb\xe0\x78\x38\x8f\x8a\x92\xa7\xec\x53\x29\xf2\x1d\x11\xa6\x61\xac\x12\xff\x12\x71\x89\x49\x13\x85\xd8\x66\x90\x84\x1b\xa2\xfd\xe7\xf2\x17\x00\x4a\xe0\x10\x3c\xd3\xec\x8f\x00\x79\xb0\x0f\xd3\x26\xbc\xe5\x05\xec\xc5\x7f\xc6\x6f\xb8\xdf\xa6\x73\x59\xd1\xc4\x08\xde\xaa\xc8\x63\x4c\xe7\xd2\x92\xd2\xc7\x2a\xd2\x53\x38\xf1\x4d\x55\xbe\x3e\x25\x39\x57\x33\xd9\xd5\xdd\x52\xa9\xbb\x53\x21\x4f\x21\x26\x55\x9c\xf2\xb2\x50\xa7\x00\x97\xc2\xf1\xd7\xa7\x56\xf5\xd1\xca\x66\xea\xd3\x4d\x72\x2f\xe0\xff\x4d\x37\xc5\x36\xfd\x17\x9d\x6d\x3e\x9f\xac\xd3\xfc\xc4\xbc\x7b\x12\xbe\x7b\x62\xdf\x3d\xb1\xef\x9e\x98\xd7\xf0\xff\x65\x3b\xbc\xde\x11\x9f\xb9\xd9\xcb\x26\x73\x99\x48\x2d\xf2\x02\xbc\x9f\x87\x3c\x29\xbc\xf8\xc8\x8e\x3d\xfb\x9f\xff\x61\xd3\x9c\x3f\x60\xfa\xdc\x6b\x5e\xf0\xf7\x18\x5f\xfc\xfb\xdf\x9f\xc1\x85\x2a\xe6\xb7\x64\x3c\xff\x54\x8a\x62\x2e\xb5\x30\x8b\x90\xfd\x9f\xb9\x84\x1b\xd8\xed\x6e\x51\x60\xdc\x15\x63\x90\xb1\x66\xff\x81\x65\x5e\x20\x79\x60\xac\x4d\x49\x1d\xc8\xfa\x84\xa7\x2d\x42\xc1\x1d\x21\xfa\x4f\xe9\x6b\x7a\x7e\xc4\xb2\xfe\x94\x56\x57\xb5\x95\xbf\xd0\x9f\x52\xd8\x40\x53\xc5\x2d\x58\x8b\xb9\xc9\x0b\xe7\x64\xaa\x5c\xdb\x1a\x69\x40\x03\x9e\xf4\x9a\xbe\x7d\xad\xdc\x20\x81\xb1\x8d\xdc\x37\xcc\x08\xdc\x15\xf8\x7b\x08\xb8\x3d\x4f\xcc\x0a\xb9\xc1\x48\x28\x78\x6e\xd8\x72\xf0\x49\xe9\xea\xdc\x95\x87\x81\x0b\xfd\x87\x97\xa7\xa7\x13\xb6\xd6\xf0\x3f\xcb\x4f\xf0\x3f\x80\x1e\x7a\x2c\x0e\xce\x46\x67\x3a\x20\x5c\x73\x94\xf7\x8f\xc4\x63\xa0\xe8\xbe\x04\xed\x73\x6d\x9a\xbe\x2a\x65\x9c\x0a\x9f\x0d\x58\xb9\x12\x49\x95\x15\x2a\xc7\xc0\x58\x5d\x60\x03\xc6\x78\x29\x22\x6e\x0c\x5f\xe3\xdb\x08\x2e\x55\xab\x42\x48\x8c\x86\xe5\x5e\x7f\x8b\x63\xe4\x0a\xdc\x62\x80\x42\xf2\x82\x20\xe7\x02\xfe\x08\x1f\x01\x1e\xe5\x49\xfd\x27\xb6\x53\x25\x51\x02\x03\xd1\x65\x2c\xa2\x14\x78\xd7\x2d\xd9\x07\xcb\x45\x51\xe6\x92\x71\x96\x71\x19\x73\x0d\x33\x70\x95\xc3\x6d\x67\xce\x78\xb3\xa2\x13\x84\xe3\xaa\xb2\x00\x0a\x1b\x44\x16\x84\x3d\x81\x9c\xcd\x41\x9d\x27\x41\x25\x70\x4f\x00\xea\xd8\xc6\x8b\xd3\xb9\xb4\x0a\x51\x84\x85\xc3\x48\x59\xa4\xb2\x1d\x11\x94\xd4\x3b\x3d\xb1\x91\x33\xea\xee\x89\xc7\x9b\xd4\x9f\x9d\xb0\xa4\x7a\xb5\x06\xf4\xd0\x45\xa0\x71\x6b\x55\x82\x9f\x0b\x19\xa9\x58\xe4\xfa\x85\x59\x86\x89\x3b\x77\xa0\xff\x90\x68\x3f\x18\x60\xa5\xcc\xe6\x46\xd1\x42\x53\xbc\xd3\x51\x31\xbd\x53\x21\x14\x6e\xf3\x73\xf6\x2f\x95\x6f\x1d\x05\xd3\x56\x5f\xfa\xcf\x2f\x8a\x88\x09\x71\x9d\xf6\xcc\x79\x78\x08\x02\x97\x6c\x68\x71\xb1\x50\xf4\x71\xc8\x39\xb1\x82\xa2\x49\x01\x9a\x65\xb9\xd0\xc5\x5c\xd2\x0e\x3c\x61\x2b\xc1\x8d\x9f\x37\x61\x91\xbe\x47\x63\x8c\xdb\x7d\xf1\xa0\x3c\x06\xc7\xaa\x51\x00\x18\xb6\x52\xb8\x0f\x12\xe3\x63\x80\x28\xe0\x51\x81\x00\x83\x4e\xed\x69\xeb\xaa\x40\x67\xb5\x1a\xc4\x03\xfa\xc1\x8a\x1b\xd4\x85\x84\x42\x6d\x0d\xe8\x89\x1d\x5e\x14\xb3\x7a\x3d\xf0\x07\x63\x78\xb0\x75\x08\x03\x09\x8c\x23\x78\xdc\x84\xa5\xc5\x75\xe6\xef\x70\x43\x86\x69\x88\xcd\x74\x2d\xaa\x9e\x8e\x80\x0a\x1c\x16\xb7\x30\xaf\xee\x0d\x58\x69\x91\x5b\xe5\x05\x6c\x2b\xf2\xc1\x6d\x92\x3c\x3e\xc9\x78\x5e\xec\xec\xf4\x4d\x93\x25\x10\xb6\xa7\xc9\x9d\x60\xb3\x3c\x57\x0f\x8f\xdd\x0b\x9d\xa6\xa5\xeb\x84\x7d\x0c\x92\x7d\xec\x29\xbf\x95\x0d\xb2\x1e\xee\x38\x8c\x79\xb2\x2b\xf0\xd1\xfa\x9d\x5c\x14\xf9\x6e\x61\x26\xe2\x36\xeb\xb4\x14\x83\x92\x26\x86\x3b\xb9\xe3\x48\x2d\x6b\x21\x8c\x4e\x52\xcb\xca\xa8\x7e\x3b\xa4\x96\x2d\x7c\x95\x4d\x52\xcb\x8b\xcb\x8b\xdb\x8b\xd9\xdb\x8b\xff\x57\x2b\xf1\x97\xd9\xc5\xed\xc5\xe5\x1f\x17\x6f\xae\xae\x17\xd7\xe7\x37\x57\x1f\xae\xcf\xce\xfb\x59\x6a\x9a\xb5\xf7\x2e\xf8\x09\x0b\xbf\xf3\x92\xdd\x06\x40\x0d\x4c\x36\x20\xff\x9b\x14\x0b\x61\x56\x99\xc5\x9c\xc8\xf5\x04\x16\xea\x4b\x76\x9e\xe7\x17\x5b\xbe\x16\xef\xcb\x34\x05\x38\x15\x66\xf6\x9c\xe5\x02\x0e\x9e\x13\xf6\x5e\xc5\x17\xc1\x7b\x90\x8e\xd8\xda\x0c\xf8\x3e\x8f\xe3\x5c\x68\x8d\x9f\x9f\xd0\xf7\x03\xf0\x90\x4b\x75\x24\xf0\x1c\xbf\xe7\x49\x6a\xce\x6f\x2f\xd9\x2b\x1e\xdd\xa9\xd5\x0a\xd3\x67\x26\x2e\x71\x8a\x7d\x2a\x55\xc1\x99\xf8\x1c\x01\x33\x53\xfb\x3c\x79\xab\xd6\x5f\x01\xaa\x3c\xe0\x7a\xaa\xe3\x90\x02\xca\x54\x8b\xf6\xed\xbc\xdd\x10\x50\x2b\xdf\xe1\xab\x6f\xf0\xcd\xf6\x00\x65\x91\x3e\x42\xa6\xf8\x5b\xb5\x6e\xd7\x09\x01\xef\x9a\xc4\x4d\xe8\x22\x21\x22\xde\x09\xb5\x66\x3a\x91\x77\x73\xf9\xcb\x46\x48\xa6\xca\x1c\xff\x04\xc7\x7c\xe3\x66\xa6\xa5\xde\x08\x10\x0e\x9d\xb0\x07\xc1\xb6\x7c\x87\x6e\x33\x9c\x09\x9c\xb8\x01\x4c\x19\xd8\x45\xcc\xdb\x69\x22\x8d\xb5\xc8\x12\x9b\x97\x50\x1f\xfa\xc7\x38\x71\x59\x5e\x32\x7e\x3c\x6d\x68\xdf\x7e\x5a\xc1\xe7\x41\xa8\xcc\xe3\x26\x2d\x40\x88\x2c\x37\x68\x27\x2a\x75\x57\x66\x9e\xc1\xf0\x99\xbd\x9c\x84\xee\xbe\x57\x49\xcc\xe2\x32\x4b\x93\xc8\xd9\xdd\x07\x95\x77\xd2\xb4\x62\x02\xcd\xf0\x5d\xa7\x9e\x16\xd6\xd7\xb0\x96\xec\x9c\x00\x49\xd7\x43\xd8\xfa\xc4\x94\xb5\x2c\x91\x51\x5a\x82\x2a\x54\xa9\x45\x7e\x52\xe4\xc9\x7a\x0d\x0e\xb8\xcd\xf5\xfb\xf6\x39\x6d\x3d\x67\xde\xf1\x69\x6d\x61\xd2\x79\xaa\xd6\x49\xc4\xd3\x10\xdc\xec\x51\x11\x8e\x34\xd3\x2e\x7b\xd2\xcc\x84\x3c\x08\x5b\xa1\x4e\x32\xa0\x2c\x17\xc0\xdb\xba\x00\x53\xbe\x20\x73\x77\x4c\xbd\x57\xcc\x1c\xd0\xb1\x5e\x21\xa5\xa5\xbd\x5e\xb0\x3b\x9c\xff\xb6\x15\x4e\x02\x17\x13\x45\x95\x99\x7a\x90\x22\x07\x0f\x16\x60\x1f\xa6\xa5\x52\x81\x6f\xe2\xc4\x94\x1c\x3e\xd9\x8a\x89\xad\x1c\x10\x1b\x33\x67\xd7\xc9\xbd\x90\x5f\x9e\x83\x38\xf8\x40\xc4\xa3\x8d\x58\x58\xbf\xfc\xb1\x4d\x96\xdb\x00\x46\x1a\x2b\xab\x6a\x10\x9a\x52\x77\xbd\x09\x47\x27\xac\x71\xd3\x76\xe1\x45\x62\x4f\x46\x96\xa9\xc4\x22\x16\xd1\xdd\x17\x37\xcd\x1e\x64\x65\x2b\xc2\x38\x7b\x2d\xa2\x3b\xf6\xe1\xfa\x02\xb3\x81\x93\x82\x19\x53\xa0\x37\x5e\xa5\xa5\xf3\xec\x56\xf0\xf5\x13\x90\x1b\x0d\x95\x99\xf1\xcc\xe2\x4e\x5c\xcb\x54\x88\x00\x51\x90\x2f\x69\x8c\x24\xe5\xd2\x00\x10\x8c\x17\x56\x7c\x04\x02\xf1\x4c\x6f\x41\x6b\xa4\x2c\x02\x81\xae\x94\x2f\x45\xaa\xdb\x1b\x9c\xa9\x78\x61\xef\x49\x8e\x05\xf3\x34\xca\xb2\x71\x0c\xba\x75\xb4\x79\x0c\xdc\x78\xac\xb7\xf4\x20\xbb\xfb\x41\x07\xf4\x1a\x2a\xa4\xfb\x85\x73\x3d\xd7\xa2\xa6\x58\x9f\xac\x48\x11\x05\x13\xfa\x41\xfb\xdb\xd8\x4b\x53\xd2\x7b\x15\x13\x4c\xcf\xf1\x79\x19\x2f\x48\x50\xf4\xc4\xe3\x2a\xc2\x2a\x38\x7d\x74\x0d\xb1\x01\x5d\x08\x1e\x33\xb5\xa2\x68\x62\x96\xa5\x09\x10\xb9\xc6\xc8\x19\x0d\xec\x19\xba\x8a\x8e\x0f\x4b\xb3\x95\x0d\x48\x3e\xde\x5b\x20\x5e\xef\x7d\xa3\xbf\xe4\x32\xed\xaa\x06\xb9\xeb\x3e\xd5\xb1\xda\x5f\x2e\x1f\xe9\xd0\x23\x74\x7f\x34\x6d\x9d\xaa\x25\x74\x54\x37\x28\xae\xc7\x40\x1b\xeb\x94\x27\xf1\x98\xed\xdd\xf6\xc9\x95\x7b\xb5\xaf\x82\x57\x36\xd2\xe1\xbe\x64\x87\x99\x11\xcd\x76\x78\x83\x5f\x4b\x63\xdf\x77\xd6\x86\x0b\x42\xed\x6e\x08\x9d\x37\x6e\x49\xe6\x61\x55\x38\x73\xdc\x71\xac\xae\xb6\xe5\xa8\x81\x6e\x12\xa3\xec\xe9\x4b\xcf\xa5\xd2\x3f\xc8\x47\xb0\x5b\xe0\xca\x75\x14\x17\x63\x98\x82\xed\xd0\x21\xc6\xd7\xf4\xa7\x1f\xc4\x4a\xf2\xc5\xa0\x11\xad\xf7\xbb\x5d\xc5\xc7\x74\xf9\x53\xac\xa8\xb2\x50\x3e\xe4\x0f\xed\xb9\x00\xfe\xcc\x30\xad\x0b\xcc\xc6\x45\xdc\x01\x17\xb0\x3e\x98\x5d\x9a\x23\x40\xa8\xa3\x60\xb0\x59\x2e\xec\xe5\xd1\x4e\x14\x2e\xb9\x3f\xb5\x5a\x50\x70\x37\xe2\x5a\x5d\x65\x37\xb1\x04\x06\x8e\x91\x0a\x6e\x32\xc8\xdf\x8b\xd4\x36\x53\x12\xb0\x29\x98\xaa\x34\x97\x54\xb8\x55\xf4\x75\xd7\x2b\x95\x7c\xb7\x09\x45\xb5\x30\x7b\x42\x68\x95\xde\xd3\x3d\x5a\x40\x3c\x0f\x5a\x60\xa6\x82\x67\xe6\x80\x60\x8e\xc3\x70\xc1\x4b\xe6\x1d\xe0\xe0\x35\x59\xdb\x5c\xac\x13\x5d\x88\x30\x45\x30\x7c\xff\xd1\x14\x08\x2b\x27\xe8\xbe\xae\xef\x54\x20\xdc\xe7\x0a\x9b\x55\x3b\xa2\x3e\xbb\x4c\xc4\x17\xee\xbd\xfe\xc9\x50\xcb\xe2\xf6\x46\xa2\xb2\x0b\xe0\x1c\xc0\x23\x80\x46\xbe\x27\xed\x28\xe3\xdd\x20\x11\x13\x0f\xf7\xa8\x36\x33\x44\xeb\x92\xe7\x5c\x16\x42\xe8\xb9\xa4\xdb\x47\xe4\x2d\x0b\xa9\x39\x6a\x68\x38\xe7\xe0\x46\x4a\x17\x48\x03\x04\xaf\xac\x78\x92\x96\x79\xe7\x99\x13\x67\xe5\x41\xdc\x03\x7d\xbd\x74\x06\xc5\xb2\xb6\x41\x73\x59\xac\xc1\x2a\x72\xd4\x19\xf5\xbb\xc3\x6a\x92\x67\x47\x13\xac\xc9\x1d\x3e\xde\x2e\xe0\xd8\x91\xd8\xfa\x83\x5e\x64\x6a\x84\xc5\xfb\xe9\x07\xfd\x5e\x75\xa4\x04\xeb\x4f\x8d\xc0\x58\xcf\x1d\xfa\xa7\x2e\x12\x7d\xae\xef\xe0\xfa\x69\xdf\x79\x7c\x7f\x90\xfd\x0f\xdf\xef\xbf\xa4\xea\xb4\x5d\x30\x6b\x37\x5c\xc6\xa9\x39\xa7\xf2\xa2\xb6\x03\x79\xb0\xaf\xf1\x8b\x0b\x6b\x1c\xbb\x33\xbb\x20\x51\x62\x11\x35\xb2\xec\xf6\xf5\x53\x2d\x3d\xaf\x17\x50\x57\xfb\x4a\x35\x69\xae\x2d\x59\xc3\xef\xec\x24\x5d\xe9\x16\x6c\xf7\x14\x5c\x25\xeb\x6f\xe0\x90\xf5\xae\x69\x29\x23\x5a\x8a\xb4\x7f\x39\xe4\xf7\x91\x8b\x11\x92\x6c\x8c\x31\x0b\x79\x7a\xe7\x92\x94\x6d\xf1\xe6\x15\xae\xdc\x90\x8b\x4a\xb3\xef\x5c\xe6\xe5\x77\xff\x6a\x99\x88\x76\x6c\x05\x7d\x0d\x74\x5f\x2a\x8a\xca\x1c\xae\x45\x29\x74\xc3\x04\xee\x4d\x63\xe8\xd4\x67\xb8\x23\x3b\x30\x0b\xba\x4f\x6d\xde\x83\x8b\xd5\x55\x1a\x75\x0b\x21\x1a\xd4\xe8\x75\x7b\x21\x49\xaf\xe4\xba\x60\xba\x10\x59\xab\x55\xaa\x38\x5d\x55\x19\xea\x23\xdc\x2e\x2f\x82\x3d\xd0\xd7\x1d\x61\xa3\x67\xc1\x71\xfa\x4f\x37\x57\x97\x2c\xe3\x3b\xc0\x85\x15\x8a\xf4\xc3\x81\x8c\xb1\xbe\x7e\xf7\x8d\x40\xb5\xf1\xd5\xc5\x86\x7d\x6a\x01\xa6\xed\xb1\x5b\xfa\x62\xd3\x87\x82\x39\x43\x53\xd2\x2c\xe5\x5c\xa5\x27\x59\xca\x65\x00\xfd\xd5\x53\x56\xfb\x7c\x78\xd7\xeb\x6e\x7d\x08\x4d\x03\x15\x80\x70\x0a\xcd\x85\xbc\x6c\x05\x87\x56\x95\xb5\x8f\xba\xde\xed\xb4\x11\xbd\xa0\xb7\x77\x48\xa7\xcf\x23\xb3\x4c\x90\x59\xc0\x5e\x59\x3b\xd4\x03\xd7\x00\x48\x1c\x31\x50\xfd\x32\xe0\x73\x69\x55\x5e\xd5\x83\x66\x31\x72\x2f\x94\x89\xde\x40\x7c\x12\x2f\x04\x00\x1c\x44\xf6\x05\x91\x0b\x39\x97\xda\x0c\x28\xc4\x34\xc5\xbd\xa0\xc0\x46\xe5\x32\xee\xe2\xf5\x5b\x77\xbf\x8f\x83\x44\x42\x5c\x1d\x5d\x1f\x38\x66\xc7\x1c\x60\x5a\x75\xa9\xf7\x73\xdc\xbf\xe3\x59\x5f\xd6\xd8\xd1\x25\xee\x1b\x25\xc7\x3c\x53\xf7\x3a\x41\xa1\x13\xb4\x79\x2a\xa9\x63\x61\xef\x7d\x90\x47\x9a\x9f\x56\xd2\xeb\xfd\xfc\xfa\x83\x0f\x61\xc3\x32\x01\x47\xd8\x9e\x80\x04\xce\x61\x6b\x9c\xbf\x6c\x56\x39\x28\x9f\x00\x7b\x15\x46\xd2\xa6\xec\x46\x08\xf6\x11\x7a\xca\x7c\xec\x23\x29\x6b\x01\x5c\xb0\xe0\x49\xab\xf0\x09\x3c\x7d\x21\x57\xea\x38\x63\x90\xaf\x1b\x70\xb4\xa3\x7a\xa5\xbd\x9e\xc7\x02\xde\x20\x95\x51\x3e\x6d\xfe\x7d\x6b\xbb\xf6\xc0\xdb\xde\xfb\x33\x39\x65\xe5\xd9\x9a\x9a\xfd\x19\x86\xf8\x10\x86\xa7\xda\x24\x31\xad\x9c\x20\x6b\xf1\x9d\x54\x0f\x12\x7d\x01\xfa\x12\x7b\x6e\xd6\x1f\x6c\x60\x18\x40\x45\xb7\xa0\x44\x6b\xf8\x02\x68\x94\x67\xee\xdf\xec\x06\xef\x8a\xb0\xce\xa0\x13\xa2\xc1\xf9\x21\x85\x0f\xb0\xe6\xcf\x67\x13\xf6\x6a\xc2\xce\x26\x6c\x3a\x9d\xbe\x98\xa0\x5e\x2f\xd5\x08\x5f\x41\xe4\x58\xc1\xd7\xa6\x6c\x52\x4e\x58\x05\x1f\x00\xd9\x1b\xb3\x59\x59\xb6\x30\xee\x9f\x0a\x22\x0f\xb6\x09\x98\xc3\x48\x09\x17\x74\xaf\x1e\x6d\x54\xe2\x2b\x05\x10\x4d\x11\xa9\xdc\x82\x3c\x75\xa1\x72\x0b\x58\xbb\xe7\x39\x4f\x24\xa4\x76\xf3\x26\x5c\x97\xbe\x1c\x90\x3b\x8b\xcf\x7c\x0b\xed\x4f\xa4\xe3\xb7\x34\xdd\x74\xeb\xea\x5f\xec\x32\x0a\x48\x3f\xe4\x49\x51\x98\xdd\x59\xcf\xe5\x0d\x7b\xf9\x1f\x6c\x96\x65\xa9\x60\x33\xf6\x37\xf6\x8a\x4b\x2e\x39\x7b\xc5\xfe\xc6\xce\xb8\x2c\x78\xaa\xca\x4c\xb0\x33\xf6\x37\xd3\x6d\xa6\xbc\x4b\x65\xb6\xc3\xdd\x84\x71\x26\xcb\x14\x77\xfd\xe7\x16\x0c\xf6\xc2\xb5\x8b\xfb\xd1\x59\x8a\xe2\x41\x08\xc9\xb4\xda\xd2\x56\xf8\xab\xbb\x93\xd0\x89\x5c\xa7\xa2\xa0\xf9\x50\x85\xed\xe1\x07\x4e\xa0\xa5\x2f\xe7\xd2\xc5\xf2\x7e\x35\x35\xfe\x95\xfd\x8d\x5d\x96\x69\x6a\xaa\x64\x0c\x8d\x99\x48\x2f\x99\x4d\xa3\x10\x72\xfa\x90\xdc\x25\x99\x88\x13\x0e\x89\x14\xe6\x5f\xa7\xb7\x30\xda\x8b\xd2\x73\xe6\x85\x6b\xda\x69\xaf\x1c\x63\x7a\x9e\x24\x29\xdb\x49\xf0\xd8\xc1\xef\x39\xf9\x55\x5f\x1d\xef\x11\x79\xa6\x50\x5a\x0f\xe4\xb0\xa2\x6e\x4e\x28\xf5\x73\x90\x09\xa8\x6d\xb6\xb6\xac\x96\xad\x20\xdc\xd4\x8f\x35\xb2\xa0\x1c\xf5\xe8\x67\xc8\x01\x32\x3e\x43\x4d\x6e\x43\x84\xa4\x92\xe6\x0e\xbe\xa4\xa7\xfa\x19\x74\x2b\xe4\xc4\x47\x7e\xae\x4a\x67\x55\xba\x58\x25\x83\x34\xc6\x6a\x95\xfd\x40\xb1\x0b\x4c\x50\x33\xcb\x34\x49\x4f\xcd\x52\x3d\xbd\x54\xd2\x1c\x5b\x75\xb2\x46\x7a\x22\x80\x11\x69\x20\x64\xb5\x4e\xc1\x6d\xd5\x65\x0d\x96\x00\xf8\x07\xa6\x4a\x08\x6d\x2b\x8c\x15\x30\x43\x90\xee\xe6\xd2\xbc\x41\x3b\x12\xc0\xdc\x13\xc7\x62\x8b\x5f\xb3\x6a\xe6\xf4\x2d\x32\xc8\x41\xe1\x2d\x13\xac\x2f\x87\xf6\x88\x09\x47\x29\x5b\x47\x44\xc5\x2f\x03\x06\x37\x2a\xcd\xd2\x7b\xe0\xbd\xe7\x52\xa4\x4a\xae\xcd\xac\xe8\x32\x02\x6a\xcb\x93\x63\x80\x25\x61\x15\xb0\xb0\xce\x1a\x98\xcd\x92\x1e\xa1\x21\x31\xfb\x64\x12\xfb\xf3\xbd\x2e\x97\xc6\x8f\x70\x11\x59\xb7\x1b\x52\xe3\xba\x12\x8a\x8f\xbb\x5f\xfe\xa0\x45\x0e\x34\xcb\x88\x70\x70\xd1\x7e\xdc\x38\x3d\xd9\x06\xb6\x68\xd8\xa2\xea\x05\xc6\xb6\x87\x42\xe8\x36\xa1\x91\x5a\x3d\x60\x3e\x7e\x4d\x8c\xec\x53\xca\xc1\xb7\x6a\xbf\xc3\x73\xa6\x34\xfa\xd3\x58\x7d\x77\xdb\x7b\x8f\x01\x1f\xfc\x84\x72\x2f\x0b\xb5\xb2\x99\x94\xc3\xf7\xf4\x86\xe0\xce\x30\x94\x4a\x48\xb2\x1d\x0a\xd3\x34\x27\x4e\x67\x3e\xb8\x5c\xd0\x8d\xc4\xb0\xca\xd6\x3b\xec\x4a\xbe\xc1\xd7\xdf\xab\x34\x89\xfa\x41\x6f\x76\xbb\xda\xa8\x87\x16\x14\xd1\x52\x00\x0a\x94\xe2\x3f\x54\x29\xf4\xd0\x0b\x11\x15\xfe\xc6\xad\xd9\xb8\xff\xd5\x40\x9b\xfd\x67\x70\x8c\x28\xbb\x6e\x03\xd1\x47\x77\x87\x07\x7b\x2b\x10\x6c\x02\xaf\x3c\xc6\x5a\x21\x97\x0e\xee\xb6\x23\x4e\x21\xe8\x4a\xcf\x83\x81\x7e\xd8\xa8\xd4\x9c\xc5\x64\x4c\x64\xa5\x73\x99\x89\x3c\x52\x00\x50\xc1\x3c\x78\xc5\xa2\x4d\x92\xc6\x5e\xbc\xe5\x39\x20\x7a\x01\x77\xf7\x82\x14\xea\x84\xbb\x63\xb6\xc5\xf7\xec\xba\x76\xda\x59\x95\xea\xe3\x22\x50\x8f\x07\xd1\xeb\x9b\xf6\xbf\x10\x94\x0c\xbb\x82\xe8\x85\x6a\xb7\x85\xa6\xd3\x2b\xf5\x19\x15\xe1\x05\x1d\xe9\x95\xd5\xc1\xb4\x07\xa7\xa2\x36\xae\x34\xcd\xea\x5d\x09\xa4\xb3\x88\xa2\x42\x00\x89\x16\x50\x9d\xad\xe0\xe8\x8b\x79\x0a\x48\x1a\xd4\xb9\xf4\xf7\xa3\xcf\x74\xe8\x97\xb5\x8e\x33\x72\xaa\x5a\x10\xe0\x84\x3d\xab\x34\xf4\x19\x90\x92\x4a\x05\xdf\xa3\x3b\xac\x4a\xd7\xc0\x74\x9d\xb0\xa4\x98\xcb\x44\xe3\xcc\xcc\x45\x2a\xee\x4d\xed\xc2\x60\x31\x61\x5d\xec\xd9\xd9\x36\x1b\x70\xe4\xdc\xa6\x1f\x3b\x71\x73\x58\x84\x79\x48\x6e\xc9\x21\x30\x1d\x0b\x6d\xfc\x46\x90\xe5\x10\x9f\xcd\x02\x48\xe0\x2e\x04\xe1\x1f\xb1\x90\xb6\x7e\x80\x0a\x41\xfd\xd4\xb9\xbc\x58\x41\x0e\x28\x64\x9e\xc6\x31\x9e\x42\xad\x50\x83\x63\x1a\x4b\x28\x38\xac\xe8\x4c\x6e\x07\x82\x04\x16\x71\x25\x89\x7b\x91\xef\x0a\x08\xea\x42\xbf\x4a\xc1\x8b\x0d\x4b\x8a\x09\x50\xc4\x59\x4b\x39\x97\x3c\x26\x7d\x6a\x2a\xce\x74\x0d\xcc\xfb\x9e\x71\xa6\xdf\x97\xea\xbe\xcf\xb1\x3d\x16\xf5\x85\xab\x3a\x4b\xb9\x5c\xe0\x0e\xf2\x15\x70\x5f\x81\xf6\x65\xd7\x55\x67\xb9\x5c\x38\x5a\x9b\x47\xa9\xa7\xb3\xf7\xd7\x15\x45\x5a\xe3\xc7\xda\x0f\x4d\x70\x32\x78\x5a\x6b\x7b\x3c\x71\x71\x1a\x42\x17\xe4\xcc\xde\xc0\x0e\xb7\x02\x1e\x12\xc6\x6b\x48\x04\x3b\x5b\xf7\x61\xc2\xec\x0c\xf8\x56\xf1\x49\x43\x46\xbe\xb6\x87\xd4\x87\x7d\x3c\x34\xa6\xe1\x21\x1e\x04\x8f\xd9\x53\xad\xa7\x85\xc8\x74\xc6\x51\x9a\x50\x19\xdb\xda\xe0\xba\x0f\x93\x27\x04\xc6\xe1\x5c\x98\xa7\x5d\xdb\x34\x3c\x87\xa9\x16\x6c\xe5\x63\xc6\xa8\xc1\x4e\x0d\x8d\x94\xf8\xdc\x6b\xa8\xd7\x94\x5d\x48\x66\xdd\xbd\x09\x7b\x86\x13\x4b\x3f\xa3\x10\x24\x09\xe4\xd2\xdd\x79\x4c\xab\x87\xb2\x55\xeb\x50\x0c\xcc\x19\xf0\xcb\x0d\x6f\x82\x7a\xa9\x0d\x9f\xb4\x5f\x5e\x25\x90\xb3\x70\x48\x5a\x3a\xde\x22\x2e\xb1\x00\xda\x24\xf1\xd8\xbd\x43\xa7\x5d\xf9\x68\xb6\x6f\xb0\xbd\xef\x62\xaf\xec\x8b\xa6\x8b\xb2\x92\xf6\x53\xfb\x3b\x53\xf9\x5c\xda\xd2\x28\x24\xa9\x51\x4b\xa9\x5e\x54\x00\xa1\x26\x9f\x3f\x98\xa9\x00\x62\xb0\xf2\x59\xa0\xca\xe6\xf9\x57\xeb\x56\x00\x40\x11\x4b\xe1\xa5\xbd\xa7\x6c\xe6\xbf\x66\x1c\x0f\x33\xc1\xb7\xb8\xcd\xd7\x39\x1a\xd3\xd4\x74\x4a\x52\x58\x4a\xc8\x20\xbd\x41\x97\x40\x6c\xba\x2a\x8d\x31\x0a\xd8\x5f\xe7\xd2\x74\x1e\x5b\x25\x80\xfb\xa5\x7e\x99\xcb\x77\x4a\xdb\x6c\x7a\xed\xfb\xc3\x62\x48\xa9\xdb\x9e\x39\x15\x31\xfa\xc3\x6b\xd8\xb4\x29\xe6\x5f\x93\x95\x87\xbc\x16\xa2\xc4\xd8\xa9\x32\xf7\x8d\x8a\xb8\x9c\xcb\xbf\x98\xee\x41\x51\x67\xa7\x88\xae\x56\xb8\x84\xad\x0c\x3f\x7b\xfe\x11\x0b\x7d\xfe\xaf\x2f\x3e\xbe\x40\x1c\x7a\xa9\x41\xb8\x71\x52\xdd\x40\x1c\x11\x78\x99\xa6\x70\x13\x6d\x5b\xe0\xc8\x28\xfc\x27\x78\x1f\x2c\x87\x0e\x75\x0b\x59\x75\x31\x86\x2c\xf4\xbe\x19\xec\x83\xcf\x33\x16\xf1\x22\xda\x9c\x58\x5f\x8e\xcc\x98\xdd\xfd\x68\xf8\x50\xc1\xcd\x78\x5a\xed\x5c\xd8\xe6\xc0\x99\x6f\x1d\x3b\x5f\x65\xbe\x98\x26\x00\xb0\xe6\xb6\x2e\x0c\xe3\xc8\x43\x71\x72\x7a\x4d\x72\xef\xe7\xb9\xc7\xad\x2c\x9b\x3f\x71\x52\x94\x5c\xf2\xad\x88\xd9\x33\xc8\x98\x7a\x66\x07\x7f\x2e\xb3\xe5\x34\xdd\xad\x0a\xa2\x78\x32\x9d\x32\x05\x01\xa3\x3d\xbb\xdc\x22\x6e\x1e\x93\xf6\x74\x76\xe7\x41\xab\xdd\xd7\x71\x7d\xe3\xbe\x34\xdc\x61\xc1\x18\x97\xeb\x9d\x9b\x2a\x44\xa8\xca\xa4\xce\xf5\xdd\x84\x2d\x73\x2e\x41\x7b\x22\x0e\x9d\x2a\xbf\x3a\xe1\xf0\x8c\xfc\x49\x36\x85\x42\xf2\x74\x07\xd8\xf1\xc9\x5c\x22\xd9\x14\xb0\x12\xef\xa2\x34\x89\xd8\x3a\xe7\xd9\xa6\xe6\x07\x89\x7b\x21\x8b\x73\x62\x57\xb0\x20\xf5\x63\xaf\x96\x1d\x5b\xc3\x51\x9c\x7b\x17\x55\x6f\x87\x7b\x1a\x0a\x1f\x61\xc5\x44\x15\x3a\x51\x5b\x50\xab\x9b\xe0\x13\x92\x42\x03\x3e\x2e\xf6\xe7\x72\xa9\x52\x4b\x68\x76\xf1\x9a\xa9\x1c\xb4\x04\x0a\x45\x7f\x4a\xe2\xae\x5d\x2c\x91\xb1\xf8\x7c\x14\xab\x40\xff\x86\x64\xdd\x3b\xf3\x99\x80\xb2\xbe\xde\x58\x58\x45\xb9\x30\x9b\x45\x61\x4f\x70\x8d\xa7\x74\x1d\x61\x37\x4b\x8b\x0d\xc0\xde\x10\x70\xed\x3b\x75\xcb\x77\x2c\xda\x70\xb9\x0e\x8e\xd0\x80\x42\x12\x99\xca\x51\x73\xef\x1e\xe8\xbb\x54\x6e\xb3\x36\x29\x17\x91\x50\xdf\x2e\xe0\x8d\x60\x4b\x65\x13\x0e\xf9\x7a\x9d\x8b\x35\x24\xd2\xcf\x65\x25\x9b\x1a\xa8\xcb\x2c\xdd\x3f\x7e\xa7\x2f\x19\xf5\x71\x18\x1d\xba\x4e\x2d\x45\xbe\x73\xa9\x7c\x24\x58\xe9\xba\xae\xd1\xad\x13\x96\x88\xe9\x84\x7d\xef\x01\xa6\x22\x52\xd2\xe5\x02\x76\x24\x82\xd5\x42\xd3\x7b\x6c\x51\x0b\xf5\x43\x7b\xdd\xe1\xb7\x86\xec\x65\xeb\xa4\xe9\x4d\xa6\x2c\x78\x51\x8e\xb0\x95\x24\x6d\x7c\x66\x5e\xbe\xc1\x77\x7b\x31\xd8\x3c\x33\xe6\xcd\xd2\xee\x98\xe7\x8d\x85\x37\xdf\xf6\xb4\xbc\x6d\x7d\xbd\x37\xd0\x99\xaa\xee\x40\xe7\x63\xb8\x94\x96\x5b\x61\x7f\xac\x33\xed\xe0\x0b\xe8\x69\xd3\xd8\x50\xa6\x05\xa3\x12\xcc\x5c\xd7\x8f\x5b\x2d\x16\x20\xcb\x55\x5c\x46\x22\x36\x2b\x17\xfc\x76\x44\x6e\x38\xda\x82\x8a\x91\x6c\xdb\x10\x2a\xdc\x2b\x20\x70\xfd\xa5\xce\xc6\x83\xe8\x6e\x5d\xf7\x7f\xe8\x38\x17\x5b\xcf\xa4\xad\xd3\xc3\xf5\x89\xfd\x94\x8f\xdc\xa7\xdc\xe7\xab\x24\xb5\x2a\x4f\xd6\x89\xe4\x85\xca\xd9\x73\x97\x9c\xf8\xc2\x29\xdb\x40\x2f\x3e\x86\x99\xa8\x74\x11\x9a\x89\xf6\xb3\x17\xe0\x99\x45\xbc\x18\xc7\x9d\x35\x96\xe1\x19\x26\xa9\x79\x4a\x17\x7c\x9b\x85\xb4\x8f\x4e\x37\x98\x7a\x26\xc5\x4e\x60\xb6\x62\x10\xe3\x4b\xb4\xcf\xc1\x9a\x4b\x8a\x8c\xe3\xb8\xa9\x3c\xe4\x2d\xee\xdc\x9b\xb3\xb2\x58\x1c\x48\x65\x82\x2f\x8f\x0b\x90\xd0\x75\xf9\x3b\x9e\xf5\x93\x43\x70\x3a\x1a\x63\x12\x8a\x13\x53\xb6\x9e\x4a\x75\x7e\xf6\x2b\x03\x8c\x24\xab\xac\x5f\xf1\x5e\xbf\xb5\x17\x1a\xfe\xdc\x52\x39\x08\xc0\x40\x20\x4b\x9e\x06\xaf\x02\x8f\xa0\xce\xac\x99\x5d\xdc\x32\x4a\x9c\xa5\xaa\x8c\x19\x19\x35\xba\x2e\xce\xa7\xb8\x3b\x02\x6d\xe5\x74\xda\xc5\xe1\x35\x52\xb1\xd4\xd9\x1f\x78\xaf\x7d\x05\xc2\x6f\x1d\x16\xb8\x77\xe9\x53\xcf\x3e\xd9\xd0\x53\x4f\xc3\xd8\x3b\x73\x3c\x6a\xec\x5d\xb4\x16\x38\xb4\xc6\x05\xf2\xe0\xdc\x94\xc4\x29\xac\xb7\x30\xd0\xdd\xc2\xf2\x59\xb9\x40\xd4\x77\x47\x7f\xce\x66\xda\xf6\x7f\x2a\xe3\xb9\x90\xc5\x02\xbe\x38\xee\x63\xf0\x91\xf7\xf0\x7a\xc5\x61\x1a\x14\xb0\xfc\xaf\x5b\x85\x71\x68\x4b\x98\xf1\xdf\xec\x86\x62\x2f\xda\xaa\xda\x9b\xdd\xf1\x79\x02\xd8\x98\xe0\xce\xce\x0d\x5c\xc7\x70\x51\x83\x0e\xe8\xbd\xa0\x41\x15\xd3\x3e\xa8\x41\xbe\xf6\x70\xa5\x0a\xa5\x50\x18\x8a\x32\x3c\x8d\xa9\xb5\x7f\x0b\x48\xb4\x2f\x2b\xff\x06\xc2\x43\x33\x7e\x29\xfb\xab\xc8\x95\x4f\x5b\xc0\xa0\x4a\x58\x70\xaf\xbf\x7e\xb8\xfe\x27\xfa\xe3\xa8\x3c\x19\x4a\xaf\xc1\x5f\x88\x93\x04\x4f\xbe\xcb\x9d\x3d\x8e\x74\xd1\xa9\x8b\x68\xd1\xc1\xb3\x3f\xa8\x2a\xc1\xc1\x33\xe4\xcd\x4f\x6a\x9b\x99\x5d\xa0\xa7\x70\xae\x26\xd6\xbf\x2d\xcf\x08\x87\x46\x90\xd7\xfa\x25\xc3\x14\x1a\xf1\x5f\xbf\xfe\xf7\xb4\x4b\xd9\x19\xaa\x3e\x16\xd6\xe3\x2a\xff\x26\x4f\x84\x8c\xe1\xd2\x90\xc7\x4d\x09\x18\x59\x89\x22\x57\xcc\xb3\x99\x86\x8f\x92\xdd\xd7\xbe\xd5\xea\x05\x4e\xa2\x2f\x70\xf3\xec\x8d\xac\x5b\xbe\x95\x7b\xa9\x2e\x57\x42\x2f\xe2\x9d\xe4\xdb\xa6\x16\xf6\x93\xd6\x71\x97\x88\x34\x86\x2a\xd2\xd7\xf7\xdd\x9e\xc4\x22\xba\x1b\xeb\x13\x1c\x4c\x60\x2d\xa2\x3b\xf6\xe3\xed\xbb\xb7\xa8\x57\x98\xe8\xb9\xbc\xe4\x45\x72\x2f\x3e\xe4\xa9\x0b\x5b\x13\x23\x49\x9e\xda\x35\x52\x25\x54\x0d\xc8\x3b\x2c\xfb\xaa\x75\x1c\x42\xbe\xeb\xed\xee\x64\x59\x46\x77\xa2\x38\xcd\xb9\x8c\xd5\x16\x9b\x71\xaa\xcb\xd5\x2a\xf9\x3c\x2d\x78\xde\x41\x7e\x8d\x71\x84\xaf\xe8\xe7\x7a\x49\x93\xc2\xfb\xbc\xe8\xea\x3e\x40\x76\x22\x09\xe5\x56\x9c\x5b\x38\x02\xe7\x7c\x2b\x80\xbd\x8c\x55\x89\xe3\xa1\x14\x4c\xf8\x03\x7d\x35\xad\x09\xe9\xad\x48\xbd\xf5\x63\xe0\xdc\x7f\x0c\x6a\x55\x55\x10\xb6\x95\xf2\x9a\x65\x5b\x7e\x87\xe7\xc3\x75\x2e\xb4\x9e\x30\xad\xa0\xc6\x73\x69\x31\xd3\x36\xaf\x07\xf0\x19\xc0\x7f\x98\xee\x58\xa4\xb2\x04\x24\xde\x5c\xbb\x36\xea\x01\xe2\xc9\x61\x7a\x1b\xa8\x72\x96\xb2\x48\x52\xc6\x57\x05\x05\x9b\x81\xec\xd9\x8a\xbb\xe8\xe9\x5c\xc2\x95\x61\x04\xcd\x87\xab\x7c\x77\x4d\xe0\x1a\xa1\xd9\x8a\x47\x49\x9a\x14\x44\x41\x03\xc9\x30\xdc\xb4\xd7\xec\x07\xa6\x2f\x73\xbe\xe3\xa9\x3f\x58\xf1\xb4\xf4\x19\x7d\x27\x5a\xd4\x29\xce\x7e\x17\xfe\x6f\xe5\x9c\xdb\xb7\xeb\x1e\x71\xe0\x3d\x66\xf3\x69\x1e\x69\x9d\xe2\xa8\xdf\xc7\x93\xd8\xe2\x44\x2b\xae\xae\x67\x9e\x75\xdb\x0f\xc4\xce\x3b\x0e\xd5\x53\xab\x13\xd3\xfc\xc2\x88\xde\x6b\x77\xc2\xbe\x50\xb8\xa0\x8b\x03\x77\x48\xf5\x6d\xb4\xfb\xbd\x52\xe9\xb1\x11\x6f\x9e\x5a\x83\xba\x00\xe9\xc4\x63\x8e\x6b\x38\x01\x5c\xe0\xe8\xe2\xb5\xbb\x7b\x75\xa4\xb2\x55\xc1\x15\x82\x05\x51\x15\xc0\x50\x40\x25\x7a\x10\xc3\x3a\x6b\xb9\x7c\x1f\x89\x7c\x86\x32\x10\xb5\x63\x5d\xe7\x66\x08\x3e\xc8\x65\xe7\xbe\x8e\x40\xbc\x57\xab\xe1\xa8\x60\x18\x0a\x1d\xd6\x3e\xe5\x02\x63\x21\x41\xa7\xeb\xc7\xe0\xdb\xb6\x3f\x51\x5e\xd9\xec\x4f\xe4\x25\xcf\x65\xe0\x11\x23\xab\x8e\x85\x96\xbb\x5e\x6b\x8b\x97\x55\xa6\xe1\xd1\xf1\xb2\x63\x58\x98\x7b\x2f\x54\x5e\x87\x7a\x4a\x80\x09\x88\xd4\x76\x99\x48\x9b\xaa\x4c\x41\x64\x70\xe5\x67\x96\xe4\xce\x05\xfc\xad\x4b\x8e\x2c\xfb\xb5\xbe\x77\x6e\x44\xc8\x17\x18\x9a\xac\x7d\xc7\xdd\xf0\xfc\xf4\xb8\x84\xd1\x1d\x28\xd5\x7a\x0b\x12\xcd\x78\xfa\xc0\x77\x1a\x34\x47\x85\xb1\x8a\x2b\x0c\x9c\x56\xeb\x3f\x09\xb6\x77\x4b\xa0\x48\x02\xde\x25\x49\x11\x53\x5b\x12\xe4\x6f\x10\xa9\x55\x57\xf5\xbc\x38\xcf\x74\x7b\xe7\x7c\x9d\xbb\x90\xbc\xf7\x2e\x04\x2f\x23\xff\x31\xae\x3f\x7a\x82\xac\x47\xc6\x7a\x83\x6d\x12\x3d\x32\x82\x8b\x40\x02\x0f\x98\x63\xf3\xed\x09\xdb\xf2\x44\xd2\x32\x40\x05\xab\x58\x2c\xcb\xf5\xba\x33\x04\xf9\xed\xdf\x65\x54\xd7\xc9\x3f\x7d\xac\xb9\x97\xd9\xe9\x31\xa2\xb1\x17\xf6\x4b\x18\x1e\x36\xe7\xaa\x2f\x13\x80\xfd\x8a\xd1\xee\xd6\x2b\xa7\xc6\x24\x7a\x9c\x68\xf7\xc5\x90\x68\xb7\xc5\xf8\x40\xaa\x15\x1d\x57\x2d\x0e\xe3\xb7\x30\xf8\x97\x09\x83\x0f\x9a\x14\x48\xef\xb1\x48\xaa\x0e\x7a\x4f\x0d\x0f\x64\x09\x73\x74\x92\x50\x2b\x52\x03\xd7\x42\xc6\x9a\x2d\x79\xf4\x04\xb4\x61\xb0\x3b\x1e\x1f\x6f\xdb\x03\x2e\xb9\x51\x5b\xc1\xe0\x53\x1a\xb5\x0f\x18\x65\xb3\x4d\x00\xb5\x68\x1a\xe8\x11\x19\x84\xf7\x80\xed\x14\x91\x21\xb1\x77\xaa\x9f\x4b\xf1\xc0\xcc\x6e\x35\x09\x61\x5c\xc1\xf0\x80\x28\xce\x0b\xe3\x1d\x56\x30\xdf\x2e\x75\x3f\x17\x6b\x9e\xc7\x90\x69\x40\x4b\x32\xe5\xd1\x9d\xf9\x6f\xa8\x1f\x7d\x91\xa0\x66\x96\x9f\x1b\xe1\x8f\xbe\xb4\x44\x46\x39\x90\x32\x11\xaa\xcd\xd7\x0f\x5f\xd7\x8c\x47\xb9\xd2\x18\x94\x71\x5a\x92\x90\xe9\x0a\x0e\xec\x7d\x12\x97\x3c\xc5\x2f\x76\x46\xb2\xb9\x3e\x8a\x6f\x7c\x16\xc8\xbe\x88\xcf\x59\xca\x65\x75\x4d\x62\x73\x81\xab\x26\xe9\x99\xf9\x8e\x72\xed\x98\xaa\x8c\xa6\x8e\xbc\x08\x14\x57\xfd\xb2\x42\xef\x38\x17\x3c\xde\x85\xc4\x54\x89\x24\xdd\x7d\x1e\x6f\x13\x69\x86\xde\xaa\x7a\x39\xfb\x6a\x09\x7e\x11\x70\x09\xe2\x17\x69\x5a\x5b\xfa\x9a\x49\x61\x5c\x2a\x9e\x27\xe9\x0e\xbc\xe8\x2c\x17\x27\xc1\x77\x82\xf5\x4d\xf9\x1e\x40\x55\x4c\x24\x0a\xa5\x16\xab\x32\x45\x5f\x1b\x4e\xa3\xae\x01\xb4\x0e\x3f\x5c\x4c\xcc\x36\x5b\x10\xe5\x7c\xf0\x61\x14\x72\x7a\x0c\xec\x7c\xf3\x1c\x38\xe8\xfe\xc6\x13\xa6\xe5\x00\xed\xdd\xa8\x07\x9b\xe0\xf3\xc0\x3d\x82\xb3\x6b\x2f\x79\xb4\x98\x7d\xbf\xd7\x65\xcf\x3b\x76\x55\x62\xa7\xc7\x95\x8b\x1a\xfa\x4d\xc4\x6e\x25\x26\x12\x9a\x43\x1a\x88\x3e\x0e\x5a\x6a\xcc\x13\x32\x63\x08\xd6\xda\x1e\xeb\xab\x61\x50\xe6\x5a\x97\x68\x25\xd9\xbc\xfc\xfd\xef\xff\x20\xd8\xef\x21\x71\x8a\xbc\x6f\xbc\x6d\x01\xca\x34\x2c\x1d\x0c\x94\xfb\x80\x40\x3e\xb5\xc6\x88\xb0\x36\xc0\xa3\xcd\x52\x06\xc8\x20\x8f\x36\x4c\x97\x4b\xc4\xc3\x71\x0a\xd8\x73\xe9\x18\x49\xdf\x2a\x80\xb6\xe1\x3e\x66\x6b\xff\xbf\x24\x3c\x8d\xac\xe0\x73\x99\x29\x24\xcd\x05\x20\xe1\x52\xb0\x2d\xcf\xef\x40\xe4\x8d\x94\xbc\x19\x2f\xd8\xf3\x44\x4c\xab\xc1\xea\x17\x95\xfa\xd0\xf5\x00\x92\x61\xb2\xbc\x94\xd2\xaa\x56\x30\xe3\x86\xf9\xc8\xf1\x64\x2e\x97\x65\x78\xd2\xaa\x84\x9e\xfd\xd4\x82\xf0\x33\x18\x59\x05\x0c\x09\x54\x29\xae\x03\x85\x71\x36\x20\x06\x3d\x97\x4f\x14\x84\xee\x0a\x6f\xbd\x27\x8f\xc3\x86\xae\x02\x94\x36\x34\x37\x14\x56\x84\xe1\xc0\x69\x0f\x5b\xfa\x7b\x50\x57\x9c\xb0\x1f\x93\x7b\x31\x61\x37\x19\xcf\xef\x26\xec\x35\x5e\x26\xfd\x49\x2d\xf7\x46\xac\x1e\x23\x6a\xeb\x0e\x56\xc7\x32\xde\x63\xfc\x73\x12\x30\x33\x07\x17\x98\xcd\xf8\xa2\xc5\xb7\x15\xc0\x6b\x1f\xdd\x09\xd9\x69\x2c\x2d\x2a\xb9\x93\xbe\xfb\xb1\xce\xdd\xdd\xa0\xea\xce\x53\x78\x7d\xdf\xf6\x1e\x16\xe5\xac\xb6\xe1\xfc\x8c\x67\x83\xda\xd3\x3c\xba\x3b\x01\x5f\x55\xe5\x2e\xaf\x5a\xd3\xe5\x1a\xce\x0a\x44\x3f\xa3\x8f\x56\xcb\x44\x1e\xea\x8a\xdb\x0f\x2f\x32\xa5\xd2\x56\x8f\xfc\x51\x3b\xb0\x11\x9f\x1f\xda\x79\x17\x98\xc1\xa5\x43\x3f\xd5\xf6\xa2\x8f\xf5\xfa\xc8\x30\x86\x81\x81\x8a\x05\x66\x53\x5c\xc2\x15\xa9\xef\x8e\x50\xd2\xcf\xd8\x1a\xc4\x9c\xa3\x6b\x6a\x15\x60\xb9\x3d\x33\x44\xdc\x05\xbd\x43\xac\x73\x23\x0a\xad\x9b\xdf\xe9\x38\x28\x40\xb9\x8b\xa4\x8d\x77\x65\xec\xe2\x42\xe9\xf4\xc6\xd5\x12\xd6\xdc\x6e\xe9\x36\xeb\x67\x1f\xeb\xac\x4d\x71\x5e\x44\x29\xd7\x03\x71\xc4\xad\x76\xe7\x82\x0a\x3a\x83\x72\x86\xdb\xcc\x1f\xe1\x16\x60\x3b\xd0\x85\x9a\xcb\x99\x63\x5d\xf5\xce\xb7\x3b\x30\xa0\x99\xc5\xa3\x52\x63\x68\x30\x95\xc8\x53\xf4\x4e\x98\x2e\xa3\x0d\x24\x4b\x55\xed\x54\x68\xb7\x9a\x2b\x76\x32\x97\xc6\x7d\x45\xe5\x2f\x0e\x70\x97\x07\x10\x89\x49\xfe\x2a\x9c\x7f\x4c\x98\xfc\xd0\x25\x5e\x72\x33\x34\x4a\xb6\x1e\x1f\x6c\xde\x1a\xee\x74\x7e\x73\x2f\x33\xe3\x39\x4c\xe7\xde\xed\x49\x50\xcf\xdf\x6e\xb7\x74\x1e\xd1\x61\xc3\xc2\xe3\x53\xcd\xd2\xa6\xc9\x4a\x44\xbb\xa8\x41\x43\x55\x01\x99\x3d\xde\x2d\xc8\x61\x97\x00\x7d\x74\x45\xed\xb1\x93\x5f\x1a\xf4\x1a\xac\x0b\x99\xf3\x8f\x89\x17\xee\x60\xcc\xf9\x67\x8f\xe3\xee\x01\xd1\xfc\x06\xad\xfd\xa7\x8c\x29\xf6\x93\xe5\xfc\x2e\xfc\x5f\x6b\xbf\x2c\x7a\x15\x62\x18\xe4\x35\xb7\x62\x66\xbf\x2d\x7a\x80\x24\xae\x1f\xf2\x9a\x2c\x01\xc3\x96\x02\x91\x30\xc4\x8e\x20\x62\x44\x4a\x10\xbd\x6a\xfb\xeb\x2c\x55\xba\xcc\xfb\x17\xff\x75\xb5\xd6\xf6\xeb\x2d\x84\xb9\x30\xd9\xb6\x4b\x01\xdc\x1f\x43\xc1\x71\xf8\xd8\xe2\x2f\x6a\xb9\x00\x24\xe8\x71\x2b\xbc\xad\x38\x2b\xc1\xe5\xf0\x04\x54\x55\x7f\xe2\xba\xc9\x04\xf0\xb6\xf9\xd0\x86\x3f\xbf\xd4\x66\x98\x0b\x2c\xcf\xa5\xa5\xb1\xc7\xbc\xf3\x3c\x17\xc0\xb7\x9d\x0b\x50\x96\x63\x19\xcf\x1d\x1c\xcb\x9e\xb0\x83\x08\x9a\x87\xec\x85\xb9\xa2\x90\xf2\x4d\x71\xbb\xa5\x10\xd2\xf5\xf6\x98\xa3\xa9\x39\x6d\xd6\x7b\x9f\xb0\xb8\x0f\x82\x45\x98\xe6\xd5\xa1\x82\xd9\x78\x2f\x88\x29\x82\xdf\xb2\x16\xa1\x0f\x55\x73\x2d\x2a\x4b\xb3\x72\xbf\xff\x4d\xe5\x23\xb5\x9e\x60\x6b\x14\x77\x95\xf0\xf3\x20\x44\xc4\x63\xdc\x36\xbe\xe7\xc5\x06\x03\xa3\x5b\x55\x08\xb4\x99\xc8\xb5\x85\xf3\x05\xef\xec\x96\xa9\x5a\x82\xa4\x9b\xf9\xa5\xeb\xf8\x1c\xd1\xd2\x1e\xd4\x75\xcd\x01\x1b\x62\x19\x8c\x35\x81\x7c\xf5\x5c\x68\xa0\x2d\x6a\xde\xf1\x0f\xcd\x9e\x18\x17\xbc\x6d\x56\xd7\x18\xfd\xd7\x8d\xe0\x6d\x53\xe7\xc2\x2c\x6b\x80\xd2\x9f\x1f\x90\xdf\x77\x1e\xe6\x7c\x1b\xe7\x80\x28\xbf\x09\x44\x83\xac\xbf\xb5\xf6\x5a\xe5\xf0\xb9\x9c\xe1\x2f\xc1\x26\xc0\xbd\x9e\x93\x43\xab\x93\x48\xac\x5b\x7f\x98\x04\xce\x66\x21\x3e\x9a\x4e\x45\x13\x7f\x5e\x85\xe0\xd2\x04\x72\xae\x65\x91\xe4\xe6\x34\xa2\xc1\xd9\xd2\xe5\xf2\xc4\xd3\xfb\xa8\x1c\xdc\x33\x60\x7f\xca\x38\x84\xc6\x80\xf5\xeb\xa4\x65\x1b\xc6\x7b\x1d\xaf\xcb\x62\x69\x30\x79\x4a\xc6\x1f\x4e\xd5\xc8\x2f\xe1\xda\xee\xca\x31\x87\x23\x88\xca\x5a\x6e\x03\xdc\xec\xfa\xec\x05\x28\x47\x41\x7e\xf8\x35\x1e\xc7\xbf\xf6\x06\x1e\x62\x49\x86\x6e\xdd\x70\xfc\x9e\xcb\xff\x6b\xf7\x86\xee\x94\x87\x11\x33\xdd\xf4\x8c\xd9\xa2\x3a\x53\x31\x2a\x75\xb3\x21\xc9\xc0\x09\xec\xae\x54\x63\xca\xb7\x95\xca\x5d\x80\x24\xd0\x49\x51\x94\xcc\x0f\xbf\xde\x27\x3a\x20\xcd\x87\xaf\xdd\x08\xc1\x5e\xe6\x62\xf5\xf2\x63\x2e\x56\x0b\x3b\xd2\x53\x68\xd0\xd4\xb4\xa8\x49\x9d\x3f\x70\x72\xe8\x4c\xc9\x76\x0a\xd1\x3d\x14\xbf\xb5\x26\x61\x39\x41\x9b\x92\x15\xf3\x72\x9a\x10\x45\x28\xa3\x48\x88\xb8\xce\xe9\xdf\xa8\xd9\x17\xdf\xe6\xba\x70\xb4\x03\x80\xaa\x1d\x32\x94\xff\xfc\xdb\x5b\xa5\xcf\x86\x6c\x6f\xb7\xd5\x78\x8a\x35\xf6\x5c\xba\x0d\xaf\x3b\x31\xe5\xcb\xe6\xce\xc0\x00\xea\x8c\x3f\x48\x62\x83\x1a\x75\x95\x31\x6c\x5b\xab\x45\x97\x82\x6d\xad\x81\x20\xf6\xab\x4c\xda\x9b\xa3\xc4\x69\x36\x4e\x02\xb9\x73\x9e\xa6\xa1\x32\x89\x8f\xff\xce\xa5\x8f\x12\x1a\xaf\x35\x4d\xed\x95\x50\xc5\xdf\x20\xee\xaf\x18\xe8\x0a\xc4\xc4\x52\x17\x11\xe9\x27\xa1\x09\x4e\x30\x1a\xe7\x63\x66\xfb\x56\xf3\x63\x1d\x22\xbf\x31\xd6\x86\x3d\xb8\x1d\xfc\xec\xe2\x4e\xec\x46\xd7\xb5\xfd\xe6\xdc\x4b\xf9\x6e\x60\x31\x5b\x2b\x1b\xf1\x3c\xb7\x39\x48\xf4\x55\x66\xce\x4a\x2b\x1e\x55\xae\xcd\x3a\xea\xb9\x11\xd1\x5d\xa6\x12\x39\xda\x16\x05\xf5\x31\x8e\x54\x61\xf6\x33\x5f\x9a\x3b\x1d\x0e\xda\x1c\x2b\xfe\x24\x36\x44\x03\x38\xcd\x02\xeb\x3d\xa5\x21\x67\x4e\xab\xb8\x7b\xda\x3d\x76\xfc\x42\xf8\xbd\xe1\x09\x62\xb1\xfd\x97\x14\x68\x35\x9a\x1e\x65\xe5\x16\x8b\x37\x72\x53\x07\x76\x36\x67\x15\x22\xd0\xd6\x2e\x85\x10\xe4\x6f\x91\xa1\xdf\x22\x43\xff\xe0\x91\xa1\x2f\x19\x16\x02\x64\xe1\x53\xc6\x84\xda\xc9\x06\x7e\xdb\x5e\xbf\xad\xed\x15\x39\x45\x31\x33\x6e\x4c\xd7\x52\x55\xaf\xfd\xeb\xc7\x75\xae\x60\x41\x4d\xf4\x88\x7e\xfe\x82\xee\x41\x8b\xad\x1a\x67\x77\x07\xef\x57\xfd\xe8\x09\xef\x80\xf8\xc3\x40\x90\x48\xdf\x58\xbe\x61\x10\xb8\x08\xa7\x8e\x31\x3c\x83\xaf\x5f\xba\xb9\x4a\xbe\xa9\x4b\xe4\x21\x0e\x86\xb1\x8c\xee\x5a\xf9\xd2\x5a\x44\x29\xd0\x80\xf7\x58\xc6\x80\xc3\x9a\x17\xcf\xb4\xeb\xf5\xaa\x05\xb4\x08\xf7\xb7\x89\x2e\x7e\xae\x29\x24\x1e\x26\xb1\xf8\x64\x48\x28\x5b\x55\xac\x66\xf0\x46\x2f\x80\xe7\xba\x0a\xb1\x51\x2b\x3b\xe7\x60\x93\xb3\x9a\x58\xa6\xde\x63\xf6\xab\x8f\xae\xbf\x3e\xa2\x1f\xfd\x90\xf3\x2c\x13\xb9\xc5\x8d\x34\xa0\x3d\x20\x30\x05\x5f\x01\x85\xb8\x8d\x40\x99\xda\x9a\x37\x62\x4c\x49\xad\x68\x78\x0c\xba\x6e\xda\x3e\x72\x97\x65\x9a\x76\x8e\xdc\x7e\xdd\x9a\xcb\x0f\x6f\xdf\x2e\x7e\x9e\xbd\xfd\x70\x6e\x9b\xdf\xaa\x03\x13\x3c\xd6\xd9\x27\xae\x26\xd4\x27\x5e\x69\xce\x7c\x56\x58\xa9\x5c\xe5\x5b\x8d\x87\x91\x32\x4d\xab\x1a\x41\x73\xf9\x91\xca\x01\x58\x36\xea\x1f\x9a\x7e\x63\xbd\x1d\x57\xfd\x3e\x3c\xf6\xd1\x14\xfe\x11\xdf\x3d\x61\xbe\x11\x2f\x41\xc9\x8e\x14\xb2\xda\xfb\x95\x72\x3e\x8e\x58\x0e\x08\x02\xee\x5a\x0e\x8f\xad\x82\x76\xd8\xf2\xf8\x20\x81\x7f\x59\xc4\x56\xbc\xec\x51\x56\x07\xf6\xdd\xc7\xea\x7d\x82\xb3\xe5\x31\x06\xd7\xa0\xdc\x09\x6a\x57\x81\x22\xaf\x97\x77\x9a\x4b\x3c\xab\x9a\x3a\x15\xaa\xbb\x4e\xec\x82\xd0\x54\x29\x97\xeb\x92\xaf\x85\x9e\x30\xfb\xf1\xb9\xdc\x26\xeb\x0d\xb2\x49\x94\x99\xc7\x25\x73\x26\x81\x74\xa4\x36\x85\x6a\xb8\xe4\x44\xce\x25\xb5\x49\xae\x7d\xf1\x88\x91\xfd\xd3\x8d\x6b\x0e\x81\xd1\xb1\x20\x92\xdf\x92\x73\x89\x83\x8b\x2c\x17\x36\x62\x05\xfe\x3b\x2f\xea\x53\x97\x43\x8c\x19\x25\xaa\x8d\x4d\x5f\x43\xec\x6c\x2e\x5d\x22\x2a\x7a\xf8\xd4\x86\x40\xa6\x01\xab\xb4\xdf\x9e\xd8\xc1\xb0\x6b\x82\xea\xd6\x3e\xeb\x8f\xde\x03\xcc\x82\x5b\x8c\xd0\xda\x6d\x9a\xb1\x81\xa7\x3a\x1e\x18\x8e\x2e\x76\x02\xc8\x3e\x6e\xaf\x8d\x6d\x17\x3e\xd3\x09\x41\x52\xe5\x32\x1d\x51\x25\x7c\xbe\xb7\x52\x68\x92\xfb\x2b\x35\xe0\xc8\x78\x5d\x5b\x5a\x66\x9a\xf6\x7d\x76\xa9\x54\xc7\xb8\x3c\x62\xe0\xb7\x52\x29\x7a\x61\x5f\x67\x94\x51\x71\xc8\x7c\x19\x90\x92\x57\xef\x22\x6b\x7d\xfa\x2a\x94\x26\xfa\xa0\xea\x78\xff\x69\x70\x8d\x9c\x87\x40\x9b\xdd\x28\x0b\x4b\xfb\x5c\xc5\xc0\x76\x98\x49\x8a\xfb\x59\xd1\xda\x04\xcd\x8b\x59\x3c\xa8\x28\x6b\xe6\xff\xc4\x4d\xa2\x89\x1f\xb9\x09\x54\x32\x2a\x73\x6d\xcc\x25\xd9\x3b\xb2\xda\x2a\x67\x7c\x2e\xad\xfa\x81\x35\xc7\x33\x0b\xa2\xca\xdd\x5f\x31\xcd\x31\x43\xf6\x70\xf0\x58\x0b\xa6\xa4\xb0\xd6\x70\x2e\xad\xd2\xf1\x84\xf1\xa5\xb6\x02\xc2\x5c\xee\x9c\xaa\x6f\xe2\x24\xdb\xb8\x64\x80\x4e\xdb\x6f\xf3\x6a\x6e\x40\x65\x9f\xff\x9d\xf9\xbf\xbf\xff\xee\xff\x07\x00\x00\xff\xff\x2f\x4b\xe3\x6e\xf0\xa6\x04\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xf9\x73\x2b\xb7\x95\x37\x8c\xff\x3e\x7f\x05\x9e\x3b\x4f\x95\xed\x44\x8b\x93\xcc\xe4\x9b\xd2\xd4\x53\xdf\x97\x96\x78\xaf\xf5\x58\x5b\xb4\xd8\xe3\x77\x98\xa2\xc1\x6e\x90\x44\xd4\x0d\x74\x00\xb4\x74\xe9\x54\xfe\xf7\xb7\x70\xb0\x34\x7a\x23\x9b\x8b\x24\xea\xba\x67\xaa\x62\x5d\x76\x37\xd6\x83\x83\xb3\x7e\xce\x3f\xff\x0d\xa1\x0f\xf2\x19\xcf\x66\x44\x7c\x38\x41\x1f\xfe\x78\xf4\xed\x87\x03\xfd\x1b\x65\x53\xfe\xe1\x04\xe9\xe7\x08\x7d\x50\x54\x25\x44\x3f\x9f\x26\x0b\x45\x68\x9c\x1c\x4b\x22\x9e\x68\x44\x8e\x71\x9c\x52\x76\x94\x09\xae\x38\x7c\x88\xd0\x87\x27\x22\x24\xe5\x4c\xbf\x6e\xff\x44\x8c\x2b\x24\x89\xfa\xf0\x6f\x08\xfd\x0b\x9a\x97\xd1\x9c\xa4\x44\x7e\x38\x41\xff\x63\x3e\x9a\x2b\x95\xb9\x06\xf4\xdf\x52\xbf\xfb\x37\x78\x37\xe2\x4c\xe6\xa5\x97\x71\x96\x25\x34\xc2\x8a\x72\x76\xfc\x77\xc9\x59\xf1\x6e\x26\x78\x9c\x47\x1d\xdf\xc5\x6a\x2e\x8b\x39\x1e\xe3\x8c\x1e\x3f\xfd\xe1\x18\x47\x8a\x3e\x91\x71\x82\x73\x16\xcd\xc7\x59\x82\x99\x3c\xfe\x27\x8d\xf5\x1c\xff\x4e\x22\xf5\x2f\xf8\x47\xcc\x53\x4c\x99\xf9\x9b\xe1\x94\xfc\xcb\xb7\x83\xd0\x87\x19\x51\xc1\x3f\xf5\x6c\xf3\x34\xc5\x62\xa1\x57\xe4\x23\x51\xd1\x1c\xa9\x39\x41\xa6\x1f\xe4\x96\x88\x4f\x11\x46\x27\x82\x4c\x4f\x7e\x11\x64\x3a\x76\x0b\x7d\x64\x16\xf8\x02\x46\x73\x93\x60\xf6\xcb\x91\x5d\x26\x68\x99\x67\x44\xc0\xdc\xce\x63\xdd\xfa\x27\xa2\x06\xd0\x6c\xf1\x7e\xf8\xb6\x20\x32\xe3\x4c\x12\x59\x1a\x1e\x42\x1f\xfe\xf8\xed\xb7\x95\x9f\x10\xfa\x10\x13\x19\x09\x9a\x29\xbb\x97\x03\x24\xf3\x28\x22\x52\x4e\xf3\x04\xb9\x96\xc2\xc1\x98\xa9\xea\x8d\xc5\xb5\xc6\x10\xfa\xf0\xbf\x05\x99\xea\x76\xfe\xfd\x38\x26\x53\xca\xa8\x6e\x57\x1a\xfa\x09\x46\x5b\xfa\xea\x5f\xff\xd6\xf4\xf7\xbf\x82\x19\x65\x58\xe0\x94\x28\x22\x8a\x1d\x37\xff\x57\x99\x8b\xde\x23\xdd\x79\xb1\x8f\xd5\x81\x57\x66\x7b\x85\x53\xa2\xf7\x44\xef\x94\xfd\x02\xfe\x16\x44\xf2\x5c\x44\x04\x4d\x48\xc2\xd9\x4c\x22\xc5\x6b\x6b\x40\xa1\x05\x4d\x5e\xd5\x27\x82\xfc\x23\xa7\x82\xe8\xbd\x52\x22\x27\x95\xa7\x6a\x91\xc1\x20\xa5\x12\x94\xcd\xc2\xa5\xf8\xd7\x41\xa7\xa9\x19\xaa\x5c\x63\x66\xe6\x83\xd6\x89\x8d\xd8\xc0\xbd\x12\x61\x86\x26\x04\xe9\xb3\x48\x63\x22\x48\x8c\xb0\x44\x18\xc9\x7c\x22\x89\x42\xcf\x54\xcd\x29\xd3\xff\xce\x48\x44\xa7\x34\x72\x6b\xb6\x3f\x6b\x03\x7f\x2e\x5f\x99\x07\x49\x84\x1e\xf8\x13\x8d\x49\x8c\x9e\x70\x92\x13\x34\xe5\xa2\xb4\x3c\x47\x23\x76\x3f\xd7\xeb\x90\x4e\x28\x83\x93\xa7\xd7\xd2\x51\xc8\xef\xdd\x72\xfd\x1e\xe9\xfe\x50\xce\xe8\x3f\x72\x92\x2c\x10\x8d\x09\x53\x74\x4a\x89\xac\xb6\xf6\x7b\x0e\xfd\xe3\x04\x1d\x22\xbd\xce\x44\x28\x58\x6f\xce\x14\xf9\xac\x24\x3a\x44\x09\x7d\x24\xe8\xab\x0b\x2a\x15\x1a\xdc\x9c\x7f\x75\x80\xbe\x32\xe7\x05\x01\x6f\xfa\xea\x15\x56\xd8\xff\xfd\xb7\xe0\xe8\x29\x3c\xab\x1e\xba\x0f\x03\x7d\x9a\xef\xcc\xd5\x50\xb4\xf0\xb7\x7f\x0b\xdb\xb1\xfb\xb5\x9c\xdf\x16\xcc\xd6\x72\xda\xae\xfc\x15\x96\xa9\xcc\x5a\xa5\xde\xa1\x6d\x39\xab\x6e\xb7\xca\x5a\xe5\xfb\xe2\xad\x7a\x0a\x2f\xcd\x5f\xb7\x61\xae\x58\x01\xd5\x63\xca\xcc\x21\xf1\x67\x46\x48\x7d\x4e\x1c\xf5\xee\x09\x4b\xd9\x86\xd7\x06\x33\x0b\xd8\xad\xe3\xa2\xc1\xaa\xec\xe1\xbc\x13\x9a\xd2\x55\xfb\x7b\xce\x62\x2d\x72\x59\x66\xc7\xf2\x74\x42\x84\x5e\x06\xc7\xf6\x60\xb6\x13\xcd\x06\x55\x2e\x18\x89\x3b\x4c\xf3\x1f\x39\x11\x8b\x25\xf3\x9c\xe2\x44\xb6\x4d\x94\x32\x45\xb4\x7c\x5b\x79\x3c\xe5\x22\xc5\xca\xbe\xf0\xe7\xff\x58\x77\x21\x14\x7f\x24\xab\xf6\xff\xdc\xec\x66\x84\x25\x90\x41\x9a\x27\x8a\x66\x09\x41\x19\x9e\x11\x69\x57\x24\x4f\x94\x3c\x80\xd7\xb4\x4c\x4d\xc4\xa1\xbf\x81\xa0\x07\x77\xf3\xe6\x12\x7e\x41\x53\x2f\x40\x32\xf2\x59\x41\x4b\x23\x06\x77\x2f\x2c\x51\x78\xa3\xbc\xc0\x52\x6e\x46\x33\x92\x0b\x35\x9e\x2c\x8e\x1e\x49\xad\xdf\x56\xca\xc1\x0c\x61\xa5\x04\x9d\xe4\x8a\xe8\x79\xeb\x36\xdc\xdd\x09\xec\xd1\x5c\xd0\x5d\x58\xc3\xdb\x4d\x38\xa6\x82\x44\x30\xb7\x75\x0e\x8c\xff\x4a\xcf\x5b\xeb\x2f\x0b\x33\xfb\x47\xb2\x00\x79\xa4\x61\x05\xfc\x96\x8f\xd8\x88\xa1\x43\x74\x36\xbc\x3b\x1d\x5e\x9d\x9d\x5f\x7d\x3a\x41\xdf\x2d\x50\x4c\xa6\x38\x4f\xd4\x01\x9a\x52\x92\xc4\x12\x61\x41\xa0\x49\x12\x6b\x99\x43\x0f\x86\xb0\x98\xb2\x19\xe2\x22\x26\xe2\xe5\x96\xb1\xf2\x94\xb0\x3c\xad\xdc\x2b\xf0\x7b\x31\xfa\xca\x17\x5a\xc4\xf0\x8f\x4a\x4f\xfe\x56\x5b\x60\x98\xb1\xee\x3b\x68\xed\xd5\x84\x9a\x68\x4e\x93\x58\x10\x76\xac\xb0\x7c\x1c\x93\xcf\x24\xca\xcd\x9d\xfc\xcf\xf2\x0f\x63\x2d\x99\xf2\x98\x94\x7f\x29\xfd\xa3\x10\x85\xd6\xfe\xd4\x6b\xa9\x6b\x7f\x09\x3a\x6d\xb7\xef\xe0\x17\x1a\x37\xbe\x0d\xbf\xac\x98\x83\x7b\x67\xc9\x60\xdd\x2b\xad\xa3\x72\x2f\x58\x89\xaf\xf1\x1d\x41\x94\x58\x8c\xb1\x52\x24\xcd\xd4\x9a\xfa\x3a\x46\x89\x96\x2b\x97\xc9\x91\x57\x3c\x26\x43\xd7\xdf\x2f\xc8\x88\xb3\x24\x46\x93\x85\xe5\x5a\x53\x22\x08\x8b\x48\x7b\x0b\xf7\x58\x3e\x16\x2d\xac\x12\x46\x4b\xfd\xc9\x8f\x5c\xe8\xcf\xdf\x83\x40\x5a\x1a\xf8\x6b\xc8\xa4\x9b\x9e\xb8\x2f\xce\x42\xb0\x21\xff\xe8\xed\x09\xdb\xaf\x64\x57\xeb\x03\x17\x48\x2e\xa4\x22\xe9\x4a\x3b\xc4\xfb\x59\x08\x7b\x41\xec\xeb\x80\x2b\x77\xd4\x6f\xe0\xd4\x97\x6f\xdc\xfe\x78\xaf\xb1\x64\xbb\xb2\x22\xee\xfb\x3c\x9d\x0f\x67\xf9\x54\xef\xdc\xf6\x05\x4e\x8c\x77\x31\xcd\x92\x2c\xb8\xeb\x41\xbe\x90\xb9\xa1\x75\xaf\xdc\x6a\x8f\x61\x00\x2b\x14\xcd\xb2\x1d\xda\x9f\x3f\xfd\x69\x68\xa1\x31\xe6\x38\x35\xa7\x32\x30\x56\xa1\x88\x0b\x23\x0b\xc6\xf6\xbc\x1b\x5d\x73\x70\x3f\xb8\x1b\xde\x9f\xa0\x01\x8a\xb1\xc2\xfa\x80\x0b\x92\x09\x22\x09\x53\xa0\xc7\xeb\xef\xd5\x02\xa5\x3c\x26\x89\xd1\x38\x3f\x6a\xc9\x17\x9d\x61\x85\x4f\xb1\xc2\x09\x9f\x1d\xa1\x01\xfc\x53\x7f\x4c\x25\xc2\x89\xe4\x08\x3b\xb2\x22\xb1\x6b\x02\xb3\xd8\xb1\x16\x8c\x22\x9e\x66\x34\xf1\x36\x78\x6f\x5c\xa1\x2c\xa6\x4f\x34\xce\x71\x82\xf8\x44\x73\x15\xad\x21\x0f\x9f\x08\x53\x39\x4e\x92\x05\xc2\x49\x82\x6c\xb7\xee\x05\x24\xe7\x3c\x4f\x62\xdd\xae\x1b\xa5\xa4\x29\x4d\xb0\xd0\x2a\xb8\x19\xed\xb5\x6d\x0b\xdd\xcf\x89\x1f\x2b\x8c\x4b\xaf\x66\x8a\x1f\x89\x44\x54\xa1\x8c\x4b\x49\x27\x49\x71\xe6\x1f\xce\x11\x8c\xfb\xf4\xe2\x1c\xf4\xf9\x48\x21\x6e\x78\xa8\xeb\xdc\xda\x6f\x5c\x8f\x29\x66\x8c\x40\xc7\x5c\xcd\x89\xb0\xdd\xdb\x97\xdf\x5a\x35\x7f\xb8\xba\xbb\x19\x9e\x9e\x7f\x3c\x1f\x9e\xd5\x75\xf3\xfb\xc1\xdd\x0f\xf5\x5f\x7f\xba\xbe\xfd\xe1\xe3\xc5\xf5\x4f\xf5\x27\x17\x83\x87\xab\xd3\xef\xc7\x37\x17\x83\xab\xfa\x43\x4b\x56\x9d\xd5\xfc\x70\x64\x6b\x9e\xad\xde\xa6\xf9\x52\x36\xcd\x83\x2f\xd7\xa8\x39\xa5\x09\xe8\xa0\x9d\x0d\x9a\xde\x86\x60\xbf\x44\x19\x96\xd2\x48\x46\x66\x04\x47\x23\x76\xc9\x85\x66\x60\x53\xae\x79\x84\x96\x9e\x94\xc8\x23\x45\xd9\xcc\x7f\x74\x82\x46\xf9\xb7\xdf\xfe\x29\xba\xa0\xec\x11\xfe\x22\xfb\xb8\x38\xbd\xc5\xb7\xb7\xf8\xfe\xb6\x2c\xbe\x5a\xf4\x39\x0e\x0d\xbd\xbb\x0d\x19\xd2\xc2\x05\xcb\x72\x05\xa2\x04\xcf\x95\xfe\x53\x77\x09\xe4\xb1\x24\x70\xa8\x9b\x41\xf1\x13\x51\xfe\x45\x2d\xda\xbc\x07\x3b\xe2\x4f\x5c\x3c\x4e\x13\xfe\xec\x07\xfe\x89\x28\x3d\xf6\x5b\xdb\x4b\x1f\x4a\xd4\x87\x12\xbd\x6d\x28\xd1\x5e\x19\xf3\x5e\x9e\xf9\x95\x2d\x7f\x86\x03\xb6\x78\xb2\x5a\x1d\x55\x2d\x7e\xa8\xc0\xcd\xf4\x2a\x5c\xb3\xec\xcc\x59\xc1\x39\x4b\x2f\xbf\x17\xee\x59\x1a\xf4\xeb\x73\xce\xdf\x84\xbf\xa5\x77\xa7\x6c\xb8\x50\xef\x92\xc1\x76\xbc\x3b\x5e\xcd\x19\xf2\xf2\x0c\xbf\x16\xdb\xb0\x4e\x30\xc3\x1a\xd1\x0b\x9d\xc3\x15\x56\xc4\x27\x34\x06\x24\x34\x45\x20\xd4\x43\x0e\x1a\x63\x0c\xb6\x0b\x2a\xd8\xf4\x6e\xea\x1e\x26\xf0\x89\xa8\xd2\xcb\xef\xe5\x6e\x2a\x0d\xfa\xf5\xef\xa6\xdf\x68\x74\x40\x1f\x0e\xf0\x82\x4b\xf7\xa5\xdf\x68\xfb\xeb\xf0\xff\x0d\x78\xf8\x7b\x97\xfe\x5a\x6b\xf4\x65\xf9\xf0\xbf\x54\xa7\xfd\xfb\xf4\xd2\xf7\x6e\xf9\xde\x2d\xff\x16\xfe\x93\xf7\xe7\x96\x7f\x59\xf5\xb4\x38\x5e\x63\x47\x0b\x56\x5f\x0b\x0e\xe5\xbf\x3a\x38\x69\xe0\x2f\xa7\xf2\xad\x1b\x34\xde\xaa\xc3\x9d\x15\xe3\x1b\xc2\x11\xfa\xc5\x12\xd2\x0a\x75\xae\xf6\xdd\x7b\x50\xe7\xea\x83\x7e\x79\x1d\xee\xcd\x98\xef\x0b\x5d\x9e\xef\x84\x0d\xac\x7f\x5b\x7e\xc1\x32\x79\x2f\x8b\xbf\x7c\x36\xfe\xde\x4c\xe8\xfd\xc8\xde\x6f\x70\xf1\x76\xbc\x75\x77\x9e\x93\xd5\x70\xcd\x06\xb7\xd3\xaa\x0c\xab\xea\xd7\x94\xc8\x3f\xbe\xcb\xfb\xf6\x35\x92\xac\xfa\x0b\xb7\xbf\x70\x6d\x53\xfd\x85\xfb\x05\x5f\xb8\x7b\x07\x7f\xb3\x37\x11\xa0\x7d\x10\x79\x0f\x8c\xd1\xc7\x90\xef\x70\x71\xfa\x18\xf2\x3e\x86\xfc\x37\x16\x43\xbe\x8d\xf6\xb4\x29\x16\xe5\x5b\xe8\x51\xbd\x1a\xd5\xab\x51\xe1\xef\xbd\x1a\xd5\xab\x51\xbd\x1a\xf5\x85\xa3\x88\xf6\x3a\x54\xf7\x85\xe8\x75\xa8\xce\x4b\xd5\xeb\x50\x4b\x16\xa7\xd7\xa1\x7a\x1d\xea\xb7\xa5\x43\x91\x27\xc2\x94\x84\x64\xb4\x50\xa3\xf8\x90\x71\xd9\xae\x09\x85\xdc\xa1\x41\x0b\x82\x36\xcb\x49\x61\x10\xb8\xf4\x0b\x9a\x63\x89\x78\x14\xe5\xa2\x72\x06\xaa\x7a\xd0\xa9\x20\x58\x11\x68\x41\x7f\xf8\x1e\xf4\x9f\xfa\x74\x5f\x2b\x06\x7f\xc2\xe3\x1a\xb5\x9b\x83\xd0\xf4\x64\xb9\x3c\xb2\xb3\xa9\xff\x23\x27\xdd\xd4\xbf\x17\x24\x6a\x85\xe5\xe3\x8e\x89\xba\x94\x6b\xb1\x11\x51\x43\x0b\xef\x85\xa8\xeb\xd3\xfd\xcd\x10\x75\xd3\xd4\xf7\x81\xa8\x9f\x6d\x1e\xff\x8e\x09\xbb\x06\x0f\xb0\x11\x71\xfb\x56\xde\x0b\x81\x37\x4f\xfb\x37\x43\xe4\x6d\xd3\x7f\x5b\x42\xf7\x29\x92\x9d\x49\xfc\x5e\xd0\xd9\x4c\xab\x19\xa0\xe1\x69\x52\x5c\x5d\x23\xa8\x48\x0a\x5c\x49\xd6\xfe\xd5\xf7\x40\xd2\x7e\xb0\x66\xec\xbf\x19\x5a\xae\xcd\x7b\x4f\x88\xf8\x58\x90\x88\x3f\x41\xbd\xb0\x6e\xc4\x7c\x4b\x80\x82\x81\x5f\x67\x82\x3c\x51\x9e\xcb\x64\x71\x28\x72\x86\x1c\xf3\x47\xbe\x79\x63\xad\x7e\xa6\x49\x82\x38\xd3\xfa\x97\xc2\x42\xb9\xc7\x5a\xff\x16\x3c\x85\x53\x91\x60\xa9\xd0\x23\xe3\xcf\x0c\x4d\x31\x4d\x72\x41\x50\xc6\x29\x53\x47\x23\x76\xce\xd0\xad\x19\x23\xe4\x0d\x1c\xa0\x5c\xea\xb3\x14\x61\xc6\xb8\x42\xd1\x1c\xb3\x19\x41\x98\x2d\x6c\x02\x6e\x41\x19\x88\x0b\x94\x67\x31\xd6\x8a\xef\x9c\x54\xa3\xf4\xfc\x18\xc1\x7c\x47\x25\xa2\x12\x91\xcf\x4a\x90\x94\x24\x0b\xdd\x87\xa6\x7d\xc5\x91\x5d\x1f\x33\x54\x9b\xce\x47\x84\xe0\x42\x42\xc6\xc1\x64\xf1\x2b\x66\x8a\x32\x82\x40\x51\x92\xc6\x34\x77\x88\x2e\xb8\x04\xb3\xcd\x0f\x7f\x91\x28\x4a\x72\xa9\x88\x38\x40\x93\x7c\x26\xb5\xa6\x98\x25\x58\x4d\xb9\x48\xf5\x08\x29\x93\x0a\x4f\x68\x42\xd5\xe2\x00\xa5\x38\x9a\x9b\xb6\x60\x0d\xe4\xc1\x88\xc5\xfc\x99\x49\x25\x08\xf6\xbd\xbb\x87\xe8\xeb\xf0\x99\x21\x00\xf9\xcd\x01\xa4\x1d\xd2\x54\xab\xbb\xc1\xf0\x8b\x1d\x37\x7b\xa2\x1b\x21\x31\x9a\x90\x08\xe7\xd2\x7a\x18\x94\x58\x20\xf2\x79\x8e\x73\x09\x7b\xa7\xa7\x67\x73\x36\x22\x9e\x66\x09\x51\x04\xd1\x29\x52\x82\x92\x18\xe1\x19\xa6\x7a\xe9\xee\xc8\x12\x10\x74\x4f\xf4\x76\x03\x2d\xd5\xff\x02\xea\x77\xca\x05\x41\x31\x51\x98\x26\x4b\xbd\x4e\xf6\xdb\x9e\xcb\xbd\x27\x2e\x57\xde\xf0\xbd\x60\x73\x06\xc4\x7f\x07\x97\x36\xb3\xa6\xfb\x08\x27\x5b\xde\xdf\xb7\x76\x50\x3d\x6d\xbf\x2f\xda\x36\xbb\xb6\x3f\xc4\xfd\x6a\x31\xd8\xdd\x2b\x5a\x14\xd5\x2c\xde\x15\x4d\xbf\x46\x58\x40\xef\x70\xee\x1d\xce\xad\x2b\xf3\x3e\x1d\xce\x7b\xe3\x31\xea\x7d\xce\x2f\xe4\x73\xa6\xb2\x77\x3a\xf7\x4e\xe7\xae\x0b\xd4\x3b\x9d\x7b\xa7\xf3\xfb\x75\x3a\xbf\x24\xee\xf3\x4e\xd1\x9d\xdf\x95\x68\xdd\x8b\xd5\xbd\x58\xdd\x43\x38\xfb\xa9\xed\x8a\x85\xb9\xaf\x3f\xc4\x24\x21\x8a\xb4\xdb\xb3\x88\x48\xb5\xb6\x60\xae\x67\xca\xb4\x1c\x37\x13\x44\xca\x6d\x19\x92\x6f\xf8\x7d\xb2\x25\x3f\xfc\x1e\x6a\xbe\xe7\x53\x3d\x9f\xda\x64\x6a\xfb\x63\x9a\x0d\x0e\xf3\x6b\xd9\x66\x3d\xff\xcd\xf2\x76\xe9\xef\xc1\xb8\x21\x0b\xbf\xa8\xa1\x70\x2d\xb5\x2b\xee\x0f\xb7\xa5\xf3\x2d\xf9\xb1\xe9\xeb\x7d\x32\x63\x33\xf6\x9e\x13\xf7\x9c\xb8\xe7\xc4\xef\x9b\x13\xbb\x93\xfc\xa6\x2e\x32\xe3\xa7\x1b\x67\x09\x66\x63\x1a\xcb\xe3\x7f\x16\xba\xfc\x4b\x79\xc8\xf4\x81\x8a\x4d\x8a\xa9\x4f\xe9\x14\xbf\xe8\x4f\x92\xc2\x60\xee\x31\x33\x57\x38\xd1\x8c\x8d\xfd\x26\xc1\xec\x3c\x7e\x17\x7e\xb4\xc6\xd9\xbf\x86\x4f\x6d\x1b\x3e\x8e\x15\x78\x3a\x30\x65\xc6\x84\x57\xe4\xd5\x96\x0c\x94\xfb\x71\xc2\xb7\xe1\xea\xc1\xc4\x02\xc6\xee\xf8\x75\xb0\x28\xfb\x37\xed\xde\xaf\xd3\xe7\x12\xf6\x9e\x8b\x8e\x13\xee\x3d\x17\xfb\xeb\xb9\x78\x2b\x77\xe4\x2b\x1f\xcf\xd7\x12\xeb\xba\x07\xe1\x9b\x68\x35\x08\x6a\xcd\xb3\x84\xe3\x78\x99\x2b\xa6\x10\xbc\x42\x70\x94\x95\x91\xf8\xc5\x67\xef\x41\x58\x2b\x46\xfb\x1b\x8b\xe4\xab\x4f\x7c\x5f\xb4\x94\x57\x0c\xe5\x6b\x26\xf1\x35\x54\x92\xf7\x81\x9f\x5a\x8c\xb7\x0f\xed\xeb\x2d\x4a\x6f\x6f\x51\xea\x43\xfb\x7a\x15\x70\xcf\x54\xc0\x3e\xb4\xaf\x0f\xed\xeb\x15\xe4\xe5\xd3\xee\x15\xe4\x2f\x22\xb4\xaf\x93\xa8\xfd\x82\xd8\x9b\xdb\x0b\xdd\xbd\xcc\xed\xde\xeb\x65\xee\x5e\xe6\xfe\x42\x65\xee\xfd\x58\xe1\x5e\xe0\xee\x05\xee\x5e\xe0\xee\x05\xee\x5e\xe0\xde\xf9\x32\xf6\x02\xf7\x6b\x16\xe8\x6c\x96\xba\x57\x24\xd9\xbc\x57\x5f\x4e\x2f\x6e\xf7\xe2\xf6\x7e\x8b\xdb\x7b\x33\xa1\xf7\x53\xe6\xb1\xdb\x7c\xfa\x22\xe5\x7d\x91\xf2\xbe\x48\xf9\x8b\x17\x29\x77\x5f\x77\xc8\xf8\xb0\x87\x4b\x61\x95\x4b\x03\xf8\x28\xc8\x8c\x4a\x05\xec\xbf\x8b\xbc\xb2\x3a\xd1\xe3\xbd\xca\x29\x7d\xaa\x87\x7f\xda\x4b\x2d\xbd\xd4\xf2\x1b\x95\x5a\xf6\x28\x16\x6c\x2f\x32\x56\x52\xac\xa2\x39\x9e\x24\x64\xec\x8d\x3e\xb2\xab\x1e\x7c\x41\xa5\x92\x28\xca\xa5\xe2\x69\xfb\xe5\x72\xe9\x7a\x18\xf8\x0e\x4e\x39\x9b\xd2\x59\x6e\xee\x16\x03\xce\x19\x9c\xe8\x42\x12\x5c\x64\x64\x95\xa7\xaa\xa1\xf5\x77\x71\x2d\x35\x0f\xfd\xb5\x6e\xa7\x75\x04\xf7\xc2\xc8\x67\xa5\x6e\x2d\x6b\x8d\x6f\x87\x77\xd7\x0f\xb7\xa7\xc3\x13\x34\xc8\xb2\x84\x1a\xbb\xbb\x21\x05\xfa\xab\x9e\x14\x52\x58\x3e\x16\x7b\x29\x0c\x99\x1b\x0c\x5b\x30\xf4\x6b\xd9\x18\x1d\xa2\xd3\x8b\x87\xbb\xfb\xe1\x6d\x4b\x83\x96\x50\x20\x6f\x95\xa4\x59\x82\x15\x89\xd1\x63\x3e\x21\x82\x11\x2d\xed\x58\xa4\xdb\xc2\xfc\x6f\x1a\x1d\xfe\xf7\xf0\xf4\xe1\xfe\xfc\xfa\x6a\xfc\xd7\x87\xe1\xc3\xf0\x04\x39\x8a\xd3\xcd\xea\x71\xe9\x51\xc4\x0b\x86\x53\xad\x81\xe8\x1f\x8a\x4c\xd9\x7f\xe4\x24\x27\x08\x4b\x49\x67\x2c\x25\x80\x08\x5c\x6a\xd1\x0d\xf8\x62\xf0\xdd\xf0\xa2\xdc\xf2\x9c\x84\xf0\xbb\x28\xc1\x13\x92\x58\x7f\x04\x98\xd8\x35\xa1\x07\x50\xc5\xc6\x51\x91\x9b\x55\xfd\xeb\xc3\xe0\xe2\xfc\xfe\xe7\xf1\xf5\xc7\xf1\xdd\xf0\xf6\xc7\xf3\xd3\xe1\xd8\x4a\x95\xa7\x03\xdd\x6f\xa9\x27\x2b\x7c\xa2\x7f\xe4\x38\xd1\xda\x09\x9f\x3a\x3c\x5e\xf4\x3c\x27\x0c\xe5\x0c\x28\xce\xa8\x3c\x5a\x0f\xf2\x9d\xea\x53\x66\x66\x74\x73\xf1\xf0\xe9\xfc\x6a\x7c\xfd\xe3\xf0\xf6\xf6\xfc\x6c\x78\x82\xee\x48\x02\x4a\x81\x5b\x74\xd8\xc5\x2c\xc9\x67\x94\x21\x9a\x66\x09\xd1\xab\x81\x6d\x36\xf1\x1c\x3f\x51\x2e\xec\xd1\x9d\xd1\x27\xc2\xcc\x3a\xc2\x99\x85\xf6\x9d\xf0\x3d\x0e\x96\xee\xfa\xea\xe3\xf9\xa7\x13\x34\x88\x63\x3f\x07\x09\x6d\x94\x28\xc7\xc1\x3a\x1f\x96\x87\xad\x99\x03\x74\x6f\x88\x88\x3f\x11\x21\x68\x4c\x2a\x74\x34\xb8\xbb\x3b\xff\x74\x75\x39\xbc\xba\x87\x15\x53\x82\x27\x12\xcd\xf9\x33\x98\xb2\x61\x86\x60\xe1\x7e\xc2\x34\x81\xce\xdc\x66\x71\x86\x9e\xe7\x14\xdc\x1f\x00\xcc\xec\x7b\x36\xfa\x99\xc8\xd9\x9b\x5b\x67\x4b\x07\xaf\xae\xb6\x54\x4f\x52\xfd\x8d\xca\xb1\x58\xf6\x42\x89\xca\xeb\x2f\xae\xa2\xd6\xfa\x17\x15\x72\x6b\x57\xd6\x6a\xf4\xd2\x3e\xd3\x62\xaf\x3b\xeb\x6a\xe5\x35\x7c\xbd\x6b\x96\x28\x41\x23\xf9\xb2\x50\x4f\x22\x67\x8a\xa6\x04\xd9\xce\xec\xe1\xdc\x21\xfc\xd3\xa5\x69\xf8\x3d\x5c\xb0\xb5\x52\x0e\x9f\x88\xb2\xc3\xef\x55\xc0\x5e\x05\xdc\x0f\x15\xf0\xbd\x65\xfb\xc7\x24\xab\x77\x58\x99\x18\xbc\x63\xbc\x5e\xb5\x20\x0d\x63\x4f\xb4\x16\xd5\x84\x3c\x91\x04\xa4\x3c\x25\xb0\x56\x1a\xad\xec\x32\x11\x04\x3f\x6a\x81\x2f\xe6\xcf\xa1\xe4\xd2\x80\xdc\x8f\x76\x73\x0b\x77\x09\xe2\xf8\xd3\x1f\x5f\xef\xb2\xd0\xcb\x1d\xbf\x46\x09\xef\x5b\x08\x92\x59\x8a\x11\x18\x24\xd8\xff\x62\x2d\xc1\x2b\x6e\x8b\xe0\x8b\xf7\x70\x51\x84\xc3\xdd\x23\xad\xeb\x36\x54\x82\x1d\x0b\x4d\x89\xc2\x31\x56\x58\x1f\x9a\x19\x51\x47\xe8\x9a\xc1\xb3\x7b\x2c\x1f\x0f\x90\xbb\xf2\x34\x5b\x29\xac\x0c\xaf\x90\x5a\xff\x4e\x0c\xf8\xeb\xf3\xf1\xfe\xfa\xee\xaf\xef\xe6\x95\xe9\xc3\x3c\x5b\x56\x78\x57\x17\xe3\x5a\x3e\xaf\xdd\xdd\x5f\xa6\xc5\xf7\x7b\x85\xbd\xae\x93\x6b\xa7\x17\x9a\xa9\x9c\xd5\xdf\x56\xe6\xff\xfa\xdb\xaa\xbf\xad\xfa\xdb\x6a\x0f\x56\xf8\xcd\x1d\x86\x0d\xdc\xfd\x4d\x3d\x86\xab\xb4\xd3\x8d\x21\xef\x0a\x6d\x74\x1d\xd0\xbb\x5f\xba\x62\xdb\x15\xdf\xd0\xf7\xe1\x23\x0c\x26\xf9\x1a\x69\x6d\x3b\xbd\xcc\x4d\xbe\x48\xaf\x9f\xbe\xe0\x8d\xdf\x23\x10\xee\x14\x81\x70\x3f\xe6\xfa\x22\x29\x70\x6f\x63\x31\x7d\xfb\xb4\xb7\x1e\x6a\xb0\x4f\xec\xea\x13\xbb\xe0\xf7\x1e\x6a\x70\x77\xd4\xfa\xb2\xd2\x35\x8f\xc9\xb8\x12\x25\xe0\xff\x39\xae\x7a\x7e\x4a\x4f\x42\x37\x50\xe9\x41\x91\xe9\x06\xad\xd3\x78\x97\x45\xa4\xae\x78\x4c\x3a\x47\x12\x94\x5e\xde\x73\x19\xdc\xcd\xd3\xc8\xe2\xa5\x81\xbf\xb0\x24\xde\xb2\xe5\x5f\xa2\x61\xa7\x81\x80\x7b\x2b\xcf\xca\x85\xfa\x52\xe3\x0b\x0a\x0e\xf5\x8e\x3c\x15\xdd\xd8\xb8\x8b\x69\x1c\xb7\x30\xf3\xe6\xe7\x9e\xa5\x37\x3f\x7e\x19\xcc\xa0\xee\x1c\x1d\xcc\x2a\xe1\xdb\xef\xc3\xae\x12\x8e\xf8\x35\x2c\x2b\x4b\xf7\xfe\x8b\xe3\xea\xcb\x28\xb9\xe7\xed\x1d\x97\xeb\x4b\xe5\xf0\x3d\xc4\xcf\x32\x5b\x47\x8f\xa1\xd3\x9b\x5a\xf6\x67\xc2\xbd\xa9\xe5\x5d\x9b\x5a\x8c\x8b\x76\x9c\x61\x41\x98\x6a\x10\xa9\xab\xd7\x09\xbc\x1e\x62\x2e\x38\xa9\x03\x1a\x40\x5a\xa2\x45\xf6\x42\xf6\x57\xd5\x97\x65\x7b\xb1\x82\x41\x90\x09\x79\xfc\xcf\xe2\x6f\x2f\xac\x97\x2a\x40\x2c\x89\x4e\x32\x58\xff\x52\xdf\xd1\xb9\x0d\x54\xda\x3e\x57\x12\xab\x92\x28\x08\x41\xd4\x2b\xe3\x99\x6e\xcc\xdb\xef\x2b\x45\xb2\x36\xe8\xd7\x8d\x6d\xaa\x6f\x7c\xb7\x03\xe4\x76\x86\x9a\x74\xbf\x20\xa7\x4c\x4b\xa3\x7c\x5a\x5c\x0c\x12\x3d\xd3\x24\x01\x44\x11\xc8\x78\x6c\xbb\x01\x7e\x73\x11\x0f\xad\x3b\xff\xa6\x71\x0f\x4d\xdc\xa1\x89\x25\x74\xb1\xa7\xee\x2a\x67\xda\x11\x1b\xa4\xb3\x82\x36\xb4\xc2\x00\xfb\x65\x70\x82\x4f\x44\xbd\x16\x1b\xd8\xf4\xec\x2f\x3d\xf7\x82\x4c\x89\x20\x2c\x22\x7b\xe8\x6d\x5f\x27\x0c\xe4\x27\x33\x49\x1b\x03\xe2\xa1\x04\xc2\xa9\x2a\x6e\xf5\xb4\x92\xa8\xdb\x67\x92\xf7\x99\xe4\x7d\x26\x79\xf5\xa8\xf7\x99\xe4\x7d\x26\x79\x63\x0e\x44\x4c\x12\xa2\x48\xab\x54\x71\x06\x8f\xdf\x4a\xaa\x30\xbd\x7f\x19\x82\x85\x99\x4b\x2f\x5b\xfc\x66\x34\x0b\xb7\xe1\x7b\xa1\x59\x98\xb3\xb6\xca\xfc\x50\xfa\xb1\x21\xc4\xfa\xd5\x4d\x12\x9b\x30\x8d\x92\x5d\xe2\x0c\x5e\x7f\x97\xac\xa3\x3a\xf4\xde\x46\x81\x82\xad\x7b\x39\x4e\x52\x3b\x02\xdd\x26\x6e\x3d\x86\xef\x77\xde\xfb\xc2\x41\xdb\xe8\x7e\x5f\xf9\xe8\xc6\x49\x29\xfb\x62\xb1\xf9\x82\x78\x64\x6f\xbd\x79\xe3\x5c\x89\x1a\x33\x7c\xb7\xd3\xed\x8d\x55\xbd\xb1\xaa\x37\x56\xf5\xc6\xaa\xde\x58\x85\x7a\x63\xd5\xda\xc6\xaa\x2f\x48\xa6\xea\x0d\x57\xbd\x58\xb5\xbb\xe9\xee\xab\x96\xb9\x4f\xd6\xba\xce\x28\xe9\x45\x0e\xd5\xca\xc8\x7b\x3b\xed\x5f\x56\x84\xdc\xdf\xb8\x11\xbc\x1f\x7e\x25\x5f\x9a\x25\x6d\x13\x58\xec\x76\xf4\x8b\x8d\x2b\xee\x4b\x87\x36\xae\x55\x1f\xf6\xbc\x64\x71\xfa\xb0\xe7\x3e\xec\x79\xef\xc2\x9e\x77\xae\xac\x64\x5c\x2e\x03\x24\x32\xa5\xb3\x96\xe6\x3f\xbb\x3b\x1b\x12\x8d\x80\x14\x0c\xca\x71\x4c\xb2\x84\x2f\xc0\x92\xb2\xe4\x3a\x77\x5d\xdc\xd4\x24\xea\x7d\xbf\xd1\xdd\xc8\x5f\x4b\xe7\xd8\x17\x99\xb4\x98\xf7\x5e\x48\xa1\xc7\xff\xac\xa4\xf3\x77\xc2\xcb\x64\x88\x7c\xa6\x12\x6e\xa5\xd5\x84\x3d\x62\xcd\x4f\x82\xd2\x85\xf6\x1e\x9c\xe4\x2a\xc8\xdd\x93\x5a\xb0\xca\x88\x50\x8b\xe0\x4d\x92\x66\x6a\xf1\x5f\x23\x46\x95\xf7\xb0\xd1\x19\xe3\xc2\x70\x35\xfd\xf1\x1c\xb3\x38\x21\x42\x5f\xaa\xae\x9d\x08\x33\xc6\x15\x88\x1b\x30\x83\x18\x3d\x51\x6c\x84\x93\xc1\xcd\x79\x67\x3f\xf3\x3b\x3a\x5d\xaf\x5d\xac\x6e\xc5\x5d\xf7\x29\xe1\x13\xa8\x60\x99\x97\x75\x7a\xdd\x40\xef\x19\x2d\xed\xdc\x5b\x31\x04\x85\xe5\x63\x15\x38\xa4\x9c\x85\x3e\x5e\x0a\x25\xb2\xe2\xdd\x12\xc6\xfc\xf2\x57\x2b\x70\x23\xe5\x67\x16\x80\x04\x1e\xc3\x90\xab\xe3\x70\x3f\x86\x1d\xba\xdf\x8a\x96\xdd\x2f\xae\x74\x37\xfc\x28\x88\x12\x8b\x31\x56\x4a\x33\x99\x5d\x62\x9c\xdc\x63\xf9\xd8\x19\xe3\xa4\xf4\xf2\x9e\xb3\x9c\x12\xc6\x49\x79\xe0\x2f\xce\x72\x3a\x52\xe7\x0a\xce\xf4\xfe\xf2\xe3\xbb\x9e\xb5\x35\x26\xfe\x5b\xc9\x95\xef\xc6\x7b\x56\x99\x69\xdf\x63\xde\xfc\x32\x66\xba\x37\x23\xac\xf0\xf3\x2f\xf1\xe4\x96\x6f\xa7\xfe\x88\x2e\x5b\xa3\x2f\xae\x10\x6e\x45\xe8\x58\x31\xb7\x77\x52\x10\xb7\x2a\x37\xed\x7a\x54\x2f\x63\xe6\x0e\x76\x63\x9d\x18\xa0\xf3\x32\x5a\xb9\x3f\x43\x2e\x2a\xa8\x28\x3d\x3b\x87\x44\x6b\x2a\xc3\x84\xf8\x88\x0b\x23\x79\xc5\xf6\xcc\x1a\xb3\x9d\x01\xf3\x3d\x41\x03\x14\xdb\xda\xfc\x82\x64\x82\x48\xc2\x94\x51\xb5\x4d\xbd\x2b\x57\xde\x9f\x32\x6b\x21\x3a\xc3\x0a\x9f\x62\x85\x13\x3e\x3b\x42\x03\x5f\xd8\x9f\x4a\x84\x13\xc9\x11\x76\x84\x43\x62\xd7\x04\x66\xb1\x63\x0f\x18\x45\x3c\xcd\x68\xe2\x91\xda\xbd\x15\x9f\xb2\x98\x3e\xd1\x38\xc7\x89\x47\xc6\x1e\xb1\xe1\x13\x61\x2a\x07\x15\x0e\x27\x09\xb2\xdd\xba\x17\x02\xfd\xdc\x8d\x52\xd2\x94\x26\x58\x20\xc5\xed\x68\xaf\x6d\x5b\xe8\x7e\x4e\xfc\x58\x1d\x0a\x38\x4a\xf1\x23\x91\x88\x2a\x94\x71\x29\xe9\x24\x29\x8e\xf1\xc3\x39\x82\x71\x9f\x5e\x9c\x83\x69\x34\x52\x88\x1b\x3e\xe8\x3a\xb7\x7e\x02\xd7\x63\x8a\x19\x23\xd0\x31\x57\x73\x22\x6c\xf7\xf6\xe5\xb7\xb6\x72\xbe\x35\x46\x74\xbb\xc5\x34\x1c\xd9\xdb\x29\x9d\x9d\x35\xce\xae\xea\x66\x37\x5d\xb3\x5d\xd1\x7c\x01\x2f\x6d\x77\x6d\xf0\x82\xca\xb2\x3a\xf8\x2e\x5c\xb6\xa5\x11\xbf\x06\x3e\xda\x6f\x54\x11\xec\xb5\xc0\x17\x59\xb7\x2f\x55\x05\xdc\x73\xfd\xaf\x47\x76\xeb\x51\xec\xfb\x00\x8c\x1d\x2e\x4e\x1f\x80\xd1\x07\x60\x7c\xb1\x01\x18\xed\xda\x04\x8d\xb7\x4e\xd7\x5b\xb3\x82\x94\x37\x0a\x88\x5f\x40\x94\xc2\xf2\xb1\x6b\x4d\x29\x2d\x2a\x9f\xc7\xef\x42\xaa\x6f\x9c\xf0\x6b\x48\xf7\x7d\x9d\xa2\x9d\xd6\x29\xda\xbb\x69\xf7\x82\x5f\x2f\xf8\xf5\xb2\x4d\xc7\x09\xf7\xb2\xcd\xfe\xca\x36\x6f\xa5\xb0\x7c\x49\x10\xba\x5a\x78\x2a\x65\xc6\x2c\x0d\xb0\x35\x70\x34\xe0\x1e\xc8\xb3\x84\xe3\x78\x55\x10\xce\x2f\xa8\x90\x6b\x96\x88\x66\xa6\x5d\xfd\xc1\x9e\x4b\x66\xb5\xf8\x1b\x33\xf2\xdf\x42\x4c\x6d\xeb\xd4\xdf\x34\xac\x16\xe8\x17\x82\xc9\x4a\x41\x69\x2f\xa5\x85\x54\x69\xba\x93\xc2\x21\xff\xb8\xe7\x54\xed\xb7\xf4\x35\xd4\x8b\x2f\xd8\x41\xd0\x3b\x01\x7e\x9b\x85\xcf\xf7\x46\x6a\xed\x55\xbb\x3e\xab\xb2\x37\xea\xf7\x8a\x6f\xaf\xf8\xee\x7c\x19\xf7\x49\xf1\x7d\x43\x89\xda\xa4\x89\xbc\x48\x19\xc3\xcd\x64\xeb\x5e\xb4\xee\x45\xeb\x5e\xb4\xfe\x62\x45\xeb\xfd\x58\xe1\x5e\xae\xee\xe5\xea\x5e\xae\xee\xe5\xea\x5e\xae\xde\xf9\x32\xf6\x72\x75\x45\xae\x86\xbf\x5c\x9a\xf4\xba\x42\x76\x67\xe1\xba\x43\x4e\xf4\x7b\x91\xac\x7b\xa9\xba\x97\xaa\xf7\x5b\xaa\xde\x9b\x09\x7d\x79\x89\x90\x7d\x2a\x61\x9f\x4a\xd8\xa7\x12\xbe\x45\x2a\xa1\xe3\x25\xcb\x24\x94\xba\x60\xf1\x63\x8d\x03\xed\xad\x6c\x51\x8c\x76\xd3\xf0\x8e\x5d\x2d\xb5\x03\x9a\xdf\xa4\xd2\x54\xe9\x37\xd7\xd0\x1e\xd5\x9f\x3a\x70\xd2\x82\x66\x14\x6e\x7c\xab\x11\xc2\x7e\xb2\x6f\xbe\x2f\x30\xf0\xfa\xa8\xfb\xfa\x53\x28\xd8\xb5\xbe\xfe\xd4\x0b\xce\xdb\x1d\xae\x15\x33\x77\x34\x6a\x6c\xbc\xef\x74\xda\x6f\x0e\x2e\xd7\x7e\xd2\xdf\x34\x5c\xae\xf1\x26\xa9\x25\xef\x1c\xff\xb3\xf1\xa2\x78\x83\xb2\x5b\x6b\xdf\x0e\x9f\x88\xfa\x52\xae\x86\xbe\xec\x56\x5f\x1f\x62\x47\xd3\xdd\x88\xf5\xbf\xdb\xd9\xf6\x45\xc6\xfa\x22\x63\x7d\x91\xb1\xbe\xc8\x58\x5f\x64\x0c\xfd\xc6\x8b\x8c\xad\x2d\x3e\x9a\x71\x7c\x29\x12\x64\x5f\x64\xac\x17\x22\x77\x37\xdd\xdf\x96\x10\xb9\x87\x16\x84\xbd\xa8\xa6\xe6\x2d\x08\x6f\x8e\xfb\xe1\x46\xd2\x15\xfb\xc3\x2d\x68\x8f\xff\x61\xff\xaf\xc7\xff\xe8\xf1\x3f\x5a\x66\xdd\x07\xb3\xf6\xf8\x1f\xa8\x0f\xd7\xec\xc3\x35\xf7\x39\x5c\xb3\xc3\x36\xf6\xf8\x1f\x1d\xc5\xb9\x17\xc2\x00\x71\x32\xd7\x5a\x38\x20\x3f\xd5\x15\x8d\xbd\x95\xd2\xdc\x58\x7f\x3b\x38\x20\x8d\xd3\xde\x0b\x95\xe4\x15\x71\x40\x9a\xe8\xba\xb3\x02\xf2\x3e\xf0\x40\xdc\x68\xfb\xc4\xc5\x3e\xc4\x7a\xff\x43\xac\xf7\x2e\x71\x71\x6f\x24\xd9\x5e\xdd\xeb\x73\x17\xfb\xdc\xc5\x5e\x19\xee\x95\xe1\x9d\x2f\xe3\x3e\x29\xc3\x6f\x2c\x61\xbf\x20\x2e\xc8\x76\xb2\x76\x2f\x6a\x9b\xf7\x7a\x51\xbb\x17\xb5\xbf\x50\x51\x7b\x3f\x56\xb8\x97\xb3\x7b\x39\xbb\x97\xb3\x7b\x39\xbb\x97\xb3\x77\xbe\x8c\xbd\x9c\xfd\x6a\x38\x21\x4d\xc2\x76\xc7\x7c\x9b\xf7\x24\x69\xf7\x52\x76\x2f\x65\xef\xb7\x94\xbd\x37\x13\xea\x31\x43\x7a\xcc\x90\x1e\x33\xa4\xc7\x0c\xd9\x48\xbe\xf9\x37\x7b\x2c\x3f\x04\x37\xb1\xbf\xb2\x3f\x7c\x97\xf0\xc9\xfd\x22\x23\xfa\xbf\x67\x34\x25\x4c\x82\x34\x4a\xd5\x22\x94\x67\x5a\x56\xbe\xbe\xe6\x1f\xee\xce\xaf\x3e\x5d\x84\xd9\x34\x1f\x2e\x1f\x2e\xee\xcf\x6f\x06\xb7\x7e\x5d\xfc\xac\xc2\xb5\xb0\xdf\x95\x44\x32\x4b\xf2\xb7\x44\xeb\x9e\x70\x6a\xee\x14\x56\xb9\xdc\x6c\x64\xb7\xc3\xbb\xe1\xed\x8f\x90\x0d\x34\x3e\x3b\xbf\x1b\x7c\x77\x51\x22\x88\xd2\xf3\xc1\xe9\x5f\x1f\xce\x6f\xdb\x9f\x0f\xff\xfb\xfc\xee\xfe\xae\xed\xe9\xed\xf0\x62\x38\xb8\x6b\xff\xfa\xe3\xe0\xfc\xe2\xe1\x76\xb8\x74\x3d\x96\x8e\x76\xb9\x12\x22\x61\x91\x20\xce\x1f\x45\x96\x6b\x88\x62\x0d\x91\x17\x1f\x1d\x3b\x6c\xea\xeb\x04\x3d\x58\x9d\x9e\xda\xc6\x0d\x83\x0d\x1a\x32\xca\x48\x4c\x25\x9e\x24\x24\xae\xb5\xe4\xd6\xb0\xad\x25\x5c\x1a\xd4\xb3\xd6\x9e\xbd\xc8\xa9\x79\x5e\x64\x78\x01\x82\x1c\x45\x45\x58\xdc\xd0\x87\xd9\x87\xd6\x1e\x98\xe6\x5d\xf4\x89\x94\x7a\x8a\x72\x21\x08\x53\xc9\x02\x91\xcf\x54\x2a\x59\x6b\xd4\x6d\x5f\x5b\xb3\xf6\x4e\xf5\x0d\xce\xb1\x44\x13\x42\x58\x79\xfc\x82\x24\x04\xcb\x86\x31\xdb\xdd\xef\xb6\x2c\x7e\xaf\xac\x35\xc6\x5c\x46\x53\x4c\x93\x5c\x90\xca\x69\xe1\x69\x86\x05\x95\x9c\x0d\x3f\xeb\xbb\x4c\x1f\xe4\x6b\xf8\x9c\x8b\xcd\x4e\xcc\xf0\xaf\x21\x05\x5f\x95\xff\xf9\xe9\xbe\xfc\xaf\xd2\x99\xbf\xb8\x2f\xff\x6b\x39\xad\x07\x0d\x57\x29\xfb\x10\x7d\xba\x3f\x41\x9f\x20\xc4\x49\xa0\xfb\x39\x36\x14\x7b\x71\x7f\x82\x2e\x88\x94\xf0\x4b\xf1\xb1\xa2\x2a\x81\xb9\x7d\x47\x19\x16\x0b\xe4\xa6\x6f\x12\x5d\x71\x34\x47\xc4\x2f\x4d\x75\xf1\xd8\xdf\x73\x06\xaa\x7b\xb1\x7a\x17\x7c\x46\x23\x9c\x6c\xb7\x88\x83\xab\x12\x1f\xb8\xbe\x5d\xba\x14\xe1\xdb\xf5\xb5\x18\x5c\x9d\x41\x12\xa9\x1b\x6a\xc3\xcc\xaf\x88\xd4\x44\x12\x71\x16\x5b\x2f\x8d\xbe\xfd\x17\x81\x50\xff\x77\x0e\x89\xb8\xb9\xa4\x6c\xa6\x5b\x44\xc7\xe8\xfa\x76\xc4\xae\x45\x6c\x0c\xa1\x44\x4b\xc3\x86\xe6\xa8\x44\x8c\x2b\x44\xd3\x8c\x0b\x85\x99\xd2\x8a\x00\x88\x01\x76\x45\x0c\x07\x38\xe5\x69\x9a\x2b\xac\x0f\x5a\x6d\x51\x99\x31\x87\xdc\x11\x75\x1e\x83\x6b\xa5\x61\x0d\x8d\x9c\x50\xcc\x25\x13\xba\x7d\x2d\xa3\x94\x75\x68\x1a\xd7\x54\x59\xd7\x04\x16\x02\x97\xa5\x89\x0f\x54\x91\xb4\xfa\x7e\xc7\x20\xcf\x7f\x35\x1a\x08\x4e\x4d\x52\x05\x11\x03\x11\xcd\xa9\x22\x91\xd2\x47\x70\x23\x9a\x78\xb8\xfa\xe1\xea\xfa\xa7\x50\x82\xf8\x30\xb8\x3c\xfb\xf3\x7f\x94\x7e\xb8\xbd\xac\xfd\x30\xfe\xf1\xcf\xb5\x5f\xfe\x7f\x4b\xe9\xa9\xda\x53\x4d\xcf\x0f\xe6\x72\x08\x22\x35\xd8\x84\xdd\x54\x11\x4d\xf1\x8c\x20\x99\x67\x9a\x02\xe4\x51\x79\x7f\xb5\x48\x79\xc1\x71\x4c\xd9\xcc\x64\x80\x5e\x50\x45\x04\x4e\x2e\x71\xf6\xd1\xd9\xaf\x37\x58\x9d\xff\x7b\x57\xca\xd7\xfd\xf0\xf3\xe0\x32\xcc\xf8\xfd\x70\x73\x7b\x7d\x7f\xbd\x74\xd6\xa5\x16\xea\xc7\x48\x3f\x3e\x81\xff\x45\xc7\x48\xb7\xee\x25\xdf\x94\x28\xac\x35\x02\xf4\xb5\x49\x9a\xf3\x89\x34\x94\x25\x70\x6a\x32\x41\x53\x0a\x57\x8a\xb1\xe0\x7d\x63\x84\x6b\xaf\x3d\xf8\x73\x63\x3e\x00\x6d\xd9\x5d\xca\x2c\xc6\x22\x46\x7f\x97\xd5\xf4\x71\x30\x1c\x9b\x1f\x48\x8c\x0e\xd1\x5c\xa9\x4c\x9e\x1c\x1f\x3f\x3f\x3f\x1f\xe9\xb7\x8f\xb8\x98\x1d\xeb\x3f\x0e\x09\x3b\x9a\xab\x34\x31\xe9\xf2\x7a\x15\x4e\xd0\x8d\xe0\xfa\x0a\x01\x05\x9d\x08\x8a\x13\xfa\x2b\x89\xd1\xc4\xf0\x3f\x3e\x45\xbf\x44\x5c\x90\xa3\x62\x63\xac\x51\xc9\xde\x23\xd6\xf0\x74\xac\x5f\x6a\x60\x26\xd5\xfd\x44\x31\x89\x68\x6c\xc5\x0c\xc2\x22\x0e\x96\x47\xe3\xab\xd0\xed\xb9\x4c\x43\xad\xd1\x64\xb9\x2a\x96\x33\x50\x56\x70\x4c\x82\x6c\x77\xc5\xcb\x04\xa7\x15\x9f\x73\xa3\xb6\xe6\x5a\x45\xd7\x77\x2b\x86\x5b\xd5\xbd\x9a\xe9\x09\x47\x3c\x41\x93\x7c\x3a\x25\x22\x74\x48\x1f\x68\x6d\x86\x4a\x24\x48\xc4\xd3\x14\x24\x06\xfd\x55\x2e\x0d\x55\xc3\x8a\xd9\xd1\x1e\x8d\x18\xec\xbf\x56\x73\x80\x02\x62\x0e\xac\x8e\x11\x12\x23\xcc\x16\xa6\x9b\x49\x3e\x0d\xdb\x37\x30\x14\x38\x46\x54\x8d\xd8\x20\x49\x90\x20\x29\x57\x24\xc8\xa1\x04\xe7\x59\x79\xc1\x81\x45\x0a\x92\x25\x38\x22\xb1\xa1\x87\x84\x47\x38\x41\x53\x9a\x10\xb9\x90\x8a\xa4\x61\x03\x5f\x83\xad\x46\xaf\x19\x95\x28\xe6\xcf\x2c\xe1\xd8\xce\xa3\xfa\xd9\x37\xe5\xd3\x38\x74\x10\x01\x43\x21\xb8\x80\xff\xf9\x81\xb2\x78\x67\x1c\xea\xe1\x6e\x78\x1b\xfe\xfb\xee\xe7\xbb\xfb\xe1\xe5\x7a\xdc\xc7\x53\x16\x0c\x0f\x74\xf8\x13\x74\x67\x16\x81\x0b\x2d\x11\x89\x96\x49\x5d\x5a\x52\x2a\x7e\xe0\xf1\x86\xdc\xf7\x72\x70\xf5\x30\x28\x71\x94\xbb\xd3\xef\x87\x67\x0f\x15\x7d\xc0\xce\xaf\x24\xc3\x1b\xf5\x2f\xfc\xed\xf4\xfb\xf3\x8b\xb3\x71\x83\xc2\xf8\xe1\x76\x78\x7a\xfd\xe3\xf0\xb6\xd0\xed\x1a\x97\xa8\x32\x98\x2a\xb3\xba\x37\x4c\x69\xce\x63\x34\x59\x34\x03\x42\x68\xc9\x39\x01\x5f\x6c\x01\x89\x62\x5a\x3d\x01\xde\xe4\xb0\x39\x8a\x2f\x52\x1e\x93\x03\xfb\x0e\x20\x69\x18\xe3\x8a\x91\x98\x9b\x1b\xd6\xbd\x63\x16\x18\x2a\x0c\xc8\x85\x5f\xb8\x13\x34\x40\x52\xbf\x98\xeb\x43\x2d\xe8\x6c\x06\x86\xc3\xca\x50\x4d\x6b\xf6\x53\x58\x5e\xf8\xce\xec\x7f\x26\x38\x9c\x73\xdd\xad\xb5\x38\x7b\xab\x84\xf9\x10\x50\x57\xca\x2d\x0a\x0c\x06\x87\x86\xa1\xb9\xcd\xd2\x8b\xd0\xba\x5e\xe6\x3c\x1a\x7b\x91\x3e\x5c\xc0\xb6\xa4\xb1\x77\x66\x82\x3c\x51\x9e\x07\x9f\x5a\x60\x8f\xd2\x8e\x37\x36\x5f\x2c\x00\x2c\x9b\x31\x8a\x54\x9a\xf1\xe4\xd1\xd8\x82\x66\x61\x4f\xd0\xc2\x54\xf0\xb4\xa1\x8d\xf2\x31\x39\xbf\xbe\x53\x02\x2b\x32\x5b\x9c\x59\x96\xb1\xf9\xf1\x38\xbb\xfe\xe9\xea\xe2\x7a\x70\x36\x1e\x0e\x3e\x95\x4f\xbc\x7f\x72\x77\x7f\x3b\x1c\x5c\x96\x1f\x8d\xaf\xae\xef\xc7\xee\x8d\xa5\x24\xdf\xd2\x41\xfd\x9e\x2e\xbf\x78\x82\x34\xcb\x05\xd6\xe8\x00\xef\x02\xfe\x38\x21\x53\x2e\x0c\x9f\x4f\x5d\xe8\x82\x15\x61\xdc\xda\x5a\x5d\xac\x32\x8b\x13\xb0\x8c\x35\x35\x69\xac\xde\x4a\x10\x9c\xc2\x3d\x81\x19\x1a\xb2\xf8\xf0\x7a\x7a\x78\x67\x7e\x4c\xb1\x78\x24\xc2\x7f\xfa\x2c\xa8\x52\x84\x95\x54\x3a\xec\x86\xec\x95\xc4\xa2\x83\x23\x74\xab\xf9\xbe\x7e\xdf\x5f\x6a\x9a\xd8\x63\xa2\x30\x4d\xa4\x1d\x6c\x69\x5d\x4f\xd0\x05\x16\xb3\xc2\x0e\xf7\x35\x9f\x4e\x4d\x63\xdf\x98\x61\xe8\x3b\xac\x34\x8b\x06\xde\xab\x49\xc3\xdd\x8b\xd0\x9f\x7d\xd9\xcb\xc3\x75\xaa\x7a\xc8\xb6\xa3\xa9\x87\x1b\x58\x71\xa3\xb1\x97\x74\x43\xfb\xa4\x81\xd6\x60\xe2\xe6\xf1\xf2\x4b\xa6\xb9\xed\x3a\x39\x95\x5f\x6c\x20\x27\x93\x4b\xa5\x77\x7e\xaa\xb5\xcd\x06\x5a\x22\x9f\xa9\x35\x18\x84\xe3\xae\x90\x50\xd1\x0c\x98\x57\x71\x96\x11\x2c\x64\xd3\x6e\x97\xc5\xc0\x96\xbd\x37\x3d\x85\x7d\xd8\x4d\x76\xfd\x1c\x20\xce\xc0\xe0\xe0\x85\x88\x0a\x45\x76\xa0\x01\xd3\x56\x8d\x02\x6e\x00\x6d\xe9\xda\x22\x1b\x5d\x52\xa9\x95\x46\xf3\xe3\x77\x16\x72\x69\x33\x82\xf8\x38\x38\xbf\xa8\x08\x17\xe3\xb3\xe1\xc7\xc1\xc3\xc5\x72\x33\x61\xe9\xbb\xea\x16\xa3\x43\xa4\x9f\x97\xfd\xe6\x74\x6a\xee\x0c\x07\x1c\x65\x54\x5a\xc2\xc0\x68\x65\xa1\x6a\x8c\xbd\x3a\x26\x59\xc2\x17\x29\x61\x60\xe2\x29\xdd\x84\x7a\x3d\xa7\x98\xda\xab\x25\x18\x2c\x58\x71\xac\xd9\x0d\xae\xb1\x43\x87\x56\x45\x62\x7f\xf3\x96\xc1\xaa\x2a\xac\xfb\xc6\x78\xcf\xec\x7f\xee\x14\x56\x1b\x9e\xb1\xc1\xe9\xfd\xf9\x8f\xc3\xb2\x7e\x78\xfa\xfd\xf9\x8f\x4d\x52\xcd\xf8\xd3\xf0\x6a\x78\x3b\xb8\x5f\x21\x9c\x54\x9a\x6c\x12\x4e\xa4\x1e\x70\xd5\x7b\x4a\xa5\x8f\x08\x8a\x0c\xe4\x15\xa2\x4a\xa2\x27\x2a\xe9\x84\x02\x40\x98\xf5\x44\x3e\x9c\x03\x67\x7d\xc2\x09\x8d\xa9\x5a\x38\xf1\xc5\xf4\x5b\xde\x47\xcd\x49\x6d\xfb\xc6\xec\x10\xfa\x27\xc1\xca\x67\x36\xc7\x4d\xfa\x04\x81\x6e\xfb\x04\x4a\x5b\xf0\x19\xd3\x82\x34\x9b\x11\x61\x86\x03\xde\x97\x70\x2c\xc1\x73\x3d\xaa\x50\x58\x29\x56\xcd\x0b\xad\x33\xc2\x88\x00\x10\x38\xdf\x89\x11\xa4\x04\x61\x5f\x69\x99\x2b\x4b\x68\x44\x55\xb2\x40\x11\xd8\xb0\xc0\x9c\x99\x62\x86\x67\x56\x38\x00\x35\xa7\x42\x12\x7f\x35\x28\x6a\xd7\x53\x6b\xda\xbf\xa7\x64\xc3\x63\xf6\x70\x75\x36\xfc\x78\x7e\x55\x26\x81\xef\xcf\x3f\x95\x44\xd8\xcb\xe1\xd9\xf9\x43\xe9\x36\xd7\x92\xec\x72\xb9\xbe\xda\x6c\xc3\x51\xf4\x2f\x9d\xa0\x33\xf3\xe9\x89\x5e\xdc\x06\x88\x38\xaf\xfc\x56\xd6\xe1\xd6\x85\xe4\xb9\x3f\x86\x4c\x89\x46\xbf\x44\x57\x13\x92\xf5\x41\x96\x6c\x48\xcd\xa1\x0a\xb5\xbe\xaf\xaa\x4e\xe5\xea\x94\xdd\x8b\x10\x74\x79\x54\x58\x96\xc2\x18\x06\x30\x1a\xb4\x19\xb1\x1a\xdc\x5a\x05\xc3\xfe\x11\x5c\xd4\x69\x2e\x95\x71\x25\x02\x71\xa2\xc7\xbf\x48\xbd\xa0\xe0\x6a\x3c\x42\x77\x84\x8c\x98\xb3\x1e\xcc\xa8\x9a\xe7\x93\xa3\x88\xa7\xc7\x05\x3e\xe1\x31\xce\x68\x8a\xb5\x24\x4d\xc4\xe2\x78\x92\xf0\xc9\x71\x8a\xa5\x22\xe2\x38\x7b\x9c\x41\x04\x8c\x73\xa7\x1e\xfb\x66\x67\xfc\xdf\x2f\xfe\xf4\xed\xe1\xc5\x5f\xbe\xfd\x50\xb7\x90\xb5\xed\xff\x90\x45\x38\x93\x79\x62\x23\xe6\x44\xb8\x36\xee\xc8\xe7\x64\xd5\x7e\x5f\x95\xb7\x6b\x3b\xfd\xf5\xf4\xe6\xa1\x64\xb1\x2e\xff\xf3\x72\x78\x79\x7d\xfb\x73\x89\x53\xde\x5f\xdf\x0e\x3e\x95\x18\xea\xf0\xe6\xfb\xe1\xe5\xf0\x76\x70\x31\x76\x0f\xb7\xb1\xbd\xfd\xc0\xf8\x33\x2b\x2f\x8d\x74\x1c\xb0\xd6\xd3\x09\xfa\xc8\x05\xfa\xc1\xef\xe4\xe1\x04\x4b\xb8\x62\xdc\x9d\x25\x0f\x50\xc6\x63\x60\xbc\x88\x64\x73\x92\x12\x81\x13\x6b\x33\x90\x8a\x0b\x3c\x33\x37\xbd\x8c\x04\x56\xd1\x1c\xc9\x0c\x47\xe4\x00\x45\x40\x0d\xb3\x03\xd8\x14\x50\xb5\xf8\xac\x6a\xe7\xbb\xcd\x99\xa2\x29\x71\x2a\xb8\xfd\xe7\xbd\xd9\x8c\x0d\x36\xe7\xfa\xfe\xfb\xb2\xb0\xf7\xf1\xe2\xe7\xfb\xe1\xf8\xee\xec\x87\xa5\xeb\x69\x3e\x2b\x8d\xec\x0e\x02\x90\x4e\x79\x92\xa7\x2c\xfc\x7b\xf3\xb1\x9d\x5f\xdd\x0f\x3f\x55\x47\x77\x3d\xb8\x2f\x53\xc6\x6d\x39\xc0\xed\xc3\x77\xd7\xd7\x17\xc3\x92\x4b\xf8\xc3\xd9\xe0\x7e\x78\x7f\x7e\x59\xa2\x9f\xb3\x87\x5b\x83\x46\xb8\x6c\x9a\x6e\x04\x0d\x13\xd5\xd3\x0a\xa7\xb9\x6b\x56\xd8\x89\x13\x0d\x6c\x40\xb9\x39\xcb\x87\x01\xdc\x8e\x09\x07\x03\xab\xce\xa1\x37\xa9\x46\x66\xa4\x8d\xec\x50\x95\xb7\x09\xb5\xb3\xe3\xa5\x1b\xbd\x8c\x2b\xdf\xfb\x21\x18\x28\x50\xa3\x6c\xe3\x24\xe1\xcf\x26\x94\x37\xa5\xfa\x56\xb6\xc0\x68\xfa\x15\x59\x78\x08\x8f\x1a\x38\x5e\x79\x5b\x48\x24\x88\xba\xe4\x39\x53\x9b\x93\xdc\xe0\xaa\xc4\x77\x86\x57\x3f\x8e\x7f\x1c\x94\x29\xf0\xfc\x62\x39\xab\x09\x9b\x68\xb8\x8a\x07\x57\x3f\xfb\x4b\x18\x02\xbe\x0f\xbc\x86\x6a\x64\xd7\x28\xa1\x5a\xec\x8d\xb0\xd6\x5e\x13\x90\x68\x10\xa1\x60\x72\x48\xf5\xe4\x20\xc0\x34\x33\xfe\x24\xc3\x9f\xcc\x20\x4f\xdc\x1f\x95\xf6\x24\xac\x0b\x58\x53\x5d\x3c\x3d\xb4\x63\xb5\x6a\x86\x08\x7b\xa2\x82\x03\x9e\x2d\x7a\xc2\x82\x6a\x69\xdc\xb4\xac\xe7\x7a\x02\xff\xbb\x5e\x9b\x60\x18\xad\x30\xae\x3b\x2e\xd4\x99\x0f\xe4\xdd\xcc\x1a\xd2\x14\xd0\x5a\x0f\x65\x6d\x36\x74\xd4\xbf\x6d\xd8\x9c\x2d\x03\x7e\xcb\x13\xfe\x47\x72\x46\x71\xa2\x19\xc0\xee\xe4\xc5\xc1\xd5\xdd\x79\x59\x7e\x2c\xab\x19\x01\x5f\xde\x58\x5e\x04\x43\xa5\x19\xb9\x53\x26\xee\xfe\x7a\x61\xb4\x0b\x00\x3d\x36\xe7\x36\x50\x2c\x40\x00\x72\x28\x28\x19\x16\xb2\xf2\x85\x44\x00\x84\x56\x04\x5c\xe9\x3b\x0b\xc2\x99\x9e\x38\x8d\x47\x8c\x7c\xce\x08\x93\x10\x1c\x60\xee\xb3\xc2\xd7\x2e\x8f\xd0\xf9\x14\x58\x82\x7e\x9d\xa1\x9c\x59\x07\x98\xbe\x70\xcd\x20\x0f\xb4\x28\x6b\x87\xe0\x35\x44\x30\xbc\x30\xe2\x82\xa5\x8a\xc1\x8f\xd8\x4f\xde\x89\x06\x8f\xa6\x5c\x33\x20\xbd\x8b\xb6\xbd\x13\x84\x99\xa4\x07\x48\x2b\x2c\xd5\x3d\x85\xd4\x01\xad\x50\xda\x10\x2e\xcd\x69\xec\x9f\xaf\x7f\x0d\xd4\xe2\x84\xc3\xcb\xa0\xf9\x2e\xa8\x5c\x05\x2d\xa2\x71\x62\x3c\x26\xe3\xee\x77\x42\xc4\x05\xb1\x7e\x96\xb5\xaf\x81\x55\x8c\xfd\x1e\xcb\xc7\x9a\xef\xe1\x9c\x49\x85\x59\x44\x4e\x13\x2c\x37\x0c\x42\x72\x36\x8e\x83\xb2\xc4\x71\x7b\xfb\x70\x73\x7f\xfe\xdd\x0a\x2e\x5f\xfd\xb8\x1e\x06\x14\x25\xb9\x73\xcf\x4d\x04\xc7\x31\xd2\xec\x73\xc6\x8d\x2b\xd0\x0a\xfe\x05\xf4\xb7\xc9\xeb\xf1\x01\x95\x25\xd8\xf1\x22\x1d\xc1\xda\x39\x42\x57\x02\xb5\x0b\x81\x22\xbd\x12\x28\x30\x79\xb8\xad\x06\xcf\xa2\x29\x48\x62\xad\x5b\x59\x82\xd5\x94\x8b\xd4\x70\xf9\xd2\xa4\x4d\xe3\xcb\x1b\xa5\x4c\x11\x21\xf2\x4c\x51\x87\xe5\x5e\x95\x52\xa1\xc2\x3b\x9f\x5d\x12\x29\xf1\x8c\x6c\xe3\x80\x6e\x52\x1e\xee\x7e\x0c\xff\x09\x0e\xe6\x2e\xb2\x7f\x69\x84\x2e\xf2\xdd\xd1\xd3\x35\xfb\x68\x02\x79\x6e\x78\x42\xa3\x0d\x03\xee\x3e\x0e\xce\x2f\xc6\xe7\x97\x5a\x89\x1f\xdc\x0f\x2f\x4a\xa2\x04\x3c\x1b\x7c\xbc\x1f\xde\x5a\x10\xeb\xc1\x77\x17\xc3\xf1\xd5\xf5\xd9\xf0\x6e\x7c\x7a\x7d\x79\x73\x31\x5c\x11\x99\xd3\xda\x78\xdd\xba\x5a\x7d\xf5\xa4\xf6\x0b\xec\xb0\xe6\x65\xa1\xbd\x0c\xb2\xc6\x30\x4d\xc0\x09\xce\x8d\x33\x1c\x23\xc6\x63\x02\x3f\x4b\x67\x9d\xf1\xc8\xd1\xe8\x5c\x7d\x95\x24\x08\xe7\x8a\xa7\x18\xbc\x36\xc9\x62\xc4\xf0\x44\xb3\x56\x9c\x24\x41\x78\x97\xc8\x19\xd3\x2c\x56\x37\x66\x20\xda\xa3\x84\x68\x76\x9e\x05\xc9\x7e\xd6\x6f\x30\xa5\x0c\x22\x6d\x53\x2c\x1e\x8d\x9b\xa9\xe8\xb2\x38\x14\x12\x61\x39\x62\x7a\x5c\xc4\x1a\x86\xba\xac\xf0\x49\xa7\xb7\x5a\x57\x27\xc5\x8f\x44\xaf\x4a\x9a\x47\x73\x94\x09\x3e\x13\x44\x4a\x6b\x5b\x8e\x30\x33\x01\x08\xf6\x75\x7d\x0d\x8d\x18\xe3\x7a\x29\x9c\x09\x3b\x26\x19\x61\x31\x61\x11\x35\x69\x7d\xe0\xbb\xf7\xa6\xcd\x99\xc0\xd9\x1c\x49\x0e\x4e\x6f\x58\x76\xb0\x5f\x99\x8f\xdc\x4d\x66\x66\x6c\x1e\x87\x16\x68\x91\x6b\x3e\x71\x0d\x72\xa2\x59\x65\xf8\xd8\x5d\x86\xce\xed\x62\xec\x80\x69\x96\x10\x65\xc0\xfa\x61\xc9\x61\x33\xf4\x5a\x97\xf6\x43\x6f\x53\xd3\x26\xe8\x0b\xdb\x8d\x19\x4b\x3b\xa2\xa3\x06\xcb\xb6\x3d\x52\xe8\x7b\xcc\xe2\x44\xb7\xe2\x7c\x18\xe5\xb3\x08\xa9\x28\x03\x4d\x35\xee\x34\x6e\x73\x8b\x46\x38\x97\xdb\x5c\xa3\x95\x5c\x4c\x63\x15\x3c\x2c\x82\x42\x80\xbc\x6d\x22\x26\xac\x6e\xa6\x59\x24\x4e\xb8\x5d\x25\xf3\x7a\x6e\xea\x3f\x21\x18\x4d\xcb\x35\x9b\x09\xca\x22\x9a\xe1\x64\x23\xdd\xaf\x12\x8c\x6f\x63\xdc\xbf\xa6\x53\x4d\x3e\xdf\xd4\xdc\xb6\x8a\x88\x14\x12\x94\xed\x30\xfd\x16\xae\x61\x49\xb2\x59\x0d\x44\x16\xd1\x24\x58\xf0\xdc\xf8\xe3\x60\x5d\x48\xdc\x70\x54\x8f\x9a\xb6\x5b\x9f\x0c\x5c\x0e\x80\xde\x60\xb3\x4d\xe4\x4f\xdb\xfa\x55\x5a\xb1\xbd\x9b\x60\x3c\x9c\xdc\x34\xb7\xd9\xb4\x03\xc1\xc3\x7f\x2d\xa3\x9d\x4b\x9c\x69\x9a\xb1\xb0\xfd\xb8\x98\xa3\x55\x92\x6c\x55\x30\x17\x3f\x13\xf8\xce\x7d\x5e\x48\xf7\xdd\x28\x96\xd0\x06\x40\xd5\x3b\x29\xc5\x10\x04\x39\xe6\x96\xc6\xa7\xb9\x96\x65\x11\x86\x28\x04\xf4\x35\x39\x9a\x1d\x21\x57\x84\xe1\x00\x0d\x6e\x6e\x86\x57\x67\x07\x88\xa8\xe8\x1b\x17\xb3\x68\x03\x96\x46\x4c\x71\x2b\xad\x2c\x5c\x01\x8d\x94\x88\x19\x29\xcd\xd9\x45\x37\x41\xa8\xf2\x8c\x4a\x65\xc3\x67\x35\x5f\x09\x4a\x9d\xd0\xb4\x2a\x66\x1b\x0a\xc9\xd5\x7c\x1b\xd2\xc0\x52\xe6\xa9\xd6\x65\xc7\x14\xa7\x63\xc1\x93\x6d\x98\xc2\x19\x4c\x05\xd4\x65\x9f\x9e\x4f\x71\x8a\x74\xb3\x36\x14\xc4\xbb\x1c\xbd\x48\xa7\x05\x23\xcd\x97\xf5\xbd\x19\xdc\x5b\xce\xfb\x60\xe3\xd1\xa8\x0b\x81\x80\xf4\xfd\x16\x56\x51\x98\x8d\xc7\xd6\x52\x3f\xc6\x51\xa4\x55\xee\x1d\x4f\x2a\xa8\x9f\xe3\x5c\x02\xb6\xa3\x17\x9b\xe6\x2a\x3a\x77\xc3\xcc\x34\x07\x83\x60\x60\x7d\xe5\x4a\x1e\xd1\xa2\xfd\x86\x7e\x27\x8b\x5a\xaf\xae\xc2\xcd\x83\xf4\x26\x15\x73\x09\x4b\x02\x3b\x29\x4d\x85\x1c\x35\x27\x0b\x34\xc7\x4f\xa4\xd4\xa5\x4b\x88\xd1\x0d\x2f\x78\x2e\x9a\x18\xdd\x88\x9d\x91\x4c\x10\x2d\xe9\x57\x1d\x28\x9e\xa6\x6f\xcb\x94\xd8\xd3\x75\x4f\xd7\xef\x9e\xae\x4f\x4d\xa1\xa4\x81\x2f\x8c\xb5\x95\x00\x67\x1a\x1b\x67\x9c\x27\xe3\x0e\x36\x91\xee\x2b\x5e\xf2\x84\x55\xca\x46\x01\x24\x00\xcf\x41\x3e\x2a\x5d\x9b\x5c\xdf\x75\x41\x8a\xad\x1d\xde\x92\x65\x70\x2e\xb3\xa0\x5e\xce\x36\xe7\xbd\xa9\x95\x65\x2d\xa1\x17\x17\x73\x4e\x8d\x7c\xe3\xdd\x65\x61\xfd\xd3\xd2\x61\x72\xa2\x08\x65\xb5\x6a\x6c\x86\x9e\xf5\x02\x1b\xb9\xe3\x1f\x39\x57\x58\x7e\x73\x34\x62\x5a\x88\x7a\x24\x0b\x63\x6e\xd5\x62\xca\xef\xb4\x2c\x7e\x28\x09\x93\x10\xee\xfd\x3b\xe3\x9e\xd3\x24\xee\xcc\xd5\x46\x35\x35\x45\xe0\x20\xe8\xda\xf7\x02\x21\xba\xb6\x51\x2b\x25\x15\x01\xd0\x20\xe7\x9b\xb9\xd8\x67\x66\xf8\x33\xa2\x20\xc5\x5a\x51\x05\x3a\x53\x6c\xaa\xcc\xd5\x86\xbe\xd2\x74\x65\xa8\x42\x70\xf0\x93\xc4\xf9\x76\x8c\x5f\xd6\xdb\x58\xc9\x19\xbd\xb6\x70\x67\x63\xde\x8f\x9d\xdd\x28\x12\xbc\x56\xba\x0d\x4b\x64\x76\x7a\x62\xd8\x81\xf3\x5f\x13\x76\xf4\x4c\x1f\x69\x46\x62\x8a\x21\x02\x5e\xff\xeb\x58\xcf\xeb\xdf\x4f\x6f\xaf\xaf\xc6\x45\x26\xcf\x7f\x8d\xd8\x20\x91\xdc\x67\x29\x20\xc6\x99\x0f\xb7\xcf\x04\x71\x22\xa1\x9d\x0b\x58\x5d\x0b\x33\xe2\x88\xb5\x8d\x20\xe6\x91\x3c\xc2\xcf\xf2\x08\xa7\xf8\x57\xce\xc0\x95\x3e\x80\x3f\x4f\x13\x9e\xc7\x3f\x61\x15\xcd\x8f\xe1\x5c\xab\x63\xf2\x44\x98\x32\x6e\x2a\xbd\x5c\x31\x24\xef\x4a\x88\xd6\xff\x77\x3d\xe6\x22\xa9\x48\x6a\x4d\x36\x22\x99\x42\xff\x8f\x20\x13\xce\x55\xf3\x25\xc5\xa7\x53\x49\xd6\xba\x90\x0a\x25\xed\xee\x1a\xfd\xe5\xcf\xdf\xfe\x41\x93\xd0\x26\x6b\x7c\x7e\x77\x3d\xd6\xdf\xff\xfb\x99\xfd\x5e\xae\xc1\xee\xae\xb3\x82\xb5\x39\xe2\x31\x81\xf3\x39\x83\xdb\x4f\x80\xf3\x02\xd8\x1b\x90\x43\xb1\x8f\x4d\xdc\xed\xac\xd4\xfa\x76\x2a\xdb\x46\x8b\x09\x2a\x76\x30\x47\x74\x88\x18\x47\xa9\x89\x35\xc5\x0c\xfd\xc7\x0f\xdf\x35\x6f\x60\x2e\xe8\x46\x1d\x52\x0b\xd7\x10\x74\x29\xe9\xaf\x44\x22\x4d\x35\x9a\x8a\x79\xaa\xbb\x16\x44\xce\x79\x12\xa3\x67\x02\x6a\x92\x8d\x03\xf5\x5a\xb9\x20\x23\x16\x36\x01\x21\x87\x08\x27\x8a\xcf\x08\xdc\xd5\x4e\x51\x53\x44\x68\x51\xc5\x64\x69\x28\x2e\xc8\x81\x81\xfa\xba\xfb\x93\x8b\xad\x86\x69\xc2\x23\x97\xd4\x62\x4d\x72\xf1\xa4\x79\xe6\xd3\xaa\xe9\x15\xb5\xdb\xf0\xab\x9b\x6c\xcd\xb6\xcd\x4b\x63\x93\x50\xac\x0d\xab\xba\x33\xcd\x83\xa1\x11\x67\xe3\x84\xb2\xc7\x8d\x36\xe3\xda\x89\x72\xba\x05\xbb\x66\xba\x45\x6f\xe7\x36\x16\x90\x35\xce\xc7\xc7\x3c\x49\x4c\x6a\x4b\xb8\x3d\x20\x77\x99\x75\x03\x61\x20\x33\x39\xa0\x24\xb6\x7e\x2f\xab\x09\x0b\xc2\x20\xe0\x6d\xc4\x26\x0b\xeb\xb3\x95\x07\x48\xe6\xd1\xdc\x65\xe6\x45\x9c\x49\x2d\x46\x73\x81\x22\x9e\xa6\xa6\xb8\x29\x23\x48\x71\x9e\x48\x1b\xed\xce\x0e\x15\x8e\xd4\x88\x15\xfd\xad\x38\x79\xa6\x02\xd2\x76\xa9\x7b\xdd\x5d\x3a\x45\xa5\xa5\xa5\x02\x37\x8d\x43\xcc\x06\x30\x82\x19\x4f\x54\x80\xfe\xc0\xeb\x67\xc9\x6c\x58\x8b\x66\x20\xe7\x5c\xa8\x71\xdc\xc8\x73\x56\x12\x4d\x95\x11\x32\x72\x98\x40\xd0\x30\x7f\xd2\xc2\x3f\x79\xf6\xc6\xd7\x65\x43\xd0\x54\xbd\x6c\x04\xdd\x8e\xd1\xd2\x91\xad\x4b\x82\x2d\x6b\x65\x10\x3c\xa2\x72\x4c\xf8\xaa\x31\xde\xc1\x57\xa7\xfa\xa3\xa5\x8b\x57\x3d\x77\x4e\x08\xe2\x71\x01\x36\x67\xee\x75\x9b\x11\xb2\x6c\x4d\x2d\x74\xc2\xcb\x65\x8e\x2e\x9b\xca\x43\xd9\x92\xab\xc7\x02\x26\x7b\x49\x40\xd6\xc4\x62\x42\x95\xc0\xa2\x84\x14\xe2\xf5\x41\x49\xb0\x80\xf8\xac\x11\x33\xb8\x71\x46\x53\x88\x51\x4c\x25\x24\x88\xc0\x5d\x1a\x38\xc3\x50\x37\x25\xb0\x72\xb4\x8b\x3c\x47\x13\x7f\x0e\x81\x65\x05\x69\x38\x66\xa7\x3b\xf2\xf8\x58\x5a\x3f\xe3\x51\x5e\x08\x72\x11\x48\xb8\x16\x53\x07\x51\x26\xe9\x6c\xae\x10\x65\xd6\xee\x88\x93\x19\x17\x54\xcd\x53\x79\x80\x26\xb9\xd4\x5a\xa8\x09\x56\x33\xf1\x28\x44\x45\x9d\xb8\xd0\xb6\x49\xc4\x71\xa5\xc1\xba\x8a\xb2\x01\x69\x74\x3b\x94\xc3\xca\x5d\xb1\x82\x70\x06\x1e\x67\xb0\xda\x06\x85\xba\x8d\x06\x9e\x12\x99\x38\x40\xee\x90\x9d\xa0\x0a\x48\xdb\x39\x00\x54\xc8\x9d\x79\x29\x5e\xa3\x10\x17\x32\xc9\xa0\x82\xb8\xd8\x6d\x90\xbc\xca\xc8\x94\x06\xbd\xc9\x3b\x9d\xd2\x4c\x35\x06\x6e\xd5\x5d\x45\xb7\x01\xe6\x4f\xb7\xc5\x86\x64\x2c\xa0\x66\x40\x6a\x1b\xb1\x3b\x42\xda\x81\xdc\x6a\x7b\x6f\x4a\xe3\xc2\x14\x6c\xa2\xc7\x72\x92\xdf\xc6\x89\x7d\x36\xbc\x3b\xbd\x3d\xbf\x31\x90\x13\xd7\xb7\x97\x83\xfb\x71\x83\x5f\xbb\xe1\xad\xcb\xc1\xed\x0f\x67\xab\x5f\xfb\xfe\xbe\x9c\x95\xdd\xf0\xca\xed\xdd\xf2\x64\x8e\x0e\x43\x6c\x48\x0a\x6b\xec\xe7\x04\x65\x0b\x35\xe7\xcc\x87\x28\xc4\x25\xde\x74\x88\x4c\x46\xb0\x82\x10\x22\x21\x55\x83\xe3\xf0\x1e\xe2\x72\x56\x4b\x98\xe5\xcd\x32\x30\x6c\x3b\x15\x8d\xd6\x38\x91\x9f\x12\x3e\x01\xbf\x75\x5e\x2a\x71\xbb\x24\x02\x7d\xcb\x78\x9f\x33\x2a\xb3\x04\x2f\x6a\x3d\xac\xba\x72\xae\x70\x4a\x20\xe2\xb8\xc0\x8f\x73\xc9\x22\x7a\x67\x20\x81\xc9\xdf\xeb\x74\x0a\x99\x4c\x8a\x62\x45\xd0\x84\xa8\x67\xc8\x9b\x73\xbf\x7a\x5b\xaa\x0b\x18\x91\x47\x23\x06\xe6\x9c\x91\x5e\xe4\x38\x87\x68\xbf\xd1\x87\x03\x34\xfa\x10\x93\x27\x92\xf0\x4c\xef\xbc\xfe\xa1\xe5\x92\x19\xa6\x98\x26\x57\x5c\x79\xcb\xdc\x36\xfb\x29\x48\x44\x33\x90\xcc\xc7\x44\xb7\xfb\x7a\x82\x47\x89\x92\x1d\x3b\x83\x31\x20\x1c\xc7\x5a\xc9\x06\x56\xe6\x86\x57\x84\x00\xb1\x60\xea\xa5\x5a\x99\xeb\x88\x14\xde\xfc\x6d\x7a\x0c\xdb\x2c\x9b\x3d\x1b\x77\x80\x3d\xbd\xa0\x4b\x76\xdb\x8b\x5c\x6b\x25\x3f\x90\x05\xa4\x60\xdc\x60\x2a\x36\x74\xcd\x36\xc5\xbc\xbe\x88\x93\x76\xd8\xd0\xd1\x1e\xb9\x6b\x9b\xd7\x61\x3b\xc7\xad\x8f\xd5\x7b\x2d\x2d\xd5\xc5\x72\xf9\x8e\x3b\xaa\xad\x0f\x6d\x4a\x6a\x6b\x08\x03\xaa\x2a\x5e\x19\x89\xd6\xd0\xb8\xfc\x00\xef\xf4\x77\x2b\x35\x15\x2f\xae\x45\x61\x4d\x7f\xd8\x05\x9b\x1c\x5f\xcd\xc7\x27\x2b\x47\x1c\x25\x5c\x96\xb1\x72\x3a\x0f\xfa\xd4\x7e\xba\x6c\xdc\xc3\x90\x7c\xb5\x5c\xb8\x56\x40\x43\xc3\xc2\x57\xc0\x20\xcd\x3d\xa3\xac\x87\xcc\xbe\x7d\x80\x28\x44\x5b\x82\x42\x96\x14\xc8\x01\x2c\x46\x85\x1b\x64\xc4\x8a\x98\x15\x89\x9e\x49\x02\x61\x6e\x11\x4f\x33\x30\xf1\xdb\xe1\xda\x96\x48\x6c\x22\x86\x0f\x10\xcf\x95\x6e\xcc\xe4\xe4\x38\x23\xae\x4d\xf8\x29\xdc\x1e\xc6\xf7\x66\x83\xdf\x3d\xb0\xb4\xa1\x75\x73\x97\x52\x86\x3e\x11\x05\xad\x00\x70\x7f\x38\x41\xd0\x13\xaa\x21\x94\xcd\x6b\xbf\xc5\x89\xb2\x33\x59\x63\xe7\x0b\xe0\x94\xef\x12\x3e\x59\x6e\x24\x80\xc6\xd1\xc3\xed\xb9\xb3\x48\x16\xf1\x53\x01\x7a\x71\xc9\xa3\x38\xbc\xb9\x1d\x9e\x0e\xee\x87\x67\x47\xe8\x41\x12\xbd\x3c\x7e\xba\x90\x5f\xed\x55\x12\x33\x72\x8b\xc4\xc2\xa4\x22\xb8\xcd\x10\x42\x84\x28\x65\x41\xaf\x60\x1c\x65\x98\x96\xe5\x84\x0d\x20\x29\xd4\x1a\xea\x00\x58\xa8\x3a\x4f\x1b\x99\xb7\xea\x04\x42\x9c\xd4\xf8\xfd\x44\xa9\x99\xf1\xa6\xf5\xc8\xbc\x55\xe4\x53\x8e\xe8\x7b\xe9\xc9\xc0\xd1\x52\x73\x42\x05\xea\x34\x2d\x43\x54\xe3\xee\x73\x0a\x42\xdc\x2f\x71\xb6\x3c\xfd\x14\x3f\x97\x88\xd6\x88\xc2\x81\xef\xfe\xa5\xcf\x81\x63\x6b\x63\xc3\x0a\xb7\x9f\x60\xe1\xd0\x32\xbc\xd5\xf3\x4d\x93\xf1\x21\x9d\x91\x2c\x9c\x58\x65\x10\x36\x8e\x55\x22\x38\x3b\xf0\x0b\x65\xa8\x74\x25\x1e\xa0\x29\xfd\x6c\x1b\x2d\xe2\xdb\xdd\xab\x41\xc0\x43\x4b\x3c\xe5\x1c\xd7\xcf\xd4\x1a\x62\xc3\x0d\x7c\xbf\x54\x88\xe4\x52\x8b\x44\x91\x16\x97\x04\x89\xb8\xd0\x37\x05\x74\x5b\x78\x21\x56\x89\x0c\x0a\x0b\xbd\x28\x75\xaf\xcc\xb2\xd3\x5f\xd4\x20\x89\xb1\x22\x87\x5a\xf4\x5a\x91\x00\x6d\x73\x64\x20\x9b\x06\xab\x00\x0e\xac\xb8\x79\x26\x64\x86\x99\x0b\xcd\x6e\x19\xae\xbb\xf2\xb6\x60\x55\x5a\x05\xc2\x90\x1e\x06\xf2\x15\xa4\xfe\x94\xc6\x21\x33\x58\xcf\xa5\xe3\xb0\xd1\x2f\xfb\xb0\x6c\xcf\xd8\x07\xe3\xb4\x0c\x36\xcf\xe2\x7d\x1a\x6c\x82\xa5\x42\x76\x4c\x6d\xa6\x88\x40\x45\x7c\x59\x23\x6c\x49\xb7\xef\xaa\xbc\x69\x12\x2a\x6b\xb1\x04\x3c\x23\xd2\xe1\xa6\x18\x94\x18\xad\xd3\x38\x41\xd8\x94\x62\xf6\x67\xdb\xd6\x64\x76\xb7\x44\xc8\x4c\x20\x48\xbf\xde\xf4\x11\x1a\xb0\x1a\x5e\x96\x8b\xcb\x2a\xad\x97\xb9\x93\x70\xf2\x8c\x17\x12\x65\xc2\x40\xcb\x98\xc8\x7d\x37\x79\xd0\xc0\xca\x1f\xf9\x50\x08\xe5\x52\x27\x10\xd8\x62\x56\x07\xcd\x39\xb9\x77\xfc\x02\xae\xbc\x4a\x54\xb9\x17\xc8\x8b\xe6\x0a\x5b\x45\x07\x56\xa7\xc8\x38\x9a\x63\x36\x23\x63\x67\x64\xdd\x44\x5b\xd2\xed\x9c\x42\x33\x67\xb6\x95\xe6\xcb\xe9\xc6\x28\x4c\xb6\xfe\x8b\x79\xd5\x1b\x10\xf5\x21\x90\x0a\xcf\x08\x32\x23\xea\x64\x96\x2e\x45\x8c\x59\xb0\x61\xd0\x13\x6c\xab\xc3\x72\x14\x7d\x9b\xf0\x0e\xa1\x4f\x17\x78\x42\x92\xb7\x89\x9c\x80\xae\xad\x71\x1e\xbc\x75\x26\x1b\x80\xa0\x67\xb0\xe7\x57\x58\x86\xb5\xde\x8b\xbc\x29\x37\x60\xd9\x3c\x4b\xd5\xcf\xb7\x98\xa8\xab\x15\xb2\xc9\x54\xdb\x2a\x88\x84\xd7\x5e\x50\x69\xa3\xc9\xc0\x16\x5e\x7f\x55\x9b\xf2\x66\x03\x09\x0a\x7e\xb4\x8c\x63\xeb\x8a\x1f\x2b\xa7\xb2\x31\xc8\x40\xc7\x2a\x78\xe7\x53\xc4\x38\x23\x88\xca\xe2\x65\x55\x4e\x87\xf2\x10\x3d\x5a\xc4\x37\xc6\x17\x5f\xa5\xcb\x17\x5f\x7a\x69\x4b\x4b\x01\x9e\xe0\x6d\x03\x2e\xbf\x9b\x11\xad\xa8\x62\xb1\x00\x88\x4f\xc3\x87\xcb\x32\xdd\xca\x71\xee\x5c\xe0\xbe\x77\x08\xae\x41\xa4\xae\xe2\x08\xc4\xc8\xca\xe0\x90\xc1\x41\xb5\x2f\xd9\x8f\x2c\x4c\xcd\x88\x79\xcb\x06\x10\x22\x95\x28\xc5\x19\xf8\xf4\x18\x57\xc5\x57\x06\x76\x49\xf9\x2d\x3c\x70\x82\xb8\x34\x35\xb4\x5a\x56\x60\x95\x69\xc7\x5d\xbf\xc5\xba\x96\xe1\x2d\x1d\x34\xef\x8c\x3e\x11\xe6\x68\xfa\xc0\x9d\x09\x3d\x28\xd7\x69\xb2\x38\xc4\x10\x66\x4c\xe2\xd0\xf3\xb1\x9c\x23\x19\x83\xcc\x3e\xd8\x23\xbb\x2f\xd9\x7d\x63\x18\x8d\x01\x49\x2b\xa1\xdb\xbb\xc0\xf0\x90\x4a\x2d\x6e\xaf\xc9\x04\xc7\x12\xfd\x8e\x71\xf5\xbb\x00\xd9\xd8\x19\x2f\xe0\x53\x67\x82\x3a\xa8\x95\x6c\x81\x43\x6b\x09\x07\xe1\x00\x61\x6b\xe5\xca\x6f\x1b\x1b\x50\x04\xbe\xbf\xa8\x34\x3a\xac\x67\xc1\xb5\xd5\xbc\xea\x3d\xf6\xa8\x7a\x2d\x54\x0d\x9e\xa6\xac\x5e\x71\xd2\x4b\x86\x4e\xb9\xca\x45\xef\xf7\xa2\x93\x6b\xbe\x86\x08\xb0\x0d\xb5\xa5\x9d\x23\xa7\x56\x80\x20\x37\xdb\x25\x36\xc9\xf3\x6c\x93\xcb\x45\x39\x74\xcd\x96\xc1\x68\x41\xf9\x3d\x1a\xb1\x8f\x5c\xd8\x2b\x58\xda\x3a\x03\x13\x1c\x3d\x1e\x12\x16\x23\x9c\xab\xb9\x41\xdb\xb5\x7e\x85\x85\xa5\x06\x2d\x69\x00\xd9\x78\x28\x0d\x2a\x23\x2c\x62\x57\xf1\xe2\x89\xbb\x51\x8c\x58\xd0\x08\x54\x32\x80\x42\x4f\x50\xaa\xb6\x4d\xd5\x24\x52\xeb\x57\x6d\x6b\xd1\x54\x84\xb5\x56\x82\x75\xf9\x39\x2b\x15\x95\x85\x1a\x0c\x10\xe0\xc4\xa7\xf5\xd5\x39\x77\xd6\x46\xa7\xdf\x69\x7a\xae\x7b\x21\x0e\xac\x46\x61\x4c\x52\x76\x06\x5a\xd2\xf9\xd6\xf1\xda\x12\x6a\xf0\x34\x17\x10\xae\xdb\xd4\xe6\xd7\xd1\x9c\x26\x85\xef\xe2\x9b\x03\x3f\x4c\xdd\x64\x42\x9e\x48\x62\x30\xeb\x23\x01\x91\xf9\xc6\x6a\xf8\x2d\xfa\x3f\xa6\x30\x29\xfa\xc3\x88\x7d\x02\x36\x9c\x24\x0b\x40\xd4\xf4\x2d\x63\x55\x69\xe6\xb1\x71\x00\xca\xa6\x02\xa1\xf2\x40\xcc\x5e\xcf\xf1\x13\x19\x31\xd7\xcc\xff\x41\x8f\xe8\xf7\xe8\x0f\x6d\xea\x9d\x0b\xb0\x7f\x61\x3b\xc7\xc7\x20\x7c\x3d\xb8\xe5\x2c\xa3\xb4\xfc\xc6\x99\x41\x4a\x46\xc8\x06\x64\x0d\x0f\x8c\x4d\xd9\x13\x8f\x6a\x59\x1c\xe1\xa9\xc5\x82\x30\x35\x66\x3c\x26\x63\xd2\xe0\xd2\x5c\xc2\x24\xb4\x10\x70\xc5\x63\xb2\xd2\x21\xe9\x99\xe9\x4f\x60\xba\x91\xf9\xc4\x6f\x07\x24\xf8\xfb\x6c\x6e\x6f\x7d\x28\x53\x5a\xf3\xc8\x3d\xfa\xec\x26\xe3\xde\xd4\x99\xea\xc2\x44\x0f\xe0\x42\xb0\x03\x68\x76\xe8\x25\x58\x39\xf7\x7a\xf5\x38\x56\x1d\x01\xfa\x65\x3d\x73\x7b\x59\x05\xb8\xba\x50\xfb\x44\xd0\x19\xd5\xf2\x7b\x77\x87\x2d\x70\xc2\x4d\xbc\x19\x06\x64\xb4\x93\x3b\xa3\x58\x0a\x07\xb4\x72\xe8\xe9\xaf\x70\x42\x4e\x78\x5e\x15\xe0\xed\x02\x50\x19\xba\xfb\xad\xac\xbe\xd0\x7c\x78\x66\x32\x00\xc9\x9c\x9a\x9c\xfb\xc1\xe9\x05\xd2\xa7\x83\xa7\x06\x98\x0a\x16\x2d\x57\x73\x2e\xe8\xaf\xad\x19\x4a\xed\x32\x7a\xe1\x69\x2d\x12\xba\xcc\x38\xcb\xd2\x3a\x10\xab\x11\x29\x54\x49\x2b\x69\xd2\x99\xd0\x24\x07\x0c\x56\xcd\x66\xa7\x79\x62\x0a\x37\x44\x5c\xc4\xa6\x72\xba\x2c\xa5\x8f\x41\x18\xae\x13\xef\xb1\xf2\x0d\x52\x0b\x55\x69\x4b\x43\x18\x0b\xce\x52\x01\xf4\xaf\x39\xc9\x77\x94\x81\xf7\xa6\x31\xcb\xf7\x78\x26\x8b\x20\x64\xb3\x36\x9a\x37\x17\xeb\xfb\x0f\x3d\x53\x19\xe4\xac\x3a\xcb\xa2\x87\x80\x32\x2a\xb9\x29\x0c\xba\x96\x45\xe7\xd6\x40\xdf\xef\xc0\xa4\xf3\x1a\xf1\x1c\x75\x19\xa9\x81\xfd\x58\xf2\x7b\xf2\x19\x9c\x55\x16\xf1\x42\x76\x12\x57\x43\xa0\x22\x7d\xbc\xa0\xc9\x64\x03\x26\x57\x17\xaa\x97\x46\x45\x17\x06\x14\xcf\xd6\x1a\x92\xa9\x15\x87\xb4\x8b\x67\x41\x01\x21\x6e\x51\xbc\xec\x6b\xe0\xba\xeb\x22\xe4\x31\x5a\x4a\x31\x62\x2d\xc4\x75\xb8\x25\x5c\x34\xf3\xf8\x35\x0c\x10\xb6\xa1\x72\xd7\x75\xbf\x7d\xdb\x89\x30\x2c\x69\x5f\x8f\x44\x1d\x1e\x66\xe5\x61\xf0\x95\x40\xde\xc6\x80\xe8\x45\x9b\xd7\x3b\x19\x9e\x1c\xc7\x11\x8e\xe6\xad\x93\x9a\x70\x9e\x10\xcc\xda\xa4\xd7\xc6\xc7\xd5\x23\x62\xc0\x4d\x81\x75\x27\x09\x20\xfc\xba\x25\xb0\x55\x21\x0b\xf1\x9d\xc5\x80\xcc\x6e\x78\xb8\x89\x0d\x74\x03\x55\x84\x39\xcb\x0f\x65\xb3\x84\x54\xd7\xca\x42\xe8\x1f\xd8\x4e\x92\x28\x4f\x82\xb2\x90\x19\x11\x7a\xd4\x7a\x89\x9f\x08\xd3\x3a\x83\x1d\x87\x73\x66\x3c\xbb\x84\x68\x5f\x0c\xea\xc0\x77\xed\xfc\x69\x90\x75\x18\x8f\x18\x1c\x5c\x5e\x3e\xac\x9a\x56\xa5\x56\x33\x42\xbb\xd4\xc6\xa7\x33\x10\x22\xd6\x3e\x9e\x77\x65\x33\xf1\xda\x67\xd2\xf4\x3d\x86\x18\x83\xad\x5d\x6b\x81\xfb\xa5\x80\x6a\x30\x1b\xeb\xe0\xb8\x5e\xc9\x88\x0c\x51\x1b\xe5\xb0\xd3\x20\x68\xa3\x0d\x0e\xea\x45\xef\x92\xa2\xfc\x85\xbb\x0d\x3a\x0e\x65\xa9\xab\xba\xa3\xe3\x19\xac\x93\xcb\xce\xed\x85\x0d\xd9\x2e\xbb\x6c\x7d\x7e\x4f\x11\xe6\x68\x0b\xbc\x2a\x81\x01\x9d\x00\x72\xca\x7f\x32\x1a\x36\x95\xc6\x02\xe6\xca\x5c\xa4\x99\x5a\xd8\xaa\x68\x70\x2f\x86\x39\xbd\x06\xf1\xad\xc9\x3d\x5c\xbd\x23\xe3\x92\x83\xb8\xa9\x33\xe8\xc8\x9a\x15\x1a\x9b\x74\x0b\x1d\x22\x88\x54\x10\x1b\xda\xa2\x41\x4c\x81\xd9\x31\x4e\x5a\x6d\x59\x3b\x60\x9a\x90\x66\x5b\xa0\x34\x58\xf0\x57\x25\x72\xa2\x79\x17\x4e\x92\xca\xbc\x30\xa4\x43\x2b\x5f\x64\x6e\x52\x54\xc2\xed\xee\xac\x4e\xf0\x84\xac\xe5\x9e\xbe\x30\x1f\x2c\xa5\x22\x78\x05\x22\xbb\xb3\x2c\x59\x74\x8b\x28\x0f\x43\xef\x1a\x41\xd2\x56\x0d\x2c\x84\x56\x5b\x7a\x37\x95\xe1\xc9\x36\x1b\xa2\x24\x51\x2e\xa8\x5a\x8c\xad\xd1\xaf\x3b\xd3\xba\xb3\x5f\x9e\xda\x0f\xbb\x68\xd4\x27\xc8\xf5\xe7\x8c\x8c\x70\x4f\x09\x6a\x2a\xe8\xd8\x29\x74\xd9\x6e\xad\x25\x37\x82\x27\x2d\x5b\x58\x87\xde\xd4\x6d\xa8\xba\x8b\x4d\x87\x67\x2b\x73\x8c\xf9\xd4\xe1\x22\x75\x5f\xd8\x6a\xc9\x92\x35\xac\xa5\x0e\x7e\x39\x13\x94\x0b\x5b\x19\xa4\x4b\x50\x5b\x8a\x3f\x8f\x33\x2c\x70\x92\x90\x84\xca\x74\x73\xdb\xee\x9f\xfe\xb8\x74\xb4\xa7\xa6\x82\x8d\xb4\xf5\xa0\x3e\xd3\x34\x4f\x11\xcb\xd3\x89\x95\x72\xb1\x7c\x0c\xc1\x2f\x5d\xaa\xbe\xc1\x70\x72\x03\x2c\x01\x06\x88\x00\xce\x74\xc4\x02\x60\x6b\x6b\xaa\xc0\xd1\x9c\x92\x27\x80\xdd\x14\x8c\x48\x79\x84\xae\xb8\x22\x27\xe8\x12\x67\xf7\x20\xa8\x99\x92\x92\x33\x63\x1d\xc7\x12\x69\xa9\x35\x67\x54\x1d\x8c\x98\x45\xc3\x76\xab\x72\x1c\x71\x66\x10\x51\x23\x58\x58\xdf\x04\x98\x7b\x1d\x34\xa8\x72\x89\x8d\x54\xb6\x2c\xb6\xc0\xcf\xe3\x20\x7a\x75\x6c\xb2\x03\xd6\xa0\xe3\x5b\xfc\x6c\xe2\xb5\xcf\xb0\xc2\xa6\x5a\xec\x32\xc9\xdd\x06\x44\xd9\x0a\x42\x06\x08\xd8\x05\x8e\x70\x8b\x46\xe1\x6b\x9f\x99\xe8\xd4\xaf\xe9\x11\x39\x42\xdf\x25\x7c\x22\x0f\x90\xf4\xa0\xd9\xf0\x50\x12\x25\x0f\x8c\x83\x0a\xfe\x6d\x52\xc1\xbe\x71\xab\x5f\xf0\x7d\x28\xfb\x37\xa5\x9f\x0d\x08\x86\xfc\xd3\xc9\xf1\x71\xba\x38\x9c\xe4\xd1\x23\x51\xfa\x2f\x90\x29\x1a\x57\xc8\x21\x48\xe1\x26\x3c\xaa\x55\xab\x53\xc7\xb2\xea\x44\x91\x36\xad\x46\x12\xc0\x4d\xd7\x57\xba\x2f\xac\xea\xa0\x8f\x38\x6b\xae\x1a\x69\xa7\x2c\xf2\xb6\xe3\x55\x02\x5c\x7e\x1d\x6d\xc5\x14\x8e\x0d\x71\x9e\xa7\x09\x9e\x55\x54\x96\x35\x94\x94\xeb\x94\x5a\x2a\xd2\x73\x87\x78\x0b\x7d\xca\xca\x51\x66\x5f\x39\x77\x24\xb8\x15\xad\xbb\xe5\x68\xc4\x06\x12\x3d\x13\x53\x0f\x16\x72\x12\xc1\x3b\x91\x53\x39\xf7\x19\x89\x60\x2f\x85\x46\x0d\x1c\xae\x41\x4d\xb0\x8a\xa3\xd3\xac\x9c\xff\xc6\x6a\xa0\x38\x91\xe4\x40\x37\x0c\x90\x68\x2e\x90\x10\x3d\x0b\x9c\x65\x44\x8c\x98\x85\x36\x05\x00\x6f\xce\x6d\x90\x48\x5b\x34\x79\xaf\x51\xbe\xae\x46\x19\x26\x7d\x94\x13\x16\x57\x9d\x6f\xc8\x6f\x5c\x9a\xea\xb1\x24\x37\x50\xcb\xa2\x4b\x23\xbd\x57\x69\xba\x83\x4a\xc8\x3b\x94\x6e\x4e\x41\x19\x93\x45\x85\x4a\x67\x37\xf3\xaa\x70\x49\x64\x00\x94\x69\xf8\x38\xe6\x44\x06\x06\x71\xe4\xed\x5a\x09\x9d\x12\x7d\x93\x8f\x98\x26\x89\xd0\x78\x6f\xc0\xaa\x1d\x76\xb5\xee\x34\x12\x5c\x4a\x1b\xc5\x6e\xda\x59\x9e\x8b\xb4\x45\x5d\x3c\x83\xb8\x7d\x7e\x7d\x35\xae\x57\xc8\x0b\x9e\xb9\x5a\x79\xf6\x61\x63\xc2\x7a\x6b\x53\x2b\x2b\xe3\x15\x6b\xb1\x46\x6d\xbc\xe3\xd3\x8b\x73\x5f\x10\xaa\xd2\x75\xbd\x38\x5e\x88\x52\xde\x5e\x1e\xaf\x3e\xe3\xa0\x50\x5e\xa5\x89\x25\xa5\xf2\x56\x6f\x56\x39\x76\x76\x1b\x08\xba\xca\xd6\xaf\x3c\x6b\x65\x9a\x59\x15\xe2\xbd\xa3\x6d\x6a\x61\xd1\x11\x08\x5f\x2f\xed\xad\x06\x21\x46\xbf\x25\x15\x4e\xb3\x30\x7d\xd1\x61\x70\xda\x69\x9a\xa3\xd6\x76\xa1\xbc\x2a\x36\x78\x84\x4d\x64\x48\x75\x70\xb5\xad\x58\xcf\x7b\x74\x6f\x21\xc7\x77\x11\x12\xfc\x7a\xf9\xc0\xc9\xa2\x88\x80\x93\x56\x0e\x72\xe5\xac\x5b\x6c\xe8\x13\xe2\xe1\xd5\x5b\x37\x74\xdb\x84\x3f\x0f\xc3\x24\x08\x96\x36\xb4\x01\xf2\xe2\x2a\x39\x33\x6b\x98\x5a\xfd\x98\x4d\x66\xed\xa1\x2f\x68\x10\x5c\x35\xb6\x46\x57\xe4\x0e\x22\x15\x82\x3c\x11\x01\xb4\x63\xe3\x67\x58\xf9\xa8\xe2\x44\x10\x1c\x2f\x82\x15\xf1\xce\x7b\xd3\x33\x98\x9a\x24\x4d\xb5\x32\x0c\x62\x3e\xe3\x87\x3c\x73\xf2\x7f\xe9\x2d\xa8\x46\x41\xa7\xfa\xc6\x0a\x5c\xff\xfa\x0b\x76\x48\x3e\x53\xa9\xf4\x1d\xdd\x10\xf7\xe8\x1a\x01\xe9\x01\x6a\x54\xcd\x89\xbd\xe1\x46\x1f\x06\xdf\x5d\xdf\xde\x0f\xcf\x46\x1f\x8a\x48\x77\x97\xca\xe5\xd1\x95\x1c\x58\x3e\x67\x23\xe6\x83\x53\x3d\x98\x30\xec\x25\xc2\x71\x5c\xa0\x04\x58\x85\xcc\xc8\x3f\x4b\x39\x72\x70\x2a\x56\x86\xa5\x2e\x69\xe6\x01\xf2\x79\xf6\xf5\x64\x2d\x71\x43\x95\x4e\x8e\xc9\x4a\x5a\x92\x3e\xb2\xa3\xcb\x26\xc4\x41\x55\x46\x6f\x25\xca\x01\xf5\x31\xf2\xec\xf4\x0e\xb8\x9d\x8f\xb1\xb9\x84\xd7\xe3\x76\x6e\x43\x36\xd8\xd4\x8f\xf4\x33\x89\x6f\x5b\xa4\xaa\x9d\x64\x87\x74\x8a\xaa\x6b\xdc\x85\x9c\xd1\x75\xb4\x67\x3f\x95\x07\xfd\x5d\x77\xb6\x74\x5d\xc0\x9b\x15\x50\xa5\x80\x53\xaa\x10\x46\x11\x11\x0a\x53\x86\xa6\x70\xb0\x59\xb4\x40\x00\x7e\x41\xc0\x1f\xfc\x47\x94\x52\x06\x59\xf8\xcb\x96\xf6\xa1\x3c\x8f\x35\x84\xd6\xcb\xf3\xab\x87\xfb\x92\xa8\xfa\xfd\xf5\x43\xb9\x40\xfa\xe0\xe7\xa5\xb2\x6a\xa5\x85\x65\x81\x37\xc1\x14\x8b\x8c\x3e\x8b\xd8\xea\x57\xa6\x71\xa2\xc9\x42\x91\x87\xdb\x8b\xad\xe4\xbb\x66\xc7\x53\x2b\xde\x76\x28\x5d\x35\xa3\x0b\x74\xf9\x34\x26\xd1\x2a\x44\xd0\xee\x74\x64\x22\x8a\xf4\x3a\x58\xcb\x9c\x45\x0b\xc3\x12\x65\x58\x58\x9f\x4e\x6c\x82\x89\xca\x55\xb6\x8c\xe6\xb5\x0c\x8d\xe1\x13\x51\x3f\xea\xab\x8f\xb3\x5d\x64\x14\x58\x51\x16\x7c\x8d\x64\xfc\x64\x1a\x5e\xe3\xa4\xd9\xa1\x2c\x49\x1b\x71\xc2\x32\xf4\x80\x6c\x0f\x21\x86\xc1\x91\xa9\xb6\x3e\xd0\xcd\xc1\x8a\xb8\xd8\x3c\xad\x92\x72\xa6\x29\xd2\x40\x93\x3a\x3c\xd3\xa0\x39\x3e\x35\x1f\x77\x44\x77\x0b\x22\xc4\x75\x5b\xc5\x52\xa2\xc1\xcd\x79\xc3\x5a\x5f\x54\xdd\x31\x5f\x56\x69\x98\xc4\x7b\x86\x76\x0d\x38\x14\xa4\xfa\xed\x05\xc2\x90\x9d\xe9\x76\x90\x42\xc6\x81\x7e\x53\xf6\xca\xef\x03\xf2\x6d\x93\xca\x50\x4a\xe1\x5d\x01\x72\xbb\x5e\x56\x5b\xb1\x0c\x6b\x02\x08\x85\x03\xb2\x29\x15\x21\x68\x4e\x3d\x5e\xf7\x20\x04\xd1\xe1\xa6\xf8\xac\xf5\xd3\xef\x0c\x58\xa8\x98\x4d\x17\x64\xa1\x1f\x0d\x45\x7b\xe0\x09\x80\xd2\x70\xc5\x0d\x5d\x9c\xad\xcd\x03\x0f\xa7\x1b\x52\xdb\x7a\x60\x44\xc5\xf8\x9c\x29\xd9\xe2\x3a\xe3\x0c\x5b\xbb\x03\x28\x51\xae\xea\x40\x53\x91\xba\xa3\x11\x0b\x82\x3f\xa4\x51\x7b\xf4\x19\x71\x85\x3e\xa0\x7a\x2c\x03\x90\x68\x48\x78\xf1\xc2\x4f\x69\x07\xaa\xe9\xe6\x6a\x5e\x2e\xd5\x51\xeb\xc7\x9e\x4e\x39\xc7\x2e\xa9\xcf\x59\x50\x6c\x4c\x5d\x68\x5f\x82\xf6\x02\x70\x7e\xdb\x31\x98\x76\xc1\x68\x81\x83\xd2\x6f\x41\x22\x78\xcc\x89\x64\x5f\x29\x9f\x36\x49\x13\x5b\x5e\x04\x57\x4d\xed\x5a\xaa\xc3\xd4\xb6\xbc\xfc\x80\xef\x00\xe9\x68\x5d\xc5\x21\x38\x56\x2b\xcd\x54\xce\x5f\x0a\x94\x10\xc6\xf5\x40\xa7\x6d\x16\xea\xcf\x19\x89\x36\x81\x63\xb9\xc1\x02\xa7\x44\x11\xb1\x2c\xb4\xa7\x5c\x98\x19\x44\x1c\xb7\x83\xb6\x5f\xb3\x8b\xa6\x6a\x45\xb5\xbc\x89\xd7\x6e\x2f\x56\xc1\xab\xf8\x59\xac\x85\x24\xa5\xa7\xf1\xa3\xb5\xa2\xaf\x39\x0b\xdb\x4f\x31\x0d\x1b\xb9\x14\xa0\xe9\x6c\x3b\xa7\xd7\x81\x15\xb9\xaf\x01\x74\x94\x42\x6f\xf6\x04\x4f\x64\xf5\x28\xdb\x80\x44\x56\xf1\xd2\x9d\xf0\x6e\x97\x2d\xe0\xd2\x51\x2b\x87\xaa\x94\x87\x00\x54\x02\x2a\x95\xc1\xd4\x68\x06\x03\x01\xa1\xa5\x29\xda\x30\x70\xa1\x59\xa8\xb8\xc2\xa0\x6b\x25\xab\x6a\xa1\xa6\xca\x72\xad\xe0\x71\xbb\x02\x4a\xe8\x25\x9a\x5d\x4b\x34\xab\x48\xb9\x14\xa9\xaa\xa9\x93\x88\x0a\x66\x8b\x2d\xa0\x6c\x93\xed\xcb\x13\x84\x3c\x1e\x7b\x45\xda\x2a\xac\x70\xf5\x53\xe6\xff\x55\xe6\xe0\x8e\xa8\x43\x52\x6d\x4a\x50\x3c\x0a\x5c\x50\xe0\x81\x4a\x42\x69\xc0\xc6\xa8\xc0\x68\x4d\x48\xa1\xb1\xf2\x9f\x5f\x19\x07\x16\x24\x0a\x2f\x78\x8e\x9e\xa9\x9c\x23\xc5\x47\x0c\x62\xee\xbc\x37\x40\x71\x64\x5e\x3c\x80\xb7\x00\x52\x40\xe6\x93\x94\x2a\x84\x83\x19\x96\x4c\x92\x07\xf6\x3c\xeb\x0f\x60\xc6\x8d\x39\xeb\x4d\x70\x37\x2b\x0e\xcd\x06\xf6\xb5\xa2\x91\x6d\xd3\xd2\x83\xf8\xe0\x97\x4d\x4c\x0f\x34\x9e\x50\xc3\x6c\x3c\x73\x7d\x66\x3a\x6a\xb6\x36\x58\x00\x4e\x40\x49\xa5\x52\x55\xee\x16\x6b\xe8\x59\x91\x95\x5e\x6c\x44\xa7\xb4\xf4\xe2\xf5\x5d\xe4\xa5\xb7\x95\xfc\x5a\x96\xa7\xe8\x3e\x69\xb1\x7f\xbb\xfc\x57\xc5\x5d\x10\x7a\x28\x29\xdd\xb4\x4a\x4a\xfb\x86\x10\x56\x04\xd7\x6f\x1e\xaa\xbd\x8e\x3a\x58\xe4\x3a\x85\x54\x14\xa4\x2e\x96\xf1\x55\x48\x95\xf3\x33\xae\x20\x3f\x25\x82\x72\xe8\xb5\x9c\xc9\x11\x6b\x96\x40\x96\xf3\xc4\x6d\xd3\x1d\x76\x8a\x24\x16\x9c\x3f\x37\x0b\x6b\xd1\xfa\xc9\x07\x8c\x19\x65\xd9\x16\x36\xaf\x8a\x98\x85\x8b\xaf\x2d\xd0\x47\x0b\x1e\x9b\x24\xef\x36\x9c\xca\xe6\xa1\xd7\x92\x11\x56\x9e\x0b\x7b\xe9\xee\x50\xb5\xab\x71\xe7\xce\xb9\x1b\x5e\x46\xb6\xdc\xd8\x05\x1f\x3b\x35\xbe\xe2\xa9\xdd\xa4\x60\x2b\x00\x74\xee\x0c\x56\xb4\x9a\xe9\xaf\x1b\x3f\x00\xef\xae\x1d\x3a\x36\x91\x2e\x1e\xec\xba\xb2\x25\xa5\x09\xdb\x42\xf8\x2f\x30\xe9\x75\x8b\xec\x06\xde\x46\x61\x23\x67\x69\x68\x37\x80\xea\xba\x36\xe0\xb0\xc2\x87\xbd\x68\x97\xb3\x98\x08\x46\xb0\x9a\xbf\x5e\xbe\xc2\xe9\xb6\xc6\xe9\x30\xc0\xfe\x45\x73\x17\x4e\x77\x52\x61\xbd\x92\x0f\xb0\x66\x2a\xc0\x1a\x71\xf5\x45\xbd\xdd\x9a\xe2\xd8\x60\x34\x0c\xe0\x5c\xd6\xa1\xd2\xad\x52\x1a\x9a\x95\xb9\x97\x49\xee\x68\xb0\xfa\xd4\xd2\x3a\xf4\x61\x0f\xab\x14\xaf\x58\x92\x2f\x22\x8b\xe2\xe5\x03\xfb\x97\xd5\x43\xce\x83\x58\x7f\x28\x4a\xad\x30\x65\x96\x7b\x2d\x0b\xef\xd7\x12\x65\x8a\x9b\x22\xfa\xf7\x3e\x57\xe4\x8b\x4f\x15\xe9\x13\x07\xfa\xc4\x81\x86\x3d\xea\x13\x07\x10\x7a\x6f\x89\x03\xcb\xcc\x9f\xde\x23\x07\x75\x2b\x4b\xc5\x62\xcc\xfe\xae\xd0\x22\x37\x0f\xe8\x77\x16\xc4\x30\x1a\xca\xfe\x62\x7f\x68\x0c\x88\xaa\x7d\x56\x9d\x6d\x68\xcd\x64\x8b\xaa\x53\x00\x8b\x38\xb1\x88\x6e\x36\x5c\xb9\x6c\x7d\x5a\x66\x28\x1d\xb1\xef\xf9\x33\x79\x22\xe2\x00\x61\x85\x52\x2e\x15\xf0\x61\x17\x1d\x03\x07\xa1\x04\x0e\x6e\xa2\x20\x30\xba\xc2\x29\x89\x4d\xed\xc0\x20\xa8\xd1\x9a\x6b\xad\xa3\xb5\x09\xb8\x14\x30\x38\xcd\x36\xb8\xa8\x89\x11\x33\x81\x86\x26\xb8\x0d\x64\x05\xea\x26\x06\x04\xf3\x3b\xef\x06\xfe\xdd\x11\xba\xd7\xf7\x13\x95\xe5\xf1\x06\x38\x66\x6d\x63\x1b\xb1\x99\xe0\x79\xe6\x2d\x68\x7c\x62\x8a\xc8\x9a\xd8\xa7\xba\x1b\x18\x06\xe3\x7c\xc0\x11\x8e\xb5\x26\xbe\x9c\x70\xde\x24\x06\x75\x23\x30\xa0\x90\x80\xf4\x31\xf4\x81\x75\x36\xd0\xdd\x78\x6f\x03\x08\x94\x65\x90\xe6\x2f\xe4\x5a\x3e\x23\x12\x6c\x42\xde\xe6\x5e\xca\xc8\x2e\x67\xfd\x37\x8e\x73\x99\x45\xd4\x7b\x2d\x9c\x65\xbf\x19\x50\xa0\xe8\xdc\x46\x7c\x99\x74\x4f\x7b\x4f\xbc\x98\xad\xb4\x73\xec\x6c\x1b\xbf\xb8\xc9\x45\xc6\x41\x12\x4b\x16\x0e\x00\xc1\x62\xa6\x65\x3c\xcb\x4d\x54\x1b\x0d\x83\x9c\x1a\x29\x9b\x4a\x75\x89\x55\x34\xd7\x9c\xbb\xc0\x0e\xdb\x51\xb4\x5f\xc1\x95\x5f\xd6\x7e\xda\x30\x83\xd3\xb0\xf7\x16\x87\x42\x07\x7b\xba\xb9\xf7\x5d\x70\xbd\x93\x24\x52\xdd\x9f\x71\xba\xd9\xd2\xd0\x81\x55\xd4\x7d\x62\x9f\xe8\x89\xae\xa2\xa2\x55\xe3\xef\x46\x5b\xe5\xda\x55\x3b\x8f\x23\xdc\x02\x8c\xe5\xcc\x42\x5f\x15\x2f\xda\x5a\xa7\x2d\xce\x7f\x41\x37\xcb\x01\xb2\x78\xf3\x4f\x5a\x1c\xf1\xf6\xd6\x14\x67\x5a\x89\x50\x5c\xdf\x92\x62\x66\xe4\x58\x13\x25\x8b\x30\xca\x05\x75\x67\xbf\x92\x5d\xdd\x4e\x1d\x60\x9f\x3c\x0e\x6b\x13\x45\x38\x28\xdb\x66\xdc\xfd\x38\x52\x39\xf6\x61\x89\x40\x13\xae\x9c\xb8\xc9\x24\x77\x6e\x75\xe1\xc4\xbb\x86\x3d\x5d\x49\xd8\x5b\xec\x32\x6e\x42\x0a\xec\x74\xd2\x28\x9b\x05\x30\x83\xcd\x36\xe2\x2e\x55\x04\x1a\xbf\xec\x56\x09\xa1\xf1\x53\x27\xfb\x6c\xf2\xed\x12\x18\xa4\x8d\x23\xb3\x4b\x51\xee\x36\x0c\xd6\x4a\x4f\x21\x00\xa4\xb5\xdf\x01\x8e\x2b\x05\x37\x3d\xb6\xd2\xd4\x7f\xf9\xbf\x4c\xd5\x29\xb3\x34\xff\x85\xb8\x18\x31\xf3\xfb\x81\xaf\xf8\xa0\x5f\x28\xa0\x54\x71\x4a\x0a\xb0\x49\x51\x86\xa5\x03\x70\x0e\x0b\x2b\x66\x60\x73\x3d\xe0\xbd\x1e\xc3\x63\x3e\x21\x82\x11\x3d\x34\x97\xc6\xef\x99\x59\x8a\x19\x9e\x01\x48\xef\x01\xc4\xc5\x81\xb8\x5a\xa8\x22\x86\xa4\x4d\xe5\x40\xe0\x56\x9a\x59\xda\x6c\xdb\xa2\x82\x2e\xf4\x69\x44\x59\x8b\x11\x5a\x04\x57\x34\x53\xff\xad\xed\x7f\x33\x89\xfd\x7e\x70\xf7\xc3\xf8\x76\x78\x77\xfd\x70\x7b\x5a\x12\xdb\x4f\x2f\x1e\xee\xee\x87\xb7\x8d\xcf\x8a\x4c\xd5\xbf\x3e\x0c\x1f\x5a\x1e\xb9\x06\x2e\x06\xdf\x0d\x4b\xe5\xa8\xff\xfa\x30\xb8\x38\xbf\xff\x79\x7c\xfd\x71\x7c\x37\xbc\xfd\xf1\xfc\x74\x38\xbe\xbb\x19\x9e\x9e\x7f\x3c\x3f\x1d\xe8\x2f\xc3\x77\x6f\x2e\x1e\x3e\x9d\x5f\x8d\x5d\xd0\x71\xf8\xe8\xa7\xeb\xdb\x1f\x3e\x5e\x5c\xff\x34\x0e\xba\xbc\xbe\xfa\x78\xfe\xa9\x69\x16\x83\xbb\xbb\xf3\x4f\x57\x97\xc3\xab\xe5\x65\xaf\x9b\x57\xa3\xb5\xa2\x6e\x70\x91\x05\x46\xa3\x40\x4c\x9a\x2c\x2c\x69\xd3\x5f\xc1\x75\x71\x63\xe8\xf1\xf0\xc0\xfd\x65\x8a\x54\x1f\x6a\x16\xe8\xbc\x62\x05\xf7\x18\x31\xef\xb6\xf4\x97\xaa\xc2\x33\xe9\x12\x8f\x4b\xa3\x3d\x41\x03\x38\x2b\xa0\x30\x94\x3a\x85\xbc\x06\x3f\x52\xe7\xe8\x06\x3a\x4c\x68\x4a\xc1\xe7\x8d\x0e\x51\x75\xc3\xcb\x0d\xda\x39\xc1\x10\xac\xd7\x2e\x5e\x76\x1a\x64\x35\xa7\x19\x28\xe5\x04\x39\x0e\x4d\x8c\x39\xc1\xa0\xb8\x2e\x18\x4e\x69\x54\x4d\xc0\x00\x20\x53\x54\x80\x76\x54\x5b\x2c\x11\x58\xb9\xe5\x39\x41\x3f\xfc\xa5\x18\x14\x78\x30\xac\xe6\x9d\xd7\x6a\xd3\xd9\x07\x22\x37\xab\xba\x8a\x3c\x4b\x3d\xb9\x63\x6e\x4d\xcb\x70\x6e\x6d\x0d\x6c\x70\x37\xe5\x2c\x00\xee\x2a\xf9\x9e\xf4\xf1\x36\x33\xaa\xd0\xf8\x09\xba\x03\xd0\x10\x59\xa8\xee\x7a\x17\xb3\x24\x9f\x51\x86\x68\x9a\x25\xa4\xa8\x9e\x3e\x21\x73\xfc\x44\xb9\x2b\x04\x61\xea\x65\xc0\x3a\x5a\xd1\x0a\x1d\xa2\xd6\x83\x72\x82\x06\x71\x2c\xcb\x0c\xae\x44\x39\x8e\x65\x1e\x96\x87\x1d\x62\x6d\xb1\xd8\xb3\xcd\x0a\x1d\x15\x47\x0e\x56\x6c\xf7\xb0\x28\x75\x76\x58\xbe\x7b\xb7\xb8\xfe\xf5\x0a\x8e\x1d\x29\x8f\x37\x12\x06\xee\xb1\x7c\x74\xac\x79\x95\x40\xe0\x00\x6a\xb6\xeb\xd1\x22\xd5\x74\xed\xd4\xaf\xec\x18\x0e\xda\x66\x7d\xb6\xe2\x2b\xaf\xe8\xd2\xcd\x38\xa9\x14\xc1\xea\xdc\x5f\xa9\x88\x56\x63\x67\x3b\xf5\xf6\x34\x4b\x63\x70\x24\xc7\x9e\xfe\xd7\x98\xc7\x0d\x7c\x7a\xed\xbf\x5c\x2a\xb2\x8d\x83\x75\x5b\xd7\x07\x54\x4b\xd1\xb5\x7e\xa0\xa5\x74\xb8\x23\xa0\xa4\xee\xc2\x20\x94\x30\xa0\x11\xb8\xfb\x30\x65\xb6\xb0\x0d\xf1\xfe\x28\x57\xca\x59\x9f\x63\x5f\x6c\x0d\x4f\xf8\x53\x49\xb9\x4c\x89\x94\xb8\x05\xae\x24\x30\x89\x6d\xc3\x18\xfc\x09\xb5\x1f\x76\xa4\x27\x77\x26\xef\xf5\x57\xcb\x8c\x3e\xb7\xa1\x66\xec\x26\xaa\x05\xd6\xd8\xc5\xd9\xa2\x6b\x93\x6d\xa7\xf9\xcb\x41\x11\x4a\xc3\x45\x10\x61\xd4\xe6\xfe\xe9\x68\x56\xab\x2e\x58\x63\xbd\xa2\xd0\x85\xb7\x7e\x04\x4e\xd0\xfa\xc6\xd8\xd2\xd6\xaf\x82\xcb\xeb\xb3\x06\xd5\x95\xfc\x9d\x61\x2d\xe7\x88\xa7\xa9\x91\x0b\x4a\xb6\xd4\x03\x84\x4d\x92\x63\x21\x4d\xc9\x3c\x9a\x1b\x2f\x93\xbe\x32\x0e\x46\xec\x39\xd8\x90\x52\x18\xf0\x20\x6c\x09\x70\x39\x3f\xeb\xe3\x46\x9f\x4a\xc1\xd5\x20\x32\x52\x88\xf4\x0d\x08\xc1\x38\x04\x8b\x42\x4c\x2b\x08\x3c\xd8\xaf\x2d\x48\x7d\x83\xaa\x7b\x95\xf5\x6d\xab\xbd\xe7\xe7\x16\x94\xbc\xdb\x42\x53\xee\x3a\x84\xa0\xea\x5e\xd3\x08\x76\x50\x74\xef\x55\x81\xb2\x7d\xb2\xa6\xc9\xed\x4d\x27\x16\xa1\x42\x4f\xd7\xad\xf6\xef\xdd\x8c\x7e\x6f\xfc\x0e\x79\x0b\xa4\x49\xd0\x9a\xc7\xca\x46\x87\x5a\x66\x75\xa9\xf6\x36\x10\x43\xa2\x43\x83\xbf\xf7\x15\xc4\x59\x0e\x6e\xce\xbf\x3a\x40\x5f\x85\xb9\x66\x5f\x6d\x74\x00\xed\xb8\x6d\xe1\x3d\xd0\xa6\x4a\x09\x07\xe5\x63\x07\x7b\x55\x39\x89\x76\xcf\xec\x41\x44\x6d\xe7\x50\x7f\x59\xfa\x06\x9c\xd3\x50\x48\xce\xf8\x6f\x7d\xb8\xb3\x75\x01\x19\x19\x97\xca\x86\xb5\x8b\x47\x6c\xb2\xa8\x3a\x79\x0e\xbc\x97\xa7\xf3\x29\xdd\xba\x38\x9a\x6e\xaf\x9e\x9c\xbc\xe3\x30\xdc\xe5\xf7\xc1\x8a\x74\xe7\x81\x89\xb8\xe6\xd3\x80\x8b\xb5\x45\x29\xf4\xf1\xeb\x4d\xb3\x2a\xd9\xcb\xdc\x62\x36\x6e\xca\x2a\xf9\xe7\xbd\x91\x5b\x87\xa0\xef\x41\xd3\x8a\xd8\x78\xff\x16\xe1\xba\xa7\xb2\x97\xa5\xb2\x5d\xe4\x3b\x94\x07\xb7\xfe\x05\x7a\x6a\xe4\xb8\xa0\x19\x67\x70\xd5\xca\x84\x67\xf0\xa5\x0a\x7a\xab\x4b\xcf\xae\xe9\xf3\x0d\xd6\x64\xb5\xd3\xf7\xce\x04\x0e\x18\xb7\x6b\x7d\xac\xd5\xa1\x0e\x94\x2d\xe7\xc3\xa9\xc9\x6d\x54\x34\x25\x07\x88\xb3\x64\x11\x04\x3b\xd8\xf3\x0a\xe4\x66\x62\x94\xe6\x84\x0a\xd7\x89\x45\x18\x5c\x2b\x19\x7e\x4d\x69\xbc\x8d\x46\xb6\x88\x34\xb9\x1a\x5c\x0e\xcf\xc6\xc3\xab\xfb\xf3\xfb\x9f\x1b\xd0\x23\xcb\x8f\x1d\x80\x64\xf0\xc2\xdd\xcf\x77\xf7\xc3\xcb\xf1\xa7\xe1\xd5\xf0\x76\x70\xbf\x02\x5c\x72\x59\x67\x6d\xc0\x85\xb9\x6c\x52\xdf\xd6\x01\x2f\x74\x66\xde\x86\xde\xeb\x10\x93\x41\x27\x94\xb4\xc0\x4c\x9a\xc4\x7f\x16\x13\x81\x62\xf2\x44\x12\x9e\x15\x66\xd5\xc6\x05\x0b\xf0\x27\x1b\xda\x5f\x86\x41\x09\x6d\x56\xd7\xf8\x04\x99\xaa\x69\x41\xe1\x58\xdf\x20\x88\x7c\x58\x10\xf6\x95\x42\xe4\x73\x96\xd0\x88\xaa\x20\x31\x90\x0b\xeb\x5e\x31\xee\x43\x88\x4e\x5d\x41\x5c\x3b\x8b\x46\xd9\xb9\xce\x1f\x7a\xd2\xeb\xda\xbe\x3f\x51\x1e\x0f\x6d\x65\x29\x9e\x1d\x28\xf6\x2d\x4e\xe3\x1a\x5c\xdb\x06\xa3\x7b\x09\xf3\x40\x3d\x43\xc7\x26\xf7\xb5\x40\xb9\x35\x0f\x72\xf5\x6d\xb8\x2c\x4e\xa6\x74\xae\x97\x07\xca\x74\xa3\xd4\x37\x0e\x77\x29\x95\xa8\xdc\x01\xee\x86\x8d\x5d\x5f\x33\x60\xa1\x56\x79\x85\x99\x98\x53\x8c\x04\x49\xb9\xd2\x0a\x98\x89\x08\x38\xd0\x42\x15\xc5\x09\xfd\x15\x10\xaa\x04\x39\x0a\x22\x28\x1c\xae\x57\xe1\x3e\xb0\xe8\x11\x47\x23\x76\x36\xbc\xb9\x1d\x9e\x6a\x86\x74\x84\x1e\x24\x80\x4f\x95\xa6\x7e\x66\xc9\xdb\x88\x63\x61\x24\x03\x65\x52\x11\xdc\x16\x0c\x46\x84\xe0\xa2\x3b\x7f\xf0\xfd\x0d\xe1\xbb\x66\xf2\x86\x67\x25\xdb\x94\x33\x00\x5c\xb5\xd6\x17\x0e\x72\x06\x76\x9e\x92\x75\x8b\x9f\x4b\x2b\x12\x82\x6f\x80\x24\x52\x5e\xf5\x17\x5c\x6d\x80\xef\xec\x3e\xbf\x52\x9f\x37\xf0\xed\xb2\x79\xde\x43\x88\x9d\x54\x05\x16\xa8\x81\x0b\xf5\xf5\x63\x2a\xf3\x6c\x15\x15\xc5\x5b\x00\x75\x54\x48\x7f\x42\x66\x98\x21\x91\x33\x56\x01\x87\x0d\x2d\x6d\xf5\xa0\x99\x75\x8f\xaa\x5e\x33\x9c\xf2\x9c\x81\xd2\x00\x61\xac\x0d\x83\x91\x19\x61\x6a\xc5\x60\xde\x0a\x86\xa5\x32\xd4\xfd\x45\x62\x69\x18\x68\x1b\x18\x4b\x93\x3f\x09\x8a\x18\xaf\x77\x2d\xbb\xa0\xbc\x92\x53\x49\x1f\x2a\x7f\x3f\x37\x6b\xd9\x58\x3e\x6e\xdd\xdd\x3d\x96\x8f\xab\xbb\x8a\x49\xf4\xb8\xee\x65\x53\xcd\xcc\x4c\x6c\x0d\xe8\x9a\xb1\x6f\xa1\x9f\xda\x22\x27\x50\xfa\x3b\x7a\x44\xdf\xdf\x5f\x5e\xa0\x29\xd5\x72\xaf\xbe\x56\xae\xb0\x96\xb1\x1f\x44\xe2\xec\xc2\xd6\xb6\x9a\x8b\xc4\xdf\xbd\xb0\xf1\x4e\x94\x0a\xa4\x04\x7d\xa3\xe1\x19\x71\xc6\x5e\x61\xb1\xf6\x2a\x45\x4e\x04\x66\x31\x4f\xcd\x3c\x8e\x65\x3e\x9d\xd2\xcf\x47\x0a\x8b\x6f\x5a\xd6\xc3\x44\x55\x8c\xff\xce\x27\x63\x3d\xa2\x2d\x2f\xe2\xa6\xe6\x90\x2d\x4d\xec\x97\xcd\xce\xec\xcc\xbc\xfb\x7f\xf9\x04\x72\xdd\x33\xc1\x01\xff\x0f\xbc\x73\x36\x52\xc1\xbe\xe2\x28\xe9\x08\xb9\x04\xaa\x12\xc4\x49\xc4\x85\x20\x36\x45\xde\x54\xe9\xcc\xb0\x50\x14\xac\xb5\x0e\x22\xa5\x84\x8d\x5f\x6c\x51\x58\x3c\x7b\x8e\x0b\x1c\xea\x09\x21\xe0\xe0\xc9\x68\xb2\x9e\xd2\x7b\x5a\xf2\x4d\x56\x4e\xa0\x8d\x3c\xb5\xa8\x99\x60\x90\x59\x29\x62\x0d\x9f\x08\x53\x3b\xd1\x4f\xa0\x89\x86\xa4\xfd\x6e\x5e\x06\x53\x2c\xf3\xfc\xac\xb8\xdc\x5c\x48\x6f\x18\xd5\xa4\x04\x86\x7b\xde\x26\x4a\x59\x97\x7a\x9b\xa3\xff\xa9\xb3\xef\x18\x5e\xad\xaf\xcb\x8a\xd0\x78\xbb\xda\x45\xd1\xec\x22\xac\xd5\x01\xfb\x6f\x08\xe3\x23\x89\xb1\x62\x04\xf0\x11\x56\x39\xad\xee\xb9\xe9\x53\xd3\x56\xa5\xcb\x95\x5b\xbe\x01\x66\x4d\xa9\x99\x4f\x04\x52\x3a\x77\x11\x88\xbe\x4e\xea\x3e\x0c\xe4\x41\x24\x10\x42\xbd\xd4\x8a\x65\x0a\x76\x6b\xce\xe7\x25\x3b\xdc\x41\x46\x37\x83\xd1\x42\x23\xc9\x04\x89\xf4\x55\x76\x82\x6e\x12\xa2\x25\xaf\x5c\x4b\x5f\x79\x92\x38\x7c\xaf\xe5\xd2\xe1\x5a\x98\x74\x2f\x3e\xaf\x40\xf7\x58\x32\x31\x87\x6f\xb7\x7c\x66\xc1\x1a\xec\x1e\x70\x21\x58\x5f\x30\x21\x83\x21\xb1\xac\x45\x02\x87\x5f\x98\xb8\x59\x30\x25\xe1\xd2\x45\x46\x7f\xd5\xec\x57\x10\x39\xe7\xad\x49\x8e\xe1\x6c\x5f\x66\x0e\x6e\x29\x5f\x70\x12\xee\x3e\x6c\x8b\xab\xee\x20\xd7\x54\xee\xc0\x92\x88\xb3\x6c\x8a\xbe\xf6\x83\x8f\xfe\xb0\x68\xab\xf6\x6e\xb5\x43\x83\x5b\xb2\x30\xb5\x85\xc8\x67\x85\xeb\xa2\x50\x66\x16\xc6\xf7\xea\x3f\x2f\x0c\xc8\x45\x4a\x00\x55\xb2\xa8\xdf\x86\xf4\x5d\xdb\xb6\xc5\x7a\x9e\xe3\x5c\xac\x05\x49\x51\x60\x96\xaf\xc3\xb9\x6d\x32\x4a\x31\x2c\xbd\x08\xcd\xec\xd2\x96\x92\x00\x31\xda\x86\x1a\xc9\x12\x0e\x9c\x25\x1b\xb3\x8c\x8d\x2a\x5e\x3b\x53\xde\xd6\xad\x06\x52\x72\x21\xca\xbc\x94\x77\xad\x44\x81\xa5\x09\xf4\xc8\x62\xeb\x23\x8b\xd9\xba\x22\x9e\xf6\x00\x07\x50\x09\x48\xfc\x2f\x1c\x68\x55\xc1\xc1\x1a\xbd\x57\x65\x3e\x95\x76\xa7\x53\x9a\x53\xe9\x0b\xcd\x4b\xce\xb6\xf4\xc0\xe9\xc9\x2c\xc6\x90\x38\xba\x4d\x14\x4e\x69\xfe\xc6\x7b\x00\x6d\x92\x18\x19\xf4\x02\x83\x7b\x6c\xd7\xce\x7b\x4e\x32\x2c\x08\x53\x23\x76\xab\x47\x61\xbe\x28\x22\x31\x5c\x1c\x8e\xc3\xa2\x87\xea\xaf\x53\x84\xed\x57\xb0\xe8\x6d\x81\x70\x72\x6c\x5e\x02\xd5\xf4\x05\x93\xec\xbf\x33\xef\x18\xcc\x03\x8b\xf9\xa3\xa7\x4a\xa7\x85\x1a\xaf\x05\xc8\x68\x4e\x01\x72\x20\x26\xd2\x5e\x48\x54\x59\x4c\x09\x2f\x7e\xe7\xc4\xa1\x2f\xc3\x67\x9e\x7f\x35\x31\x6c\x67\x28\x60\xce\x40\x27\x47\x2c\xe8\x63\x09\x58\xa7\x51\xd6\x37\x54\x25\x60\x9f\x69\xec\x1d\x5f\xf0\x4f\xb3\x43\x5c\xd0\x19\x65\x41\xc9\x24\x3b\xbd\x14\x67\x60\xde\x35\x67\x90\x4f\xfd\x9d\x76\x6f\xb3\x0c\x8e\x60\xc4\xff\xf3\xdf\x7f\x3b\xa2\x6d\xde\x0f\x39\xb6\x2b\xb0\x0f\x3b\xb9\xde\xb6\x84\x3b\x1f\xa0\x88\xb4\xa0\x53\x04\x3a\xad\x2c\x65\x4e\x14\xbf\xda\xcb\x4d\x13\x0d\x57\x73\xe3\xee\x2d\x93\x3b\xf8\x46\x44\xbe\xbc\x8a\x40\xc0\xe2\x8a\x80\x80\xc2\xeb\x1b\x04\xdd\xba\x1a\x11\x26\x58\x52\xb7\x5f\xb9\x50\x2a\x0c\x2a\x00\xf3\xdb\x26\x38\x71\x8e\xe5\xcb\x45\xa0\x34\xd6\x36\x32\x46\xe3\xf0\x8e\x5c\x15\x8b\x62\x06\x69\x92\x1a\xf5\xae\xe4\x92\x08\x73\xa0\x3d\xea\x93\x25\x9e\x10\xaa\x10\x42\x11\x57\xb8\xd4\x48\x8a\xe9\x5a\x61\xf3\xfa\xfd\x66\x20\xc5\x92\x4d\x1d\xcf\x88\x18\xc7\x79\x29\x46\x7a\x55\xdb\x37\xfa\xa3\xb3\x5c\x2d\x56\xb7\x2f\x13\x5c\xaf\xed\xb2\x0c\xbc\x52\xbf\xdf\xd2\xec\x6a\xc1\x30\x88\x64\x29\x0b\x87\x2d\xd0\x90\xa4\x02\x0d\x69\x43\x2b\x4b\x96\x00\xb8\x68\x18\xd4\xd5\x0f\x14\x06\x7b\x13\x19\x00\x6b\x18\x39\x9a\xe4\x85\xe5\xc4\x97\x04\x88\x8f\x46\xec\xa3\xa9\xa9\x01\xca\x8c\x19\x40\x04\x79\x2d\xe4\x73\xc6\x25\x29\x25\x5a\x35\xc0\xfc\xdb\x44\x49\x3b\x8c\x66\x99\xb4\xf8\x68\x7b\x91\xf4\xcd\x41\x3e\xeb\x1b\x5e\x9f\x72\x33\x05\x6e\x25\xf5\x44\x34\xa3\x9a\x76\xc6\x8d\x27\x6d\xfd\xa9\x77\xad\x12\x53\x84\x2e\x01\xdc\x93\x4a\x16\x07\xc8\x4f\xaf\x42\x10\x09\x79\x22\x60\x35\x86\x31\x86\xc5\x1c\xca\xe6\xab\x16\x76\xb2\xea\x00\x15\x59\x8e\xc0\x16\x50\x5c\x1d\x41\x39\x17\xac\x89\x16\xcb\x59\x2e\x5b\x27\x64\x35\xc5\x5f\xac\x21\x85\x0e\xc2\xa2\x16\x0b\xa2\x10\xf9\xac\x88\x2d\x7b\x79\xef\x52\xe6\xea\x51\xf6\xa8\x39\xeb\xa7\x5d\x44\xda\x3d\x55\xd4\x26\x62\x13\xa5\x5d\x4e\x60\xec\xee\x7d\x9b\x23\x37\xc7\x2c\xb6\x89\x9f\x56\x96\xd6\x32\x05\xcc\xce\xd8\x96\x7c\x48\xbc\x4d\x5f\x0c\xd0\xc0\x4d\x9b\x06\xb6\x1c\x2e\x32\xa7\x17\x69\xc9\x1c\xa2\x08\xb8\xd0\x02\x6a\xce\x14\x4d\x34\x71\xd8\x31\x68\xad\x39\x67\x1e\x8f\x0f\x02\xb8\xdb\x20\xdf\xa8\x94\x94\xcd\xc6\x76\x25\x5d\x0e\x63\xb7\x8b\xa1\x4c\x53\x97\xa6\x29\xf3\xe3\x77\xae\xa1\xe5\xb6\x63\x43\xd6\x00\xc7\xe5\xb2\x27\x41\xb0\x66\xdc\x4d\xc6\xe2\xa8\xb9\xa4\xcb\x31\x8d\xcd\x52\x50\x53\x5d\x19\x26\xba\x8e\x79\x19\xc4\xba\x3a\x5c\x41\x71\x85\x48\x9b\x11\x69\xf2\x9c\x20\x20\x5d\xb5\xa4\x7c\xca\xd6\x54\xcf\x73\xe6\x45\x34\x5b\xdb\xc9\x27\xb4\x57\xb2\x46\xb1\xeb\xce\x46\xdd\xe3\x24\x99\xe0\xe8\xd1\x2b\x1b\x5e\xe5\xe6\xc2\x61\xe3\x6b\x01\x15\x8a\x7f\x19\xe2\xd2\x03\x8d\x40\xba\x09\x9d\x62\x06\xb0\xc6\x0e\xbb\xe8\xdc\xac\x9a\x45\x02\x33\x08\x45\x66\xf4\x26\x84\x3f\x26\x59\xc2\x17\x69\xcb\x7d\x56\xcd\x94\xdb\x26\x20\xa5\x2d\x51\x6f\xa7\x57\x59\x85\xe9\xad\x7d\x99\xd5\xd2\x6e\x76\x00\x9f\xb4\x06\x97\xfc\x94\xf0\x09\x58\x0e\xad\x96\xed\x52\x49\x82\x8c\x86\xea\x79\x5e\x37\xc1\xa5\x7a\x22\xa9\xcc\x12\xbc\x58\xd6\x83\x49\xad\x78\xd9\x7d\x33\xa9\xf8\xab\x8d\x60\xdd\x83\x92\x1b\x3f\x7f\x09\xa0\xde\x0b\x27\x09\x98\x77\x0d\xff\xaa\x18\x93\x4c\x4e\xdb\x91\xf1\xc5\x2a\x3e\x62\x0a\xcf\xdc\xe6\x5a\xe1\x92\x3f\x33\x22\xe4\x9c\x66\xa5\xa2\x80\x5b\x47\x41\x5b\x8a\xb6\xff\x31\x31\xbf\x6b\xf0\x4e\x9e\x1d\x1a\x20\x0e\x4d\x1f\x32\xc3\x51\x61\xfc\x8b\x12\x2c\x25\x9d\x2e\x02\xfc\x0c\x1f\x50\x0a\x59\x4a\x65\x6d\x39\xa8\xc3\xd5\xc4\x68\xcc\xf8\x76\x93\x40\xbe\x7d\xf2\xdc\x43\xf9\xf8\xd1\x38\x04\x2a\xd3\xf7\x49\x1d\x2c\xc5\xdd\xd4\x16\x34\xa5\x15\x70\xd5\x64\xca\x6f\x96\xf0\xbd\x14\xe3\xa6\xdd\x8c\x50\x08\x93\x76\xd8\x56\x91\xf1\xb8\x16\x21\xe6\x8b\x2a\x65\x0c\xc2\xe6\x6b\xc5\xc9\x99\x3f\x35\x71\x7a\x4c\x0c\x80\x0e\x28\x3e\x3e\x40\x72\x2b\x2c\xa9\x2e\x74\x71\x46\x12\xb2\x93\xc0\xe2\x0d\x88\xa4\xea\xb5\x0f\xc8\x63\x29\x69\x14\x58\xfa\xab\x8d\x0b\x1b\xc4\x3b\xb7\x20\xd2\x34\x0f\xfd\x27\x33\x50\x1b\xf2\xdc\xb4\x8b\x60\xff\x82\x55\xee\xaa\xbb\x34\x41\xdb\x99\x16\x2c\xc9\x15\xdd\x94\xe8\xaa\xe8\xd4\xcb\x2b\xfb\x48\x6a\x6f\x1c\x19\x5c\x1b\xd7\x27\xd2\x25\x8a\x61\xe5\x01\xd8\x88\x03\xd5\xf9\x74\x37\xba\xb0\x7e\x42\xc5\xd1\x8c\x28\x53\xe2\xde\xd7\xf1\x7f\x4f\x34\xb1\xb3\xbc\x86\x1d\xad\x7e\xf3\x21\x5f\xef\xd4\xde\x11\x25\xdd\x95\x50\x43\x0b\xb4\x9b\xb3\x87\x5b\xb0\x1f\xc7\xd2\x08\xae\x5f\xbc\xdc\xb2\x35\x16\x80\x1d\x99\xcd\x88\xff\x0d\x09\x54\x66\x8e\xb1\xfd\xc2\x67\xbf\x97\x70\x9f\x70\x09\x2b\xcf\xac\xd1\xdb\x73\xbd\x2a\x69\x7f\xe9\xa2\xd7\xfa\x34\x5e\x1d\x55\x41\xdd\xbd\x3c\xb8\x9e\x3c\xe8\xb0\x24\xf7\xf0\xf2\x6f\x3b\x06\xfb\x79\xff\xec\x81\x70\x58\xbb\x12\x77\x27\x22\xbe\x23\x32\xd9\x0b\x49\xb1\xb6\x15\xaf\x25\x2f\x1e\x3a\x30\x9f\x02\x1a\x67\x7f\xb7\x68\x3f\x4e\xf2\xad\x75\x03\xbd\xdc\x05\xbb\x9a\x5e\x76\x42\x1f\x80\x6b\x89\x21\xfd\x37\xb7\x85\x32\xe0\xf0\x06\x21\x63\x35\xdf\xc3\x8a\x60\x3c\x3b\xbc\x4e\x61\x78\xb5\xe5\x7c\x89\xed\xb5\xb9\x5e\x9d\x37\xf7\x25\x49\x6d\xdd\xb1\xec\x42\x47\x79\x61\x2f\x8e\xa5\xc6\xe0\x83\x3e\x26\xb6\xdb\x2d\xda\x80\x20\xe3\xb6\x6c\x97\x87\xac\xa9\xba\xd9\xf6\xd9\xea\x2e\x95\x6d\x9c\x09\x32\xa5\x9f\x37\x12\xc5\x6f\xe0\x53\xab\x5e\xea\x65\xae\xd4\x4b\x03\xf7\x0c\xd4\x57\x0b\xe2\xf6\xec\x4a\xdb\x9a\x4a\x23\x56\x24\x00\xda\xec\xbf\x47\xb2\x40\x5c\x94\x7e\xda\x14\xeb\x70\xf7\xb5\xdd\xcc\xbe\xce\x95\xca\xe4\xc9\xf1\xf1\x8c\xaa\x79\x3e\x39\x8a\x78\x6a\xc2\xcd\xb9\x98\x99\x3f\x8e\xa9\x94\x39\x91\xc7\x7f\xfc\xc3\x1f\x8a\x2d\x9e\xe0\xe8\x71\x66\xd0\x63\xea\x7e\xa7\xf2\x96\x13\x2c\xb7\x8b\xec\x71\x99\x5a\x2f\x9c\xb1\x1b\x74\xe3\x72\x24\xf5\x37\x52\xe1\x34\x0b\xa3\x47\x4d\x75\x34\xa9\x70\x51\x93\x01\xd2\xef\xf4\x34\xd1\x1c\x67\x19\x61\xed\x66\x07\x93\x4f\xb9\x05\xeb\x71\x19\x99\x76\x84\xe4\x73\x96\x60\x56\x46\x19\x80\x02\x43\x82\x44\x84\x29\x9b\x01\x5f\xd4\x4b\x06\x6a\x34\x48\x37\x86\xff\xaf\x97\x71\x07\x73\xa4\xb2\xa8\x1c\xe6\x86\x63\xab\x78\xba\xda\x8e\x38\x58\xba\x6a\xe5\xd4\x62\xed\x88\x5b\xb5\x65\xb9\x78\x77\xf5\xfa\xd9\xeb\x57\x6e\x11\x9c\x8d\xc9\x67\xcd\xe4\xe4\xa6\xb8\x54\x0f\x92\x48\x34\xf8\xe9\x0e\xc9\x05\x53\xf8\xf3\x09\xba\xa4\x0c\x04\xd8\xef\x79\x2e\x24\x3a\xc3\x8b\x43\x3e\x3d\x4c\x39\x53\x73\x74\x09\xff\x6b\x7f\x7a\x26\xe4\x11\xfd\x4c\xb0\xb0\xfc\xc1\x56\x5e\xf3\x45\xbc\x35\x09\x89\x9c\x49\x44\x9e\xf4\x09\xfd\xc3\x7f\xa2\xd4\xb4\x7c\x82\xbe\x3d\xfe\xc3\x7f\xa2\xdf\xc1\xff\xff\xff\xd1\xef\x5a\x34\xfd\xf5\x90\xad\xa0\x3e\xef\x6d\xd9\x9d\x7b\x50\x59\xa9\x0d\x4a\x96\x9f\x0a\x5e\xec\x54\x63\xcb\x8f\x34\x7a\xe4\xd3\xe9\x58\x13\x86\xc9\x57\x1b\x63\x51\x43\x45\xde\x10\x26\x94\xda\x02\xcb\xa6\x60\x5b\x51\x2a\xc5\x76\x6a\x80\x0d\x1c\xbb\x96\x79\x51\x60\x16\x82\x88\x4a\x45\x7b\xa9\x84\xaf\x48\xac\xb9\xea\x3a\xa7\xc3\x59\xf7\x5c\x8e\xb3\xb3\xe0\x84\x40\x20\x61\xd1\x70\x1f\xf8\x17\x46\xb1\x9a\x40\x1f\xbb\x90\x8d\xc7\xa1\x16\x5e\xfb\xc5\xc4\x4c\xc2\xd4\xde\x2a\x5e\x52\xd6\x3a\x5f\x1d\x2a\x79\xc7\xc5\x56\xfa\xd6\x23\xa9\xc5\x6c\x77\x2c\x0b\xe4\x4a\xd5\x86\xe5\xeb\x21\x11\x9a\x0b\x0f\xd7\x6b\xec\x22\xb6\x78\xe0\x6a\x2b\x26\x15\x26\xb8\xac\xdb\xa1\xd7\x53\x3f\xf3\x9f\xac\x1a\x26\x44\x9a\xb9\xb7\x8b\xb2\x68\x30\x5a\x2d\x22\x69\x96\xd8\x30\xe2\x06\x4c\xbf\x55\x1b\x7a\xe7\x61\x1c\xa0\x71\x08\x7b\x84\x94\x0f\xe6\x24\x5b\x9b\x27\xdf\xbc\x9f\xb9\x88\xc8\x29\xdf\x2e\xec\x35\xa1\xac\x16\x2f\xdf\xbd\xe2\x8e\x5f\xbd\x0b\x5b\x5b\xc9\xc1\xde\xf2\xb8\x50\x16\x8c\x5b\xc0\x16\x5b\x08\xf0\x36\xcb\xb3\x01\xdc\xb6\x5d\x40\x3a\xd6\x4a\x00\x6c\xc1\xb5\x8d\xe1\xb8\x60\x78\xae\x82\x44\xa5\x70\x84\xc0\x9a\x17\x2e\x89\x5d\x83\xa0\xa2\xad\xc7\x11\x14\x43\x29\x22\x95\x2a\x45\xc7\xb1\xa9\x08\x22\x36\x84\xe4\x34\x75\x89\x0e\x90\xc0\x10\x94\xa9\xe6\xba\x3d\x49\xc4\xe1\x14\x47\x94\xcd\x0e\x02\x34\x46\x40\x46\x08\xaf\x83\x26\x22\xbd\xc7\xf2\x71\xb7\x81\x86\x5b\xd7\x69\xa4\x71\x51\x2b\xcc\xe2\xa7\x18\xc7\x06\xad\x41\xd1\x29\x2c\x1f\xdb\x00\x84\x6a\xe8\x65\x4b\x46\xe7\x97\xc2\x61\x9e\x2d\x1b\x9f\xcb\xb4\x26\xa1\x3e\x05\xa5\x09\x5c\xe5\x60\x8b\x65\xe8\x12\xdb\xb0\x07\x1b\xa9\x82\x78\x2e\x19\xbf\x9c\x73\xa1\xc6\x1b\xc2\x9f\x56\xb3\xc5\x19\x39\x4c\x00\xb7\x84\x3f\x11\xf1\x44\xc9\x73\x19\x45\x74\x1d\x5a\x34\x46\xb3\x20\xaa\x0e\x60\x26\xd3\x8c\x43\x0a\xcd\x14\xa5\x98\x2d\x0c\xa3\xd4\xcc\x05\xcb\x47\xe9\xeb\x95\x22\x99\xe2\x24\x39\x40\x82\xe4\xd2\xd4\xf1\x95\x24\x99\x1e\xba\x8a\x0f\x31\x4a\xf8\x8c\x46\x38\x41\x93\x84\x47\x8f\x72\xc4\xb4\xa0\xc0\x66\x86\x49\x65\x82\x47\x44\xca\x40\xb2\x2a\x92\xb6\x6d\x2a\x1d\x14\x2b\x55\x44\xa4\x94\x51\xa9\x68\xe4\x44\xa6\x02\x7b\xc1\x94\xcc\x8e\x30\x98\x84\x21\x31\x11\x86\xab\x25\x3d\x62\x30\x28\x73\x66\x6b\x03\xc1\x75\x6d\xa1\xe5\x5c\x90\x78\xdb\x01\xda\x01\x52\x9e\xa3\x90\xb1\x2a\x1f\xc8\x15\x47\xea\xd4\x7e\x06\xc7\x78\x19\x09\xdc\x96\x4f\x94\x27\x48\x7f\xd2\x4a\xe8\x3d\x10\x53\xee\x43\xe0\x4b\x92\x8b\x8f\x0c\xdf\x33\xe0\x2e\x18\x72\x0b\x5c\xd7\x2a\x9a\xd6\xab\x08\x22\x0f\x94\xa3\xaa\x7a\xcd\x29\x8b\x92\x3c\xf6\x05\x09\xb5\x08\xf0\xa4\x89\xc4\x2d\x8f\x5e\x7b\x2d\x28\x1c\x20\x2c\xd1\x33\x49\x12\xfd\x5f\x13\x01\x7f\xe8\xeb\x03\x68\x96\x6c\x6a\x38\x40\x27\x8e\x4b\xb7\x51\xd4\xde\x81\x30\xde\x60\x35\x37\xa9\xed\x29\x57\xa6\x16\xa4\x01\x61\x74\xf6\x2d\x83\xda\x37\x49\xf8\x04\x4e\x3a\xe0\x33\xba\xd4\xd8\x20\xad\x2e\x8f\x22\x42\x62\x12\xa3\xaf\x83\x83\xeb\x61\x17\xbe\x69\x46\x0b\x2c\xad\xc8\x1e\x60\x33\x56\x0d\x6b\xad\x08\x8d\xe5\x72\x66\x47\xe8\xa6\x82\x3f\x12\x96\x29\xc7\x55\x34\xaa\x83\xda\x16\xbe\x0d\x9e\x63\x65\x12\x2f\xb7\x43\x6b\xe2\x39\x96\xfa\xdc\x01\x9e\x63\x65\x9e\x2d\xb1\xfb\x7c\xf6\xa2\x39\xc7\x7a\x52\x17\xbc\x7b\x22\x98\xc1\xc1\x32\x77\x67\x89\x04\xdd\x81\x5c\x34\x11\xe2\x7e\x61\x55\x56\x8a\xfe\xbd\x2d\x56\x65\x65\x30\xfb\x8c\x55\x59\x19\xea\xfe\x62\x55\x36\x0c\xb4\x03\x56\xa5\x71\xee\x8f\x35\x51\x77\x63\x0a\x90\xd8\x32\xc9\xa7\x77\x90\xea\xbd\x74\x8c\xa7\x26\x70\xc0\x5c\x63\xee\x8e\xb6\xd0\xcd\x30\x5a\x9b\x03\xd9\x16\x0e\x55\x71\x42\xac\x4b\x7b\xde\xfb\x46\xa5\xd1\xd0\xd6\x33\xbb\x1f\x84\xd6\x6e\xb0\x43\x46\x38\xb3\x39\xe5\x6d\x15\x55\xf6\x27\x7b\x76\x33\x18\x50\x80\xda\x2b\xb1\xfc\x4e\x40\x59\x97\x95\xe2\x04\x73\xfe\x6c\x0b\x04\x01\x19\x1a\xa2\x6c\x25\x41\xe8\x74\x6c\x95\xb6\xb6\x95\xa3\x4c\x91\x59\x55\xa7\x2d\x0e\x0d\x65\xea\x4f\x7f\x5c\xc9\x89\x0c\x92\xa0\x53\x0f\x83\x12\x01\xde\xd9\x61\x9f\x91\x18\x45\x73\xad\x15\x49\xad\xbe\xe8\xe9\x98\x9b\x55\xa2\x14\x53\xa7\x48\xe5\xd2\xb8\x96\xa8\x1c\xb1\x12\xf4\xe6\x11\xfa\x08\x75\x4f\x71\x9a\x69\xfd\xcb\xcf\x8f\x6a\x4a\x1a\xe5\xdf\x7e\xfb\x27\x82\xbe\x45\x29\xc1\xac\xa4\xc3\x82\xda\xa4\xaf\x3e\x80\xaa\x53\x73\x32\x62\x8d\x5b\x81\x86\x9f\x4d\x29\x25\x17\xef\x77\xce\xa6\xdc\xe9\xc4\x50\xcf\x0f\x47\x73\x24\xf3\x89\x29\x48\x1b\xd8\x30\x9c\x20\x7d\xc1\x67\xe0\xa8\x86\x1b\xd9\x0d\x7a\xd9\x29\x7c\xd9\x18\x00\xeb\x6e\xec\x7a\x1b\x0f\xe0\x1e\x39\x94\xa4\x04\x61\xd4\xe0\x34\x33\x9c\x2f\x3c\xf8\xd2\xe0\x9f\x1e\x18\x1f\x82\xd6\xcf\xb0\xb5\xec\x6b\x59\x1a\xc2\x79\xc1\x4b\x96\x27\x58\xd8\xa3\x3f\x62\x5a\xd1\x10\xe4\x89\xf2\x5c\x26\x0b\x14\x73\x46\x0e\x80\x12\xf2\x68\x6e\x1c\xab\x5a\x67\xc1\xb6\x2e\xc3\x13\x95\xb9\x56\x68\xa1\x2d\x57\x06\x42\x2a\x6c\xa0\x97\xe6\x14\xfa\xd1\xea\x37\x81\xaf\xc2\x2c\x39\xd4\x4d\x8b\x0a\xd1\x51\x2b\x3c\xbf\x23\x3a\x6a\x89\xaa\x7a\x74\x54\x8f\x8e\x5a\x5f\x97\x7d\x44\x47\xad\xec\x79\x37\x74\xd4\xa6\x2d\xdf\x00\x1d\xb5\xd4\xcc\x17\x83\x8e\x5a\x59\xd1\x2f\x06\x1d\xb5\x32\xaf\x1e\x1d\xf5\xcb\x43\x47\xdd\x12\xff\xb3\x99\x17\x1b\x7c\x25\x45\xd9\x62\x6d\x22\xfb\x4a\xa2\xf3\x6b\x4d\x60\xd1\x63\x39\xa8\xcd\x5f\x57\xdb\x63\x8e\x36\x33\xa1\xf5\x30\x47\x1b\x55\xf5\x76\x56\xb7\x2d\xc0\x13\x28\x06\xaf\x8c\x39\x5a\x9a\x40\x1f\x5f\xb9\x7e\x7c\x65\x23\xf1\xd9\xbe\xf5\xf0\x5c\xd0\x65\xf5\x42\xee\x88\x3a\x5a\xda\x9f\x4e\x91\x98\x20\xba\xef\x80\x12\x5f\x56\x9a\xbf\x2f\x1d\xf2\x95\xb2\x7c\xb8\x8a\xd2\xe2\x1f\x6b\x09\xcf\xa1\xc5\x19\x25\x3c\xf4\xff\xf7\x94\xbb\x41\x64\x70\x65\x79\xbd\x5f\xc5\xd0\x62\x07\x52\xed\x4c\xa1\x4e\x2b\xdd\x4d\xa2\xac\x4b\x9e\x5c\xd3\xc5\xec\x06\x71\x97\x91\xa8\xc5\xc6\x4c\x53\xba\xab\x66\x57\x5d\x64\x1e\x0b\x0b\x14\xf2\x5a\x5e\xa8\xbe\x9e\xcc\x70\x8c\x8c\x5f\x49\x87\x05\xa0\x0e\xf3\xe5\x8c\x4a\x25\x5a\x63\x9b\x6a\x23\xdc\xc6\x55\x9a\xe5\x9d\x03\x62\x82\x55\x9d\x6d\xf6\x59\x4a\x52\x2e\x56\x05\x56\x35\x7e\x69\x2b\xba\x6c\xf2\x29\xc9\xe6\x24\xd5\x92\xcc\x78\xdd\x46\xba\xee\xb7\x4f\x1a\xb6\xb9\x6b\x26\xd0\xb1\x44\x04\x81\x23\x54\xbf\x1b\x1b\x44\xca\xce\xdb\xbd\xed\x36\x5b\xcc\xcc\x35\x1d\x42\x0e\x33\x78\xb9\xc1\xcd\xbe\x54\x72\x77\x03\x7d\x37\xc6\x74\xf8\x90\x9a\xd5\x51\x1b\x4b\xe2\x35\x96\xe1\x4e\x15\x5f\xd9\x7a\xc7\x6b\xb8\xf2\xcb\xde\x79\xcd\x09\xc3\x62\xb7\xeb\x07\x78\xb4\xa0\xa6\xd6\x97\x07\x22\x73\x24\x11\x87\xa1\x66\x50\x1a\x4c\x7d\xbd\x4a\x54\xe2\x34\xca\x2d\x88\x24\x17\xad\x51\xa6\x5d\x0c\xda\x91\xca\x71\x02\x9a\x44\x58\xa4\xb1\xba\xa9\x93\x45\x43\xda\x63\x37\x8f\x09\x65\xea\xcf\xff\xb1\xd6\x6e\x6a\xd5\xca\xae\x1b\x14\x96\xc2\x51\x44\xa4\xb1\xb1\xdb\x28\x64\x3c\xe1\x4f\x50\x53\x6a\x9b\x5d\xd5\x47\x59\xcf\x5b\x33\x78\x0f\x45\x1c\x17\xa4\x6e\xc4\x85\xb9\xe0\xf9\x6c\xee\x6c\x48\xfa\xcc\xe8\xa9\x35\xed\xe5\x8f\x35\x1b\xf9\xda\x7b\xf9\x5d\x4e\x93\xcd\x2c\x74\x77\xa5\x6a\x5b\x9f\xce\xef\x91\x9c\xfb\xd3\x3a\x81\x66\x1b\x37\xb6\x3e\xe8\xee\x7d\xda\x6f\xbd\xbf\x06\xba\x39\x70\xf0\x9b\x53\x9e\x24\xe0\x69\x90\x24\x7d\x0a\x8b\xe4\x87\xdd\xc3\x84\xef\xe9\x7a\xc8\x79\x7e\x00\xf0\x75\x91\x18\xd1\x49\xfe\xba\x31\xa2\xa1\x44\x6e\xf4\xd5\xa0\x05\x13\xaa\xc6\x19\x61\x4d\x36\xb6\x9f\xea\x85\x4e\xde\x59\xc0\xa0\x8b\x1e\xdb\x59\xd0\xa0\x5b\x92\x57\x0e\x1c\x5c\x31\x8f\x7d\x0d\x1e\xac\x30\x3b\x1f\xcb\x57\x5c\x33\x2e\x70\xc8\x28\x3e\x03\xbd\xc4\x23\x36\x28\xe5\x53\xb8\x82\xd0\x93\x45\x11\x90\x6d\x74\x88\x90\x99\x41\x39\x09\x6b\x58\x01\x37\x9a\xfe\x0b\x34\x1d\x03\x5e\x6b\x42\x0a\x5d\xd8\x20\x44\x93\x93\xf8\x10\x47\x8b\x28\xa1\x51\xa0\x33\xcf\x04\xce\xe6\x4d\x1c\xcf\xed\x7c\x8f\xba\xf3\x56\xa8\x3b\x6d\x75\x97\xd6\x89\xdb\x76\x74\xc5\x70\x4a\x7a\x34\xa0\x26\x34\xa0\x03\x8f\x77\xc1\x8a\x0a\x52\x6f\x08\xa3\x50\x3f\x77\x3d\x24\xd0\x1b\x40\x02\x6d\x72\xf8\x0a\xbc\x9f\xd2\xb1\xeb\x61\x8a\x3e\x74\x82\x29\xf2\x97\xe0\x5e\x21\xcf\xb4\x9f\xc7\x37\x46\x34\xa9\x0f\xec\x2d\x61\x89\x1a\xc4\x85\x75\xe4\xa6\x65\xb8\x44\xcb\xe8\xa2\xd3\xba\xbc\x2d\x4a\xd0\x7a\x2b\xb3\x16\x00\x50\xe3\xdd\xb5\x27\x70\x40\xed\xdb\xb0\x27\xe7\x66\x97\x59\x2d\xeb\x95\xc8\x0c\x33\x5b\xd6\x51\xb0\xd6\x4b\x72\xf1\xf4\xf0\xbe\x12\x5d\x8a\x5a\x62\x9b\x25\xbb\x0c\x9c\x0f\x9a\x08\x34\xe7\x49\xec\x40\x28\xfc\x6a\xf9\x0e\x7c\x26\x80\x5f\x20\xb7\x19\x50\xd3\x1b\xb4\xad\xa2\x20\xd8\xb2\x94\x16\xbf\x89\x30\xdc\x1d\x30\x9a\x5d\x58\x11\x3c\x27\xd9\xc4\x7e\xb0\x52\x16\x91\x65\xf3\xf7\x92\x31\x96\x56\x08\xac\xe6\xcd\xc3\x5c\x69\xf7\x5d\x31\xb8\x65\xa2\x47\x60\x1c\x14\x4d\x15\x2d\x0d\x9d\xc1\xd3\x27\xea\x0c\x11\x38\xec\x71\xa9\x97\xce\xcd\xae\x93\xa7\xae\x4a\x2c\x1b\x04\x83\xd5\x2a\xb7\x6d\x0f\x0e\x94\xe2\xcf\xe3\x0c\x0b\x9c\x24\x24\xa1\x32\x7d\xb1\x60\xe0\xd3\xb2\xbb\x56\x9f\x55\xc1\x8d\x89\x88\xe5\xe9\xc4\x90\xa2\x1b\x88\xad\x17\xa9\x38\x12\x39\x0b\xa1\xcd\x9e\x6b\x45\xf5\x73\xb8\x17\xc0\xaa\x14\xcd\xa1\x38\xe9\x14\x53\xc1\x88\x6c\x2d\x05\x49\xa2\x5c\x50\xb5\x18\xdb\xca\x9a\xdd\x0f\xdc\x9d\xfd\xf2\xd4\x7e\xb8\xdc\xc3\xed\xb2\xfa\x5d\x7f\xbe\x92\x67\x46\x04\x94\x09\x72\x05\x6f\x82\xea\xa1\x16\xb5\x81\xf8\x5a\x43\x10\xfe\x5c\xbb\xb6\xdb\x02\x87\xf1\xf3\x38\xc8\xa8\x1a\x47\x55\xe2\x58\x75\x58\x9b\x70\xa7\x96\x4d\xf2\x85\x91\x97\x5a\xbc\xc8\x2f\x50\x65\xc4\xa6\x4d\x98\xa6\xf5\x80\x03\x57\x30\xd8\x2b\x8b\x8d\x09\x52\xde\xad\x52\xd5\x32\x4e\x8b\xf5\xd3\x14\x7c\xb4\x64\xb0\x83\xe0\xab\x0e\x23\x0e\x3a\xd9\xd1\xb0\xf5\x41\x17\x22\xcf\x14\x9d\xd4\xa1\x6d\xd4\xee\xaa\x8e\x0e\x12\x48\xb3\x76\x6e\x86\x52\xb7\xa6\x14\x69\x89\x13\xdb\xd9\x69\xf9\xdf\xe2\x88\x39\x84\x20\x83\xb0\x14\xe6\xf1\x5d\xa7\x54\x29\x97\x28\x60\x0c\xd0\x9a\x3a\xcb\xb6\xd9\xaf\x5c\xb8\x07\x86\x82\xa6\xc6\x44\x74\x34\x62\x03\x89\x9e\x09\x62\xc4\x42\x48\x34\x94\x2a\xf5\x56\x6d\xa8\xfd\x34\x21\xba\x27\x1f\x9b\xa2\x85\x07\xaa\xa4\x2f\x3f\x66\xfa\x98\xe2\x44\x92\x03\xdd\x30\x54\x2d\x55\x1c\x82\x3f\x31\x7a\x16\x38\xcb\x88\x18\x31\x9b\xc5\x01\x0e\x17\xce\x13\xd3\x7e\x5b\x88\xab\x5d\x03\x32\x8e\x70\x34\x7f\xa5\x3d\xc2\x90\x8c\x13\xcd\x49\xec\xf2\x85\xcb\xdb\xe3\xe6\x6d\x0c\xd6\x6b\x6c\xd6\xf9\xd4\x95\xcf\x3a\xb0\x9d\x24\x91\xe6\x28\xbe\x9a\x72\x46\x84\x1e\xb5\xa6\xe1\x27\xc2\x10\x9d\xba\x71\xd8\xd8\x1d\xf4\x0c\x9e\x29\x4d\xfa\x4f\x98\x26\x26\x01\xdf\x75\xed\x84\x40\x63\x7e\x1f\x31\xe3\xee\x66\x51\x29\x43\x95\x32\x2a\xe7\x9a\x53\xe7\xe0\x93\x04\x35\xa3\x2d\x71\x86\x3d\xad\x73\x9a\x87\xfa\xf5\xe5\x1c\xf4\x89\x0a\xce\x52\x48\x92\xb1\xb8\x4c\x6e\xf9\x24\x51\xfe\x78\x34\xa6\x38\xae\x94\x88\xe3\x58\x96\x8d\x9f\x46\xad\xa4\xbf\x96\xcc\x2e\x87\xa5\xac\xc0\x28\x80\x15\x82\x20\x4e\x57\x59\x6c\x99\xfc\xdb\xa7\x36\xd4\x53\x1b\x9a\xd7\x66\x1f\xd3\x1b\xfc\x21\x5e\x37\xc5\xa1\x6d\xfb\x77\x21\xd9\xee\x30\xd5\xe1\x8d\x73\x02\x5e\x26\x1d\xe0\x6d\xf3\x37\x5e\x22\x75\xa3\x4f\x70\x78\xc3\x04\x87\xce\x96\xda\x72\x6c\x76\xfb\xb1\x5d\x2b\x39\x60\x05\x98\x53\x53\x2f\x97\x44\x09\x1a\xc9\x5d\xf0\x07\x99\xe1\x8e\x51\x6d\xa0\x05\x66\x2b\xa4\x26\xfd\x82\x77\x42\x42\x9c\x98\xaf\xf3\x37\x11\x04\x3f\xc6\xfc\xb9\x66\xab\x93\x21\x9a\xc6\x25\xd7\x62\x8f\x20\x11\x95\xa4\x14\xc9\x42\x25\x62\x44\x5a\x63\x27\x1e\xb1\x39\x25\x02\x8b\x68\x0e\xd9\x8d\xc5\xc6\x98\x2c\x59\x03\x68\x64\x62\x19\x42\x6f\xd3\x1a\x9b\xde\x61\xdd\xab\x16\x26\x8f\x4f\x67\xf7\x5c\x8f\x24\x35\x9f\x78\x61\xc6\x4a\x19\xa1\x49\xae\xd3\xf6\x6f\x1b\x88\xef\x17\xfb\x45\x83\xf1\x7d\x30\x51\xf0\x45\xc7\x80\xfc\x82\x1a\xfa\xa0\xfc\x17\x0a\xca\x6f\x58\xe2\xf5\x02\xf3\x37\x32\xf9\xbd\x7e\xcc\xb0\xeb\xf9\x35\xe2\x86\x57\x05\x6d\xe5\x93\xf1\x8b\x1f\xbd\xc6\x39\x77\x3d\x81\x3f\x79\xa2\x30\x12\xb1\xd0\x74\x36\x21\x71\x0c\x9c\x56\x71\x5b\x29\xba\xa0\x1d\x67\x1e\xd0\x77\x2f\x96\x9a\xd8\x71\xc2\xd9\x4c\xd2\xd8\x80\xad\x64\x18\x2a\xb6\x86\xc6\x0b\x00\x17\x80\xfd\x4d\x12\x22\x9c\x57\x42\xa0\xaf\x25\x65\x16\x4d\xd1\xff\x16\x73\x22\xd9\x57\xca\x18\x0b\x30\x5b\xa0\x47\xc6\x9f\x13\x12\xcf\x60\x87\xaa\x83\x39\x44\x94\x1c\x20\xaa\xfc\x67\x02\xd0\x08\x78\xae\x46\x7a\xec\x10\x6b\x66\x34\x00\x62\xbf\x0d\x6a\xa2\xfb\x66\xbe\x39\x42\xe8\x9c\xa1\x29\x8e\xd4\x01\x92\xf9\xa4\x68\x3f\xe6\xa6\xc8\xb5\xd6\xbe\x83\x89\x17\x8d\xf4\x31\xe3\x0d\x9d\x37\x9f\x0d\xc7\x1d\x34\xb9\x0e\x12\x8a\xb7\x8a\xad\x7b\xc2\xdb\x40\x8c\x5e\xe6\xd2\x06\x61\x20\xce\xfc\xd1\xb7\xf0\x4a\x1e\x23\x1a\xf0\x3e\x0d\xde\x32\xe3\x71\xab\xad\xb3\x32\x95\x75\xc7\x52\x04\x42\x5a\x41\xc9\x3a\xaa\xa0\x5d\xb3\xdc\x5a\x6a\x92\x4a\x10\x9c\x5a\xe7\x80\xbe\x6a\x40\xac\x31\x61\x90\x7a\xf4\x54\x18\x09\x73\x9d\x2d\xbe\xa0\xec\x51\xef\x6e\x81\x8a\x0d\xf5\xe5\xa1\xe7\xa6\x4d\xcb\xf4\x8d\x47\x4e\x39\x33\x0e\xc2\xad\xe4\x4e\x3a\x63\x38\x59\xd3\xc6\x51\x5b\xb9\xba\x4f\xcf\xc9\x59\x56\x5c\xd0\x52\x84\x31\xf6\x21\xd3\xe3\x5a\x36\xa4\xca\x7c\x43\x79\x0f\xa3\x98\x64\x84\xc5\x84\x45\x0b\x20\x11\x06\xc8\x39\x82\xe1\x04\x61\xf8\x0e\x27\x47\xe8\xcc\xe4\xd7\x78\x09\xcf\x5e\xeb\x70\xa1\xa7\x98\xd1\xa9\xd6\x13\xc0\x08\x6b\x47\x39\x62\x66\x98\xce\x07\x12\x14\xed\xf7\x2b\xd6\xb4\x33\xfa\x06\xb9\xda\x12\x95\x98\x95\xbf\x47\xcb\x2f\x1c\xe8\x6d\xd9\xee\xe8\xe6\x5c\x0d\x02\x99\x4f\x0e\xe1\xdf\xa5\x84\x33\x07\xd4\x53\xa0\xc8\x90\x84\x80\x39\xd0\x7a\xbc\xe0\x62\x6c\x03\x96\xdb\x85\xdf\x6e\x45\x1e\x47\xd0\x47\x49\xa9\x49\x29\xa3\x69\x9e\x06\xce\x3b\x53\xb1\x20\xb2\xf6\x4b\x93\x89\x91\x69\x3d\x20\x72\xe0\xe5\x48\x5f\xae\x6c\x81\x66\xf4\x89\xb0\x11\xcb\x38\x65\xea\x08\x5d\x71\x45\x82\x12\x11\x06\x3a\x8a\x67\x8a\xa6\x06\xed\x54\x10\x7d\x0e\x0c\x28\x36\x00\x4d\xce\xb1\x3a\x40\x71\x0e\x47\x95\x11\xa5\x59\x87\xbe\x71\x15\xec\x0c\xc4\x47\x8b\x11\x33\x37\xdd\x14\xd3\x24\x17\xc4\xca\xac\xd8\xe4\xc5\x14\x43\x2e\x46\x66\x91\xd0\x82\x49\xa4\x74\x36\x57\x7a\x8b\xb4\x8c\x67\xfd\x8d\x73\xcd\x8d\xf8\x88\x4d\x08\xc2\x28\xe3\x92\x2a\xfa\xe4\xfd\x97\x74\x8a\xb0\x94\x60\x41\x39\x42\x67\x25\xfb\x3f\x95\xa0\x7a\xb7\xc5\xd5\x52\x36\xb6\xb6\xe7\xf6\x7c\x9c\xad\x37\xb2\xd4\x8b\x5d\x65\x3c\x91\x3c\xc9\x55\xe8\x82\x6d\xde\xdb\xc2\x34\xee\x80\xfb\xc1\x40\xcc\xa7\x23\xe6\xe8\x5a\x1e\xa1\x81\x44\x92\xeb\x5d\x92\x66\x2b\x23\x41\x15\x11\xd4\xa0\x38\x11\x65\x36\xc1\x9f\x53\x7f\x06\x52\x2c\x1e\xb5\x08\x15\x5a\xe0\x0d\xa6\x68\xc9\xda\x31\x31\x12\x12\xc0\x5a\x85\xdb\x01\xa6\x7f\xc4\x38\x3b\x64\x64\x86\x57\xed\xc8\x88\x95\xb6\x04\x7d\x4d\xa7\x85\x42\xda\xe6\x73\x0c\xd6\x6e\x0c\x91\x4f\x6d\xbb\x64\x3a\x6e\xdb\xa4\x69\xc2\xf1\x0a\xb7\xf1\xb4\x38\xf4\xe8\xef\x7c\x62\xc6\xa8\xf5\x7e\xae\x40\x0a\xd4\xea\xd5\x94\x0b\x32\xc7\x2c\x3e\x70\x9b\x55\x1e\x1b\xdc\x8c\xd6\xd4\xe6\x94\x31\x90\x04\x1d\x88\x30\x31\x58\x4c\x98\x05\x7b\x61\x15\x37\xbb\x15\xc5\x3e\xac\x75\x57\xf8\xd6\xa0\xf6\x89\x31\x40\x18\x96\xb7\xc8\xec\x11\x97\x34\xcd\x92\x22\xa7\x29\xb0\x8d\x4e\xb5\x88\xe5\x78\x24\x7f\x02\xd3\x95\xd3\xda\xe0\x56\xb7\x3b\xa7\xe9\xac\x61\xe4\x9e\x91\xc2\xad\xe1\x6c\x5e\xa6\x0c\x66\xc0\xc2\xbe\x96\x44\xff\x53\x91\x42\xed\x33\xc2\xfa\x88\x39\x11\xe4\x1b\xe0\x32\xb6\xd9\xc0\x78\xa6\x45\x68\x03\xf3\x6a\xd7\x0f\x45\xc6\xc9\x5d\x3a\x27\xf6\x30\xb8\x57\x1b\x2e\xaa\xef\x28\xc3\xa5\xcc\xdb\x0d\x04\xbf\x24\x5f\x2b\xb9\x2a\x70\xfb\x2d\xda\x6a\x9a\x28\xbc\xaa\xcc\xc8\x1a\x94\x60\xf6\x99\x20\xdd\x9d\xa5\x66\x57\xf1\x06\x43\x44\xc0\x9c\x24\x19\x8a\xe9\x14\xcc\x52\x0a\xd8\xb7\x07\x16\x33\x58\xf0\xfa\xb0\xa7\x39\x33\x20\x71\xc6\x23\xf2\x6c\xf1\xb6\xed\xd5\x58\x34\x7e\x34\x62\xe7\xea\x2b\xa9\x45\x74\xce\x66\xfa\xa2\x89\x9f\xa8\x2c\x8a\x9c\x44\x9c\xc9\x3c\x25\xc2\x76\xa1\x6f\x64\x4d\x91\xb6\x40\x00\x76\x32\x94\x1e\x9b\xde\xfb\x27\x9c\xd0\xd8\x15\xe2\xd1\x3f\x9a\x33\xa7\x47\x29\x9d\x47\xb1\x21\x24\xcc\x6e\x6e\xac\xd7\xea\xcd\xc4\xfa\x1f\x43\xc9\x1d\xa5\x85\x90\x8f\xad\xad\xfe\xb8\x2a\xe2\xdb\x55\x5f\x22\xde\x4f\x6a\x93\x42\xcb\x05\x23\xbb\x0a\x67\xab\x50\x0c\x1d\xa2\x6e\x6e\x42\x80\x75\x3f\xce\xe8\x63\x06\xb7\x16\xfb\xa9\x4c\xd0\x8e\xda\x70\x96\x50\xbc\x27\x14\x64\x03\xa9\xb0\x16\x2f\xcc\x75\xc0\x85\xd5\x70\xec\x9d\xd3\xbe\xb5\x67\x5b\x96\x89\x90\x11\x4e\xea\x3b\xbc\xc4\xde\x6c\xde\x5f\xae\x04\xd8\xe3\x66\xda\x5e\x9a\xf4\x1b\xf1\x24\x59\xa7\x84\x49\x65\xe6\xa7\xc5\xe7\xcb\x47\x54\xf4\xa3\x37\xc0\xed\x05\x9c\x1a\x73\x79\xe3\xc4\x9a\x52\xa4\xb2\xbb\x14\xbe\x64\xd4\xb0\x85\x65\xad\x23\xc6\xa7\x50\xe4\x26\x69\x8b\xea\xca\x04\x4f\xe9\x3a\x28\xcb\x26\xd0\xe9\xd6\xd9\xc5\x57\x58\x19\x9c\xf5\x1c\x44\x53\x43\x5e\xb6\x47\xc8\xd7\xc3\x56\xdc\x5c\x72\x86\x52\x9c\x6d\xb4\xe0\xab\xbc\x42\x03\x94\x1a\x97\x9c\x5d\x3d\xc0\x5b\x24\x50\x2f\x06\x16\xf9\x19\x2f\x8a\xd4\xe8\x36\xfc\x5c\xb6\x16\x39\x3c\xe8\xd7\xcf\xd9\x94\xaf\x71\x38\x8b\x54\x66\x7b\xfa\xb0\xa3\xd9\xe0\xfc\x79\x2f\x85\xd9\x7d\xb3\xa6\x5d\xce\xe3\x69\x13\x51\xaf\x7d\x32\xdd\x0a\xbe\xa4\x8d\x32\x64\x22\xa1\x79\x72\x9d\xbb\xb5\x7c\xb4\x82\x16\x11\x0c\x67\xf9\x52\x5d\x96\xe8\x70\xe7\x6b\x54\x69\x07\x19\x53\xb8\x0b\xa6\xbe\x69\x6e\xf5\x15\xd6\xcc\x1e\x92\x4e\x8b\xb5\x25\x76\xc3\x7a\x38\xc0\xae\x47\x8f\xfa\xdb\x7c\x42\x57\x16\x39\xe8\xbe\x18\xc0\xcd\xa4\xb5\x73\x15\x91\x99\x36\x45\x6d\x4a\x13\x2d\x62\x9f\x37\x18\x38\x5d\x82\x98\x0f\xa8\x32\xa1\xf2\x4e\x7a\xca\x05\x0d\x0a\x83\x3a\x19\x09\x51\x28\x50\x12\x3a\x79\x02\x85\x1e\x4c\x8b\x73\xfe\x6c\xa2\xd3\x05\xd5\x3c\xcb\x08\xab\x0a\xcc\x3d\x9a\x17\x50\x6b\x2d\x31\xc6\x26\xff\x01\x37\x31\x83\xd8\xd6\x3e\x2e\x46\xd5\xb2\xa5\xbb\x28\xf1\xd4\x3d\xff\xce\xf5\x7a\xaf\xbf\xa8\xef\x4d\xe3\x08\xef\xcb\xad\xaf\x3d\x3a\x2f\xe5\xaf\x1f\x30\xf5\x11\x3e\x75\x4a\x0f\x46\x53\x41\xc0\xc1\x9f\x7a\x4c\x0d\x03\xaa\xcb\x39\xdc\x77\x77\x67\x3f\x1c\x3f\x9c\x23\xa2\x22\x94\xd0\x47\x32\x62\x91\x7c\x3a\xd0\xe2\xf1\x3f\x72\xa2\xf4\xcf\x2d\x1e\x01\x9a\x12\x26\x81\x13\x50\x55\xc3\x1e\x6a\x5e\x48\xb7\x30\xfa\xbf\x67\xe5\xef\x97\x90\x7c\x2d\x7d\x18\x68\xd7\xd5\xbb\x01\x32\x85\x92\x1e\x66\x69\x65\x03\xc5\x18\x5b\xe4\xb0\xa9\x1a\xe6\x06\xe9\x42\xec\xef\x39\x5b\x53\xe8\x3a\x2d\x3e\x0a\x46\xd1\x22\xd3\xa5\x19\x06\xac\xeb\xf5\xf2\x90\xcc\x37\x8d\xad\xaf\x62\x22\x45\x5a\xb6\xb3\x2d\x17\x85\x43\x91\x12\x84\x00\x0b\xf1\xf4\x64\xef\x7a\x8b\xc4\xe1\x27\x16\x7c\x74\x34\x62\x97\xce\xe3\x5c\xfc\x2a\x0b\x3d\x3c\x9d\x04\x10\xe0\xe5\x56\xa0\xd9\x98\x4a\xff\x03\x14\x74\x91\x79\xa2\x4c\x45\xbb\x29\x65\x38\xf1\x03\x35\x4f\x9a\xb8\x84\xc0\x2c\x9a\x6f\x6b\x42\xa6\xd3\x31\x49\xd6\x91\x44\xcf\xa7\xc3\x44\x6a\xfa\x8e\x1e\x5b\x4e\xe7\x26\x35\x1b\x8b\xc9\xd8\x4a\xb4\xa6\xee\x13\x2a\x4c\xd0\x38\x31\x15\xe5\x08\x02\x1f\x65\x35\x7b\xcc\x00\x44\xe8\x5d\xb4\x92\xba\x71\x51\x9a\xb4\x0d\x1f\x92\x0d\xbd\x20\xac\x46\x4c\xe4\x0c\x8a\x4d\xf8\x88\x05\x8c\x0a\xbc\xf0\xc8\xf9\x0f\xac\x37\x67\xa6\xd9\x84\x81\xe3\x36\x2f\x6b\xfd\x8c\xe7\x12\x6c\x35\x29\x51\xfa\x82\xfa\x1a\xea\xc0\x9a\x90\xa1\x03\x94\x09\x9a\x82\xb9\x55\x7e\xd3\xb0\x75\xa7\x58\xe1\x84\xcf\x06\x42\xd1\x29\x8e\xd4\x3d\xde\x4a\x03\xc7\xb6\x99\x4d\xc3\x4f\xdd\x30\xd0\xf9\x99\x5e\xfc\x19\x61\x44\xc0\x44\xb5\x4e\xde\x7c\x84\xe1\xc9\x46\x9c\x1b\xac\x6c\xd6\x30\x2a\xbd\xc5\x02\xe7\x8a\xa7\x5a\xbf\xc5\x49\xb2\x38\x30\x16\x59\x82\xe6\x58\xce\xdd\x46\x1b\x63\x5a\x97\xbb\xc9\x2e\xee\x29\x8e\xe6\xe4\x0e\xaa\x22\x37\x2d\x6e\x65\x94\x1f\x08\xcb\xd3\x0f\x27\xe8\x7f\x8a\x39\x9e\x0e\x4e\xbf\x1f\x8e\xcf\xce\xef\x06\xdf\x5d\x0c\xcf\x82\xf9\xd8\x27\x97\xe7\x77\x77\xf5\x5f\xbf\x3f\xbf\xaf\xff\x78\x73\x7d\xf3\x70\x31\xb8\x6f\x6a\xe5\xe2\xfa\xfa\x87\x87\x9b\xf1\xc7\xc1\xf9\xc5\xc3\xed\xb0\xe1\xd3\x87\xfb\xf6\x87\x77\x3f\x9c\xdf\xdc\x0c\xcf\xdc\xaa\xfc\x2d\x38\x5d\x60\x3d\x86\xd4\x8b\xe6\x69\x54\x0f\xe0\x21\x2a\xbf\x78\x82\x1e\xaa\xa5\x0f\x6c\x2c\xb2\xc1\xb1\x78\xc6\x52\xf3\x30\x08\x85\x1f\x31\xe4\x3e\xd7\x8b\xd2\xf6\xa9\x09\xd7\x89\xe6\x04\x25\x9c\x3f\xe6\x99\x65\x6d\x26\x3e\x8c\x71\x63\xf8\x21\x32\x68\xed\xfb\xf3\xfb\x93\x7a\x09\x06\xdf\x58\x80\x98\xe5\xce\x00\x8c\x0b\x3b\x76\x0a\xb6\x14\x07\xcd\x5f\x58\x6f\x83\x1e\xfc\xce\x2c\xeb\xc7\xb4\x86\x99\xaa\x74\x13\xc7\xb6\xe8\xaf\x9b\x58\xd0\x70\x79\x5f\x97\xad\xa6\x5f\x0e\x53\x7b\x0a\x4d\x48\x84\x73\x13\xd4\xa4\xef\x29\x21\xb8\x08\x07\x5c\xd0\xc3\xee\x1a\xb5\x74\xd4\xd8\x60\x65\xcf\xf4\xc4\xe5\x23\xcd\x32\x12\x7f\xa8\xcb\x2f\xe5\xea\xb0\xb6\x26\x39\x9f\xa2\xe0\x4c\x6a\xbd\x1e\x74\x7e\x57\x38\x65\xbe\xf0\x9e\x34\x08\xdc\x28\x42\x59\x00\xc8\x59\xdf\x09\xbe\xb0\x05\x05\xd7\x18\x56\xe8\x99\x40\x4a\x75\x6e\x2b\x47\x19\xdd\x5b\x9f\x6d\xe8\xce\xd8\xb4\x5d\x1d\xb8\x52\xaa\x75\x2b\x33\xde\x85\xc0\xad\xbf\x97\xa4\x89\x11\x6f\x91\x17\x7b\x66\x1a\x05\xee\xec\x62\xde\x60\xc4\x2d\xc1\x0d\xee\x36\x68\xb0\x90\x2f\x91\xaf\xea\x37\xd2\x8a\xcb\x42\xb3\xed\x2e\xe3\x71\x58\x20\x25\x80\xeb\xee\x03\x2b\x81\x20\xaf\x5c\xab\x7b\x1e\xe3\x85\x26\x0e\x88\x35\x96\x79\x96\x71\xa1\x50\x4b\x1b\xc6\x8d\x6f\xc6\x07\x77\x8e\x9d\x87\xe7\x71\xd0\x88\x96\x30\x64\x43\x2d\x8d\x6e\xf0\x08\x76\x5d\x0b\xc6\x11\x06\xc8\x82\x22\xe8\xeb\x1e\xa5\x25\x95\xba\x44\xa1\x4d\xc2\xef\x36\x19\x06\x99\xbe\xe0\xbb\x96\xe1\x6b\xea\xfd\xda\xb5\xd0\xb8\xe5\x09\x99\xaa\x71\xa3\xd7\x67\x89\x81\x53\xb7\xc8\xda\x10\x65\xe8\x6c\xbe\x83\x16\xbb\x6b\x09\x7f\xb4\x81\x3d\x5a\x35\x08\x2c\x04\x82\x73\x65\xe4\xd3\x42\x87\x41\x6e\x35\xc1\xbc\x60\x3b\xb5\xb9\x60\x5e\x08\xd4\x32\xbf\xf1\x87\xfa\xb4\xa9\xa3\x11\x1b\x42\x00\x45\xa1\x88\xb8\x14\x31\xd0\x02\x56\xca\xff\xa5\xa2\xa3\xaf\x1a\xad\xd9\x8e\xf0\x5a\xd0\xbd\xad\x97\x9f\x2c\x50\x51\x58\xb6\xf4\x5d\x97\xd3\x63\xac\xde\x4e\x04\x34\x13\xb6\x65\xdc\x15\xc9\xac\x65\xde\xcc\xb3\x88\xf4\x81\xf8\x30\xdd\xd5\x11\xfa\xc9\x59\x7e\x20\xf0\xb5\xa8\xc9\x6c\x63\x37\x12\xbc\x70\xa0\x90\x4d\x0b\xbb\x0b\x9c\xc5\x5d\x87\xc2\x2e\x5f\x60\x0f\xe8\xd4\xb0\xca\x25\x05\x9c\x31\x63\x91\x5d\x23\xed\xe3\xd4\x7f\x74\x47\x96\x47\x05\x7c\x84\x32\x9c\x36\xb2\x0a\x84\x0e\x96\x2c\xfe\x97\xd9\x2c\x93\x89\xea\x0a\x6b\xd9\xb2\x88\xd6\x83\xaa\xcf\x0f\x78\x00\x4d\xa2\x2a\x9a\xd2\x24\x01\x39\xe0\x08\x0d\xa0\x3c\x30\x24\x72\xea\xab\xd0\x05\x58\xd0\x19\xe3\xab\x72\xcc\x5a\x88\x29\x0a\x88\xe9\xae\x9d\x98\x24\x50\x53\x91\xc7\xbf\x1b\x8a\xda\x01\xa6\x8b\xe6\x2d\xb8\x8e\x88\xdd\x1d\xc9\x65\x0d\xe5\xfd\x2d\xa2\xa3\x6b\xc3\x0d\x3e\xfc\x57\xf3\xd0\x3f\xe5\x58\x60\xa6\x20\xe6\xd7\x8a\xee\x82\x04\xa9\x47\xe4\x33\xc4\x67\x30\x63\x08\x86\x9f\xc2\xcd\x75\x2e\x7f\x08\xf7\x42\x34\x3e\x40\xf4\x88\x1c\x41\x75\x36\xa1\x65\x89\x49\xf1\xe6\x5c\x4b\x0e\x23\x56\x8b\x65\x3c\x42\x83\x44\x72\xfb\x05\x61\x51\x02\xe5\xb8\x83\xf0\x64\x4f\xf9\xd6\xad\x34\x59\x80\x82\x02\x5b\x59\x34\xcf\xed\x83\xe0\x43\x28\x32\x06\x3e\xf1\x04\x4e\x7a\xf1\xfb\xef\x79\x66\xbc\x15\x6d\x71\x12\x2f\x58\xce\xa1\x76\x0d\xbd\xd8\x26\x99\x52\x81\xcb\x36\x08\xde\x80\x8d\x29\x62\x4c\x03\x04\x16\xf4\x35\x56\x28\x21\x58\x2a\xf4\x87\x6f\xd6\x8a\x0d\x71\x13\x2c\xb8\xab\x3d\xbe\x45\xa2\x98\x4b\x35\x08\x85\x3b\xdf\x31\xd4\x8e\xc3\x42\x21\x8c\x18\x79\x0e\x23\x4b\x39\x04\x03\xbb\x82\x70\x24\xc8\x6d\x35\xf1\x64\x26\x33\x1f\xb2\x35\x8c\xca\xd4\xc2\x47\x1c\xdc\xb1\x75\x9f\xda\x61\x35\x50\x96\x55\x9e\x6c\x88\x27\x40\x72\x15\x41\xff\x73\xac\x46\xcc\x72\x56\x17\x36\x12\xa4\x79\x0d\x92\xa4\x1c\x68\x8f\x21\x97\x84\xe9\x09\x43\x7d\xf6\x23\xbf\x40\x57\xa0\x7e\xf9\x68\xe7\x92\x9d\xae\x38\x2c\x26\x1e\xcf\xe3\x1d\x85\x6d\x37\x4a\x3b\x4d\xf6\xe5\x57\x14\x82\x1b\xba\xbf\x30\x85\xf2\x3b\x08\xc3\xa4\x69\xc8\x2b\x0e\x56\xdd\xa6\xbf\x44\x36\xde\x75\x07\xdd\x45\xe5\x66\xfb\x38\x5c\xb3\xcf\xbc\xc1\xdc\xde\xb2\xb9\x81\x6c\xb1\x8d\x02\xee\xc3\xee\x5f\xcb\xe3\x5b\x1a\xfa\x79\x0c\x49\x7f\xab\xb9\x60\x91\x44\xe7\x58\x87\x89\xbd\x8e\x83\x9c\x9e\x20\x85\x00\x82\xff\x1c\xe3\xb3\x6f\xb6\x78\x5e\xb3\xf7\x3d\xfd\x83\x62\xfe\x6e\x2a\x3e\x08\xae\x3e\xf1\x76\x61\x6f\x10\xff\x1d\x47\x10\xe9\x0f\x3d\xb9\x1c\x83\x3a\x20\x93\x83\xb1\xc6\x60\xcc\x6f\x14\x0f\x33\xc1\x23\x22\xe5\x11\x1a\xc2\x45\x63\xff\x89\xf0\xd4\x39\x24\x82\x97\x47\x4c\x6b\x26\x0e\xbf\x25\x68\xbf\x4c\xe2\x4d\x27\xc0\x80\xc1\x6d\xe5\xcb\x49\x57\xd7\x28\x69\xd3\x26\x1c\x16\x1d\xb4\x01\x65\x0d\xd0\x70\x76\x82\x62\x1e\x3d\x12\x71\x2c\x48\x4c\xe5\x09\xf8\xd6\x55\xab\x53\x2f\xd5\xda\xf6\xd6\x92\x46\x5b\xa0\xc0\x8a\xa4\xb8\x53\xd3\xbf\x0d\xb0\x76\xe1\xb5\x07\x88\x4e\x41\x9d\x70\x39\x19\x26\x08\xd9\xc1\xdd\x10\xa6\xc4\x02\xe2\xfa\xbd\x29\xab\xb2\x10\x4e\xd3\xd0\x42\x5b\x5b\x36\x91\xd8\x45\x0c\xce\x86\xd3\xbe\x9f\x13\x49\x5c\xc0\x81\x99\x94\xe2\x36\x96\xd9\xb0\x8b\x0c\xab\xb9\x84\xd4\xd5\xf2\x1a\x58\xa5\x0b\x3e\xd5\x2b\x84\x33\x88\x57\x30\x56\x8a\xe2\x23\x9f\x60\x29\x15\x4d\x92\x11\x63\x84\xc4\x12\x41\x96\xe9\x57\x8d\x19\xf2\xfa\xd3\x03\x84\xe3\x18\xfd\xef\xaf\x3f\x5e\xfc\x7c\x3f\x1c\x9f\x5f\x81\xd1\xfa\xfc\x62\xf8\xcd\x81\xff\xf1\xfa\xe1\xde\xff\x6a\x2c\x2c\x4f\x44\xa0\x14\x3f\x82\x8a\xc7\x24\xb1\xc9\x13\x64\xc4\xc2\x91\x3a\xec\x00\xfd\x44\x12\x17\xe9\x6a\xc5\x14\x0f\xa1\x68\xf7\xb0\xb5\x62\xb1\xb1\xf9\xad\xa1\xfc\xde\xfa\x4f\x96\xd3\xa0\x23\x1e\xdf\x85\x13\x03\x21\x47\x06\xcb\x20\x99\xdc\xea\xbe\x05\xc1\x11\x36\xa3\xac\x2d\x1e\x8f\xb0\xa7\x97\x14\xe2\x7f\x20\x8b\x1f\xb5\x7a\x7d\x83\xa9\xe8\x4c\x7b\xcd\x68\x40\xee\xc4\x68\x3d\x1d\xcb\xea\xa1\x92\x46\x16\x36\xd9\x36\xad\x31\x9f\x4d\x40\x70\x6f\x3e\x5d\x0b\x2f\x45\x3e\x2b\xe1\x50\x2a\x7c\x3e\x87\x83\x72\xf2\x17\x4d\x41\x83\x23\x76\x7f\x7d\x76\x7d\x82\x48\x82\x27\x1c\x42\xf9\x6d\x48\x90\x6b\xc2\x2e\x58\xc4\xd3\xa0\xa1\x12\x42\xc9\x01\xca\x0a\x84\x92\xd0\x88\x76\x64\xda\x58\x81\x54\x92\x71\x51\xc7\xf7\xd8\xad\x0a\x68\x27\x7b\xc3\x45\x97\xeb\x5f\xbf\x06\x4b\xc7\x33\xad\xc8\x55\x38\xaf\xbd\x9b\xa7\x04\x9b\x5a\xfa\xc6\x2d\x64\x6d\xf9\x36\x80\x35\x49\x4a\xf5\x14\xf5\xc1\x91\x47\xd6\x05\x5f\xbc\xc9\x19\xfa\xe1\x2f\x12\x4d\x72\x35\x62\xe5\x36\x38\x43\x83\x9f\xee\xd0\x77\x58\x45\xf3\x6f\x46\xec\x5a\xab\x99\x3f\xfc\xa5\x05\x4a\x69\x6d\x74\x42\xbd\x26\x67\x58\xe1\x0b\x8e\x63\xca\x66\x4d\xd0\x84\x45\xfd\x98\xe1\xfd\xe0\x04\x5d\x5b\x1d\xbe\xc8\x04\xf1\x29\xc1\x41\x43\xc0\x90\x61\x22\x8e\x8b\x00\x2b\x67\x65\xf8\x36\xa3\x99\xc1\x85\x35\x62\xf7\x06\x93\x51\x73\x55\xaa\x50\xc6\x6d\x0d\x23\xad\x95\x19\xb4\x4a\xec\x32\xa4\x48\xb2\x40\x7a\x75\x80\x8c\xfd\x66\x58\x79\x0c\xe4\x99\x3a\xb3\x1f\x31\x50\xd0\x7d\x6e\x4a\xc2\x23\x9c\x40\x4c\xde\x61\x60\xd3\xd3\x6a\x3b\xcf\x21\x3f\xdc\x14\x3d\x5f\x94\x43\x67\x3d\x64\x81\x17\xca\xc2\x8d\x02\x03\x00\xec\xa3\xf5\xc6\xa6\x5c\x73\x1c\x83\xc5\x06\xc6\xb7\xc4\xac\x8e\xfe\xd0\x63\xb3\x99\x65\xd1\x4f\x7d\xda\x16\xcf\x99\xc3\x22\x89\xc0\x7c\xcf\x16\x10\xbe\x0d\x45\x47\x38\x84\x7e\x14\xdc\xd9\x12\x65\x6d\x17\xfd\x9d\x18\x7c\x36\x62\x26\x52\xb0\xb4\x2f\x21\x7a\x4f\xd0\x3b\x67\x10\xc8\x58\xcf\x15\xcb\x33\x1b\xd8\x68\x65\xfd\x4c\x90\x43\x9f\x01\x15\x97\xd6\x54\xdf\xb0\x47\xe8\x36\x54\xaf\x63\x1e\xe5\xa9\x43\x56\x86\xec\xa9\xa2\xac\x7c\x49\xe2\x31\x17\xfb\x2a\x8a\x07\x94\x16\x45\x20\x7d\xbc\xb3\x7e\x6c\x08\x66\x10\x7e\x5a\x97\xd4\xdb\x05\x5f\xe0\x1d\xdb\x45\xad\x99\x86\xc6\x59\xb9\xa5\x52\x6b\x5b\xe7\x25\x5e\x15\xe8\xaf\x5c\x80\xb0\x45\x3e\x67\x1c\x8c\xdc\x26\x3d\x8b\xc7\x5f\x49\x74\x7e\xa3\x25\x20\xad\xf1\xfa\x33\x98\x4b\x65\x82\xcb\x20\x5d\xc7\x7c\x6d\xd2\x05\x0e\xd0\xb7\x68\x94\x7f\xfb\xed\x9f\x22\xf4\xd9\xfd\xf1\xe7\xff\xfc\xcf\x3f\xfd\x79\x9d\x74\x12\xa7\x90\x43\xbb\xc5\x1a\xf9\x72\x52\x65\x91\x28\xdc\x81\x3a\xa7\xda\x62\x17\xec\x01\x6c\x5b\xfe\x4d\x50\x1e\x83\xd8\x21\x3c\xb3\x27\x5c\x86\x27\x13\x95\x8e\x66\x11\x49\x20\x89\x3a\x28\x73\x08\x2f\xec\x5a\x89\xfe\x7f\x2d\x01\x2b\x1b\xeb\xa3\xb2\x59\x8c\x13\x4d\xbc\x78\xad\x1b\x41\x5f\x5b\xfb\x9f\x02\x07\xe2\x37\xee\x82\xe3\x49\x4c\x84\x19\x93\x37\xd9\x79\x43\x22\x30\x07\xf2\x39\x4b\x78\xec\xe0\x51\x8b\x5c\x40\x0a\x02\xc2\xf0\x33\xd6\x9c\xfb\xc0\xc2\x68\x99\x8f\x8c\xe7\x65\x8a\x23\x83\x0a\x2a\xd1\xd7\x9f\x4f\xf4\x6f\x07\x68\x71\x02\x41\xa4\x07\xe8\xd7\x13\x8b\x96\x83\x85\x1a\xeb\x9f\xbe\x71\xb2\xb6\x6d\x02\x06\x4d\x25\xfa\xea\xf8\x09\x0b\x53\x33\xfa\xd8\x8c\xe8\x2b\xcb\x59\x7d\x5d\xbc\x50\x36\x4f\x38\x7f\xb4\x01\xb6\xb5\x0f\x8f\x1d\xf0\x1a\x90\xb7\xf7\x9b\x98\xad\xf7\x89\xf9\x0a\x1d\xc2\x0b\x04\x1d\x65\x13\x74\xf4\x77\xc9\x19\x3a\x5a\xe0\x34\xb1\xbf\xba\xa7\x36\xfe\x17\x4b\x9b\x13\x17\xfb\x20\x9f\x64\x61\x2c\xa5\xdf\x25\x7c\x02\xb3\xba\x74\x33\x35\x11\xb4\x30\xd0\xe2\xf6\x29\x2e\x2c\x3b\x11\x97\x88\x0a\xf8\x41\x29\x57\xe6\x15\xe0\x71\x4d\xb3\xfa\xec\x87\xf4\xdf\xc6\x2f\x0c\x8b\xe2\x92\xf8\x8c\x71\xd8\x47\xaf\xe9\x46\x3f\xa3\xaf\x2d\x0b\xfa\x46\xdf\x31\x36\x5c\xd9\x2c\x43\x53\x07\x0b\xdf\xc1\xcf\x41\x07\x94\x21\x93\x96\xb9\xe4\xcb\x5f\x8f\x8f\x8e\x8e\xfc\xd7\x90\xb5\xfe\xff\x22\xaa\x24\x49\xa6\xa6\x25\x77\x83\x2d\x46\xec\xd2\x15\x5e\x70\xc6\xeb\x02\xd2\x31\x13\x5c\xf1\x88\x27\xe8\xb0\x30\xe8\xc6\x3c\x92\xe8\xdf\xb5\x58\x1b\x2c\x25\xfc\xa8\xf5\xb8\x16\x18\x58\x83\xf4\xfc\x4a\x87\xca\x1a\xc4\xab\xc7\x2a\x44\x71\xf3\x8a\x2d\x96\x61\x15\x0f\xa0\x05\x4d\x39\xc7\x16\xe9\x4d\x08\xfd\x32\xf9\xac\xe0\x51\x0b\x90\x5e\x63\x28\x7b\xf3\x4d\x59\x63\xb7\x05\x9e\x9e\x21\xeb\x96\x05\xb0\x78\x57\x96\x33\x98\x79\x1e\x84\xee\x13\x7d\xb9\xb0\xb0\x14\x80\xcc\xd3\x14\x8b\xc5\x71\x71\xda\xea\xc4\x59\x20\xad\x01\x8f\x49\xdc\x02\x80\x0b\x37\xb1\x47\xcb\x46\x31\x58\xf1\xd2\xdd\x68\xfe\xec\x46\x50\xcb\x30\x40\x2c\x20\x2c\xe2\xb1\xa5\xeb\x22\xfb\xb4\x2c\xb1\xf8\x77\xea\xb2\x8a\x8b\x88\x91\x85\x31\x8e\x29\x03\xe1\x61\xdf\x70\x1f\xb7\xb0\x6f\x3e\x86\xaa\xb8\x64\xb6\x86\x7b\xf4\xfc\xfa\xce\x7d\xd3\xfd\xd2\x85\x75\x28\x8b\xec\x38\x09\xf1\xf1\xd8\x0c\x09\xfc\x5c\x5c\xbf\x10\xdb\x61\xac\x33\xb9\xcf\xcd\x35\xff\x3e\xe5\x37\x34\xd1\xb7\x16\xd0\xf8\xd1\x88\x95\x7e\x3e\x40\x24\xa1\x29\x65\x3e\xb6\xce\x30\x77\x3e\x35\xd2\xf3\x23\x55\x7a\xcb\x64\xfc\xa8\x39\x98\xc3\x75\x0a\x54\xaa\x01\x5b\x38\xd2\xf1\x8e\x29\x6b\x81\xc8\xa5\x1e\x57\xa1\xa3\x6b\x61\x56\x37\x71\x68\x05\x52\x1a\x10\x1e\x9c\xdf\x11\xd3\xad\xb9\xb3\x54\x84\x0b\x07\xed\x05\xcd\x1d\x3a\x40\xfc\x80\x03\x40\x1f\xa5\x98\x5f\x2f\xff\x36\x08\x28\x43\x96\xa7\xdb\x26\x9b\xd8\xf0\xe1\xb7\x32\xd3\xdd\x08\xe2\x6e\x2a\x9b\xb8\x44\x58\x9e\xba\x03\xb5\x06\xc5\x0d\xad\xf8\x13\x93\x28\xc1\x06\xa9\x46\x37\x04\x91\x8f\x07\xc6\x41\x9a\x05\x7d\x99\xeb\xc5\x74\x63\x6a\xec\x24\x84\x7d\x6d\xfe\xfd\x0d\xb2\x77\xc3\xb7\x07\xf6\x3e\x17\xd2\x23\x80\x98\x3d\x87\x1a\x8d\x24\x36\x36\x74\x40\x25\x9e\x61\x11\x1b\x6b\x79\xa8\x55\x98\x0c\x5e\x2d\x7f\x2d\x78\x8e\x9e\xa9\x9c\x8f\xd8\x3d\x77\x06\x47\xc4\xb8\xc7\x75\x3e\x00\x65\xb4\xd6\x1f\x96\xc0\x04\x60\xd4\x4d\x14\xa0\x99\xf0\x56\xb9\x46\x10\x05\x3b\x66\x3c\x26\xdb\x01\x18\xdd\x17\xbe\x0a\xe7\xbf\x16\xc4\xe4\x83\xc1\x4d\xd1\x96\x4e\x4b\xa4\x5c\xd3\x36\x5f\xdd\x78\xb8\x87\x6c\x3b\x50\x12\xf8\x79\x2d\x74\xed\x10\x1b\xcc\xdf\x6a\xd0\x8a\xd3\x38\x83\x6c\xe0\xd2\xda\x7b\xb4\xe4\x6d\x37\x21\x6a\x40\x2b\xea\x74\xf7\x9b\xb9\x47\xb0\xec\x3e\xc0\x18\xa3\x99\xe0\x79\xe6\x53\xe6\x5d\xba\x9f\xd9\x06\x2b\xd3\x9c\xb3\x29\x3f\xb1\x3a\xd5\x05\x65\x8f\x86\xe2\x5f\x6a\x8f\x0c\x20\x36\x89\x4b\x30\x6e\xae\x4a\x2b\xcc\xe1\x10\x51\x16\x25\x39\x5c\x7c\x52\xe1\xe8\xd1\x80\x7a\xb7\x19\x7d\xf5\x37\xe3\xd5\xc9\x94\x2d\x12\x53\x9e\x24\xb6\xdb\xe2\x02\x2d\xca\x58\x3f\x51\x8c\x30\x7a\xb8\x3d\x6f\xee\xfb\x91\xd6\x9d\x39\xcd\xb7\x67\x99\x40\xe0\x7f\x7e\xa0\x6b\xc5\x5d\x56\x60\xf1\x48\x89\xd4\xbd\x71\xa9\x0d\x74\x55\x13\xe9\x27\xac\xc8\xb6\x99\x50\x06\x03\x6c\x8d\x48\xbd\x1a\xb8\xda\x52\xeb\xf1\x96\xc8\x64\x05\xaa\x18\x84\x06\xb5\x43\xa4\x85\xc1\x5a\xf0\x70\x0d\xec\x06\x78\xbf\xdb\x7c\x2a\xef\xae\x98\xce\xf2\x61\x26\x84\xac\x81\x36\x70\xa7\x5f\xef\x38\xc8\xd2\xab\xcb\xc6\xf8\x8c\x4d\xf5\x85\x3a\xe8\x6f\x6c\x25\xbb\x75\x98\xad\x23\x47\x23\x5e\x4b\x9f\x23\xe2\x47\xe2\xc2\x70\xbc\x2c\xe6\xfa\x9d\x81\x6f\x8b\x97\x8a\x3b\x78\x0b\x6d\x03\xe1\x07\x62\xeb\x96\x61\x13\x5a\xfc\x1a\xa7\x9d\x01\xe5\x8a\x8e\xcf\xec\xc7\x97\x35\x78\x39\xcf\x8a\x2e\x21\x8b\xcf\x03\xa7\xa4\x98\xe9\x93\xed\x7a\x6d\x31\x42\x1a\x89\x70\xa3\x21\x3d\x64\x1b\x0d\xc8\xf4\xd8\xb1\xee\xa1\xed\xca\xb5\xf2\x6c\xec\xf0\x38\x31\x76\x26\x35\x07\x13\x44\x51\x2f\x48\x73\xb4\xb2\x29\xc2\xd4\x16\x4a\xb0\x98\x19\x05\x49\x12\xf5\xff\xb1\xf7\x6d\xcd\x6d\x23\x49\xba\xef\xf3\x2b\x2a\x62\x1f\x6c\x9f\x43\x51\xd3\x3d\xb1\x1b\xbd\x8e\xd8\x07\x5a\x96\xa7\x35\x6d\x4b\x1e\x49\xee\xee\x3d\xcb\x0d\xba\x08\x14\x49\x8c\xc0\x2a\x18\x05\x48\xe6\xec\xcc\x7f\x3f\x51\x99\x59\x17\x5c\x09\x90\x92\xed\x99\xed\x87\xdd\x69\x8b\x40\xa1\xee\x95\x95\xf9\xe5\xf7\xe9\x17\x2d\x23\xec\x73\x1e\x8e\x18\xe1\x03\x34\x59\xc3\xb8\x27\x98\xdf\x7d\x2b\xcd\xd5\xb2\x4a\x2e\xea\x4e\x65\xa7\x6e\x1c\x30\xe7\xf9\x44\x8c\x48\xe5\xc8\xc4\x1d\x9b\xb5\xd2\xcd\x99\x72\xa4\x36\xf7\x25\xdf\x3a\x46\x00\xab\x10\x4c\xf9\x5d\x58\xb9\xa5\x00\x5e\xdc\xee\x3a\x1c\x2d\xc2\x1d\x56\x81\x44\x31\xbb\x6a\x30\x97\x33\xfb\x88\x67\xf7\x32\x17\xb3\x1c\x0d\x70\xc0\x87\x22\x1a\x1a\xee\x57\xdc\xf7\x3a\x35\xae\xa3\x11\x63\x93\x37\xeb\x3a\xe2\xe6\x7e\xe7\x4e\x23\x52\x0c\x72\x1c\x9e\xbd\x6a\x4d\x24\x9f\x7f\xc4\xc7\x6f\x6c\x13\x6b\x4a\xfc\x6d\x1f\xde\x7f\x97\xb2\x8c\x11\x54\x50\x28\xfe\x8f\x18\xd2\x74\xe7\xa7\xa9\x27\x89\xab\x7d\xac\xb9\x5a\x8b\xa3\x76\xe3\x84\x6f\x17\xb9\xea\x96\xb3\x1a\xd0\x4d\xb6\x88\x8a\x7f\x67\x83\xf2\x16\x3b\xf6\xa9\xe4\x29\x1e\x6e\x92\xa6\xa3\xad\x36\x98\xca\xdf\xff\x1b\x9b\xc1\xe9\xc3\xde\xc1\xbe\x08\x01\x7e\x28\xad\x50\x2c\xd9\x66\x22\xd7\x4a\xf2\x4e\x5d\xb7\xbb\x1f\xf4\x82\xb4\x69\x16\x3c\x8a\x54\xd9\xd4\xa1\x19\xd1\x92\x96\xd2\xc2\x46\x71\x76\x57\x2e\x45\x2e\x05\x6a\xd7\xc1\x73\xcc\x3e\x37\xa8\xba\x8a\x97\xc5\xe6\xfb\x45\x94\x26\x83\x05\x73\x20\xbb\x68\x66\x5e\x3b\xc3\xb7\xfa\x1a\x50\x29\xbf\x52\x75\xc9\xf0\x37\x86\xbf\x4d\xd9\x2b\x1e\xdd\x09\x19\xb3\x2c\x2d\xd7\x09\x91\x09\xc0\x09\x05\xdb\x65\xe0\x9e\xad\x36\x0c\x6d\x0b\x2c\xdf\x1c\x43\x73\xb9\xe5\x77\x48\x62\x4b\x46\x64\xc4\xd3\x4e\x2a\x2a\x67\x56\x2f\x92\xe6\xdc\xdd\x3b\x5a\xee\x3c\x6c\x16\x53\x9f\x7b\xba\xc4\xdc\x8a\x87\x8d\xa2\x88\x74\xc5\xaa\x1f\xb1\x70\xdd\x6c\x6d\x70\xbe\xd8\xbc\x7c\xa7\x62\x48\x95\xc1\xd5\x0b\xee\x5e\x20\x62\x2e\x25\xe3\x40\x1b\xf3\x4c\xb3\x32\xb3\xf6\x19\xf8\x21\x53\x88\x0a\xe3\x10\x98\x1f\xb2\xc4\xdc\xd2\x36\x62\x2e\x01\x69\xcb\x5c\xf3\x1a\x62\x57\x4c\x78\x40\x4c\xdb\xd6\xb0\x42\xd2\x84\xe3\x62\x9c\x0d\x1e\xe7\x3d\xf3\x74\x20\x8a\xb8\xd8\x08\xb9\x38\x80\x4e\x78\xf8\xa0\x55\x10\xc3\x64\x06\x3b\x7f\xae\xeb\xc2\x52\x26\x24\x20\x45\x2e\xfc\x90\x2b\x33\x59\xd5\xcc\xe8\x44\x33\xcd\x8b\x44\x9b\xbd\xac\xb5\xc7\x3d\x55\xc5\x31\xbd\xce\xc7\xf1\x63\xb4\x70\x63\xd4\xfa\xc2\x65\x25\x4c\xd9\x1b\xf0\x82\x05\x37\x03\xe5\x98\x26\xba\x36\xac\x62\x23\x3a\x29\x17\x1f\x03\xce\x63\x5b\x10\x3c\xdf\xeb\xdc\x74\x19\x28\x53\x36\xf3\xd1\x07\xe4\xda\xc0\xb8\xc2\x9e\x16\x89\x54\x8b\x43\x26\xdf\x20\x47\x1d\x44\xe8\x61\x02\x31\xb0\xa4\xb4\xf9\xbb\x67\x90\x77\xd5\x7c\x80\x24\x4f\x7e\x27\x64\x9f\x37\x66\x78\x0d\xd1\x5d\xd6\xeb\x12\x70\x7e\x38\x85\xae\xb8\x43\x2a\x38\x7c\xd9\x79\x7a\x93\x64\x75\x6a\xba\xdc\x5c\x43\xa2\x3b\x4a\x2d\x41\x6f\x2c\x11\xa4\x3c\x6c\x94\x0e\xd7\x99\x1d\x3f\xbc\xc9\xe6\xa5\x63\x09\x87\xd4\x1c\xd7\xc1\x88\xc9\x91\x2a\xe4\x4f\x81\x5a\xbb\x45\x8a\x9e\x66\x37\xde\xcc\x6e\xa1\xd0\x0d\x10\xc5\xb2\x45\x35\x57\xf3\x4f\x3f\xe8\x2b\x58\xb1\x8f\x91\xa9\xdf\x2e\xcb\x7a\x3c\x4a\xfe\xc0\xf8\x80\xc3\x7f\x79\x4d\x57\x1e\x3b\x6e\x89\x4c\xc5\xcc\x4f\xaf\xf1\x02\xae\x5f\xbf\x59\x35\xe1\xd7\x41\x6d\xdb\x37\xb3\xdf\x05\x20\x02\xb6\x2c\x13\xd4\x50\xaf\x18\x84\xca\x5a\x1c\xc0\x7f\x0c\xc7\x7f\xa2\xdd\x79\xd2\x3e\xc7\xde\xab\xf8\x98\x89\x35\x9e\x4e\xaf\x39\xaf\x07\x60\x8c\x75\x9b\xe6\x7b\x4f\x4f\x64\xaa\x1b\x1d\x1a\x2f\x86\xab\xa4\x03\x1c\x60\x59\xae\x6e\x40\x5d\xa4\x8b\xb1\x22\x20\xde\xb7\x29\x68\x66\x9c\xcd\x67\x5c\x42\x44\xd7\xa0\x50\x74\xd9\x1f\xff\x9c\xfd\xe9\xe6\xea\xf2\x64\xcb\x73\xbd\xe1\x90\x11\x6c\xcb\x9a\x58\xc1\x36\xbc\x1e\xdb\xa8\x57\x22\xe7\xf2\x84\xad\xd5\x04\x63\xac\x2f\xd9\xa6\x28\x32\xfd\xf2\xf4\x74\x9d\x14\x9b\x72\x39\x8d\xd4\xf6\xd4\x77\xcd\x29\xcf\x92\xd3\x65\xaa\x96\xa7\xb9\x00\x94\xed\xc9\x77\xd3\xef\xbf\x83\x91\x39\xbd\xff\xee\x14\x22\x6b\xd3\xb5\xfa\x97\xb7\xdf\xff\xfb\x1f\xfe\xcd\x14\x9c\xed\x8a\x8d\x92\x2f\x29\x80\xdb\x5b\xf6\x09\x5a\xe5\xa7\xf8\x4a\xed\x2b\xff\x3e\xfd\x7d\x58\x0d\x7a\x74\xab\x62\x91\xea\xd3\xfb\xef\x16\x76\x60\xa6\xd9\xee\x37\x5c\xea\x57\xc3\xa5\xde\x25\xc5\x6f\xb8\xd4\xaf\x8a\x4b\x1d\x6e\xe1\xb8\x3d\x06\x88\x3e\xfd\xfe\x68\xfe\xee\xf6\x48\xeb\x7a\xdf\xb7\x0f\xb5\x1c\x0e\x61\xd6\xc0\x11\x47\xc4\x9d\x18\x75\xc5\xae\x35\xd7\x5d\x1d\x3a\x5c\x6c\x63\xc9\xf6\x3b\x8d\xf9\x51\x49\xd2\x80\x02\x49\x22\x20\x72\x46\x97\x60\xc6\x93\x36\xb4\x29\xa1\x9d\x8e\xe9\xbf\xa7\xa4\x24\x7f\x6c\x2e\x72\x6a\xee\x81\x3c\xe4\x29\xbe\x6d\xb1\x59\xea\xc1\xf2\x8f\x3f\x06\x6b\xf7\x40\x1d\x57\x47\x46\x8c\x93\x07\xea\x62\xeb\xd5\x51\x8d\x0d\xd7\x87\x81\xfc\x66\x48\xf9\xe7\xe2\x74\x4e\x15\x9f\x3e\x68\x0f\x0e\xcb\xa2\x00\x22\xe1\x44\xd6\x94\x95\x79\xa6\xb4\xd0\x53\xf6\xa6\xa6\x74\xe8\x81\x8b\xd7\x6f\xce\xd8\x77\x3f\xfc\xfb\x1f\xe6\xf2\x79\xcb\xb9\x0d\xfb\xbd\xca\xd7\x84\xa3\x84\xd3\x7a\xcb\x75\x21\xf2\xd3\x7c\x15\x9d\xe2\x2e\x77\x6a\xde\x3f\xa1\x8f\x9e\xa8\xd5\x89\xa3\x24\x3e\x21\x76\xd6\xe9\x36\x1e\x47\x30\x50\x99\x7a\x78\xd6\xd0\x41\xa3\xe1\x50\x42\x2a\x22\xb5\x72\xe4\xf3\x98\xe7\x82\x3a\x15\x6a\xd5\xf2\x1f\xaf\x52\xb5\xd4\x2f\x1c\x01\x1a\xd7\xf6\x1b\x9e\x91\xa8\x7b\x69\x3e\x0e\x3b\xb9\x9d\x22\x4f\xe9\xa8\xb0\x7b\x49\x78\x1d\x19\xd3\xf1\xed\x8b\xcd\x1f\xf7\xc8\xc7\xc0\x73\x55\x4a\xcb\xee\xac\xa4\x50\x2b\x40\xf1\x81\x25\x6c\x51\x0a\xe0\xab\x35\x27\xad\xe7\x5e\xc8\x45\x86\x07\x0c\x44\x15\xba\xbb\xfb\x48\x86\xf3\x7d\xfd\xfc\x14\x0c\xe7\xc7\xf6\x3b\x6d\x28\x5f\xa9\xc3\x8f\x85\x12\xe2\x52\x1a\x83\xaa\x30\xcf\xef\x8d\xa0\xba\x7d\xc0\xab\x0f\x79\x32\xe1\x8c\xe7\x60\xa4\x89\x93\x42\x9d\x00\x69\x0d\x50\xa1\xa0\xe6\x40\x17\xac\x02\x22\xcf\x63\x8e\x49\xf3\xfc\x80\x7a\xa2\x61\xfe\x39\xa8\x28\xd9\x24\x1a\x29\x3c\x09\x92\x95\x48\x29\x72\x8a\xa9\xed\x3d\x51\x47\xc6\xa5\xc3\xa1\xec\x47\x64\x05\xba\xd6\x01\x1f\xbc\xc3\xe3\xf3\x60\x13\x98\x32\xb0\x3e\x37\x6a\xab\x8c\x39\xa3\x4a\x1d\xfc\x88\xb7\x17\x38\x84\x3b\x6d\xaf\x2d\xcf\x90\xa4\xee\xeb\xb5\xc6\x2c\x2d\xf3\x13\x3a\xf5\xc2\x87\x46\x49\x6c\x2c\xab\xa2\x02\x7b\xea\xef\xd8\xe0\xfb\xe7\x0d\xa0\x1e\x50\xa7\x0e\xa4\x62\x89\xe3\x39\xf9\xab\xb9\xd7\x98\x29\xe5\x6e\x0a\xee\xe4\x46\x90\x0e\x72\x31\x86\x74\xaf\xd6\x9a\xef\xcc\x96\x2e\xb7\x23\xc7\xc0\x81\x8c\x87\x0c\x00\x97\x08\xbb\xb5\x78\xdb\x93\x56\xc0\x6d\xd7\xba\xb4\xc2\xac\xf1\xc2\xf2\x85\x8e\xab\xea\x8d\x2b\x80\xa8\x41\x9b\xf5\xf6\x74\x4b\x80\xce\xc6\x3e\xc6\x0d\xc1\xda\x16\x1d\xa0\x1b\x39\x7e\x31\x82\xc0\xca\x98\xbe\x83\x8f\xe0\xe4\x6c\xf4\x60\xb0\x16\xba\x3a\x70\x9c\x8b\xad\xcf\x63\xd5\x06\xe7\x47\x86\x3a\x9f\xbd\x63\x6a\xd9\xb8\x3c\xba\x17\xef\xbd\x0a\xf5\x2e\x13\x13\xb6\x2c\xe1\xf7\xcb\xab\xdb\x10\xad\x91\x60\x6b\x4f\xa2\x8d\x88\xee\xc0\x61\x82\x47\x9e\x13\x6d\x24\x36\xbc\xb9\xf4\xd2\x5f\x85\xb2\xd0\x83\x9d\x63\x43\x77\x8a\x00\x2a\x67\x71\xa2\xb3\x94\xef\x20\xc8\x2b\x11\xa7\xef\x03\xc4\x2e\xc1\xc5\x6c\x05\xfb\xfc\xc5\xc3\x47\xda\x8c\xca\xcc\xbf\x37\xb6\x2f\x79\xbe\x4c\x8a\x9c\xe7\x3b\xe6\x3b\xb3\xb9\x1f\x30\x2d\xb6\x5c\x16\x49\x34\x97\x5b\xc1\x65\x88\xca\xa3\x20\xb7\xe9\xe4\x58\x09\xe2\x0b\x5e\xad\x44\x54\x78\xc2\x41\x30\xde\x5d\x4f\xed\x5b\x83\xe3\xda\xee\x56\x5e\x6f\xd3\x7f\x4c\x24\xa6\xb7\x27\x5b\xc0\x7c\xd2\x1c\xa2\xa3\xf1\xc0\xe0\x0d\x48\xc5\xd1\x91\x6b\x2f\x83\xf0\x2f\x3b\xa7\xd8\x52\x14\x0f\x02\xf2\xe9\x29\x01\xb0\xcd\xc6\x3f\x5a\x2e\xe0\x38\xf5\xdf\x76\xdd\xe4\x00\x09\x86\x0b\x2c\x04\x93\x39\xe2\x1f\x59\x63\xf0\x79\x46\x29\x89\xe0\xed\x79\x46\x7e\xab\x67\x70\x4c\x9b\xdb\x63\x7e\x2f\xe2\xb9\xac\xd2\x2a\x91\xcd\xe8\x17\x1c\xf3\x42\x58\x8f\xb3\xdb\xd8\x3e\x1e\xe4\xcb\x3f\x07\x2a\x09\x4f\x22\xe9\x92\xee\x7a\x84\xb9\xb0\xd1\x4f\x79\xab\xb2\x9a\x80\xa1\x75\x3f\x00\x92\x25\xb4\x15\xba\x21\x5d\xbc\x0a\x9e\xc2\x4d\x4a\x47\x1a\x83\x8c\x72\x0e\x00\x4b\x7e\xc9\x86\xa7\xb3\xad\x8c\xb9\xb4\xd9\xd4\xab\x32\x45\x96\xd0\x2e\xa9\x30\xe2\x90\xb2\x99\x1f\x5f\x2f\x03\xc8\xf9\xd5\x58\xa0\x2d\xe6\x60\x0f\x01\x18\x19\xf7\x3a\x3b\xeb\x85\xd4\x28\x48\x6d\x65\x85\xc0\xf1\xbc\x16\x05\x9c\xe6\x71\x99\x62\x72\x30\x78\xcc\x81\x8f\x8a\xa7\x29\x4b\x0a\x3d\x97\x8e\x3e\x0b\xc9\xd0\x61\x87\xb5\x2e\x75\xab\x48\x2b\x9d\xae\x2d\x69\xf7\x83\x1d\x96\x44\x49\xd1\x80\x70\xef\x42\x29\x8e\x2c\x13\x1c\x73\xd9\x70\xd8\xe6\x32\xbc\x73\xd5\x07\x81\x12\xbf\x40\xa3\xfc\x31\x72\xb0\x7a\x10\xf9\x20\xec\x3e\x7a\x48\xa6\x6c\x86\xad\x33\x17\x2e\xab\xb2\x89\xb5\xa5\xfc\x79\x42\x5a\x9a\x5b\x4d\xa1\xad\x8f\xdc\xdf\x5b\x41\xce\x39\x2a\x53\x9e\xa7\xc0\x49\xbf\x2a\x53\x96\xac\x02\xc1\x50\x18\x03\x24\x4f\x32\xc3\x15\x29\x38\xab\xad\x97\x5c\xf3\xad\x08\xf2\xb6\xc9\xbd\x93\x06\x18\x0a\x64\x84\xc6\xe0\xbc\x29\xeb\xc5\x94\xbd\xae\x2b\xcc\xc3\x9a\x08\x48\x17\x13\x8d\xdb\x9f\xab\x6f\x90\x72\x88\x4a\xf5\xc9\xca\x5c\x29\x9f\x05\xab\xae\x63\x04\x81\xbc\x7d\x1c\x40\xc3\x52\xf7\xf7\xa3\x86\x5b\x53\x8e\xcd\xab\x35\xd8\x86\x5b\x10\x1d\x15\xb4\xa7\xc2\xc8\x4a\x86\x84\x95\x07\x54\xd4\x11\x82\xb6\x54\x76\xdb\xa3\x4f\x0a\xe3\x38\xb2\xaa\x81\xda\xcf\xf8\x8a\x06\x33\x27\x84\xe3\x0c\xe9\xd9\x35\x2f\xc6\x62\x73\x5c\x32\xce\xf8\x8a\xb6\xe2\xa0\x86\x54\x13\x76\x8f\x91\xf5\xf4\x12\xfc\xe3\x2b\xea\xa4\x9f\xbd\x1e\x80\xd7\xc4\xaf\xe4\x50\x5a\xa6\x43\xd7\x02\x3d\x97\x74\xd8\x8d\x4f\xff\x9c\xf9\x39\x07\x82\x47\xcc\x54\x7f\xca\xae\xa4\x40\xe4\x9c\x5a\x05\x87\x0a\x55\x80\x94\x91\x80\x6c\x5e\x06\x12\xd4\x69\x22\xef\x2c\xb5\x84\x59\x72\x13\xc6\x7d\xe9\xb0\xeb\xe1\xb4\xc1\x5d\xa4\xc3\x96\x6c\x93\x66\x38\xc2\xbc\x1c\x96\xa0\xd9\x7e\xe7\x0f\x00\xa8\xe3\x77\x80\xb6\x76\x0c\x1f\x96\x5e\x24\xb9\xbb\xc5\x55\x34\xc6\x43\xd4\x68\x91\x14\xbb\x7d\xfd\xfb\x7e\x53\x45\x21\x8e\x10\x32\xfa\x70\xf9\xfa\xfc\xcd\xc5\x65\x55\x7d\xe8\xcf\x1f\xce\x3f\x54\xff\x72\xfd\xe1\xf2\xf2\xe2\xf2\x8f\xe1\x9f\x6e\x3e\x9c\x9d\x9d\x9f\xbf\xae\x3e\xf7\x66\x76\xf1\xb6\xf6\x9c\xf9\x53\xf5\xa1\xd9\xab\xab\xeb\x9a\xde\x91\x15\x2b\x0a\xfe\x74\x7b\xf1\xee\xfc\xf5\xe2\xea\x43\x45\x32\xe9\xf5\x7f\x5e\xce\xde\x5d\x9c\x2d\x5a\xea\x73\x7d\x7e\x76\xf5\xf3\xf9\xf5\x1e\xc5\x23\xdf\xde\xd6\x2e\x7d\x0c\xf8\xd8\xc1\xfa\x57\x33\xb6\xca\x13\x21\xe3\x74\x87\xd8\x7b\x7b\xb3\xad\x81\x69\xc3\xb3\x37\xd9\x0a\x55\x1e\x03\xa1\xbf\xdd\xa0\x42\x3d\xb0\x60\x60\x69\x94\x32\xcb\xf5\x5d\x27\x47\x62\x91\x37\xa3\x02\xbd\x99\x42\x45\xbe\x73\xb9\x68\x7d\xd5\xf1\x0c\x4a\xf4\x11\x96\x89\xbc\xaf\x2e\x60\x19\xe5\x65\x56\x24\xcb\xee\xa4\x88\x81\xcc\x42\xe3\xef\xde\xc8\xf7\xd7\x4e\x8e\x72\xd9\xbe\x31\x56\x72\x03\x8e\x01\x1e\x43\x09\x87\xca\xba\xb9\xb7\x2d\x58\x33\x2b\x97\x69\x12\xb1\x24\xae\xfb\x53\x30\x85\x0d\x5d\xc6\x75\x5a\xd0\x4c\xe4\x60\xaa\x9a\x1b\x40\x96\x8b\x13\x5e\x16\x1b\xab\x38\xef\x32\x19\x91\xa6\x53\x44\xb9\xc0\x58\x80\xd0\xe0\xa4\x45\x3d\xaf\xe0\x4b\x50\x19\xca\xe0\x8e\x81\x2c\x66\x1a\x50\xb4\x77\xc4\x08\xf0\x4d\x2c\x7d\x84\x93\x14\x9f\xef\xed\x1a\xaa\x71\xa2\xeb\x62\xce\x70\xc2\xe3\x8f\x56\x15\xcc\xb4\xdb\xec\xd4\x4e\x15\x0b\x07\xd9\xe6\x6e\xb4\x37\x63\xdf\x1c\x0b\x27\x4a\x35\x99\x81\x4a\xa7\x9f\xce\x72\x01\x87\x08\x41\x01\xac\xff\x02\xa0\x2b\x94\xeb\x01\x29\x1e\xe6\xaa\xb6\x14\x1b\x9e\xae\xd0\xe2\x30\x43\xe3\xd7\x55\x73\x8a\xde\xaa\x3b\x21\xaf\x71\xc0\xbe\xca\x76\x28\xf1\xe6\xe3\x73\xfa\x9d\x47\xc8\xbb\x30\x4d\x1d\xed\xac\xb2\xb9\x6e\x60\x4c\x15\x78\x4f\x08\x7e\xc6\x94\x0e\xcf\xd8\x6b\xd3\xe4\x56\xab\xe4\xb3\x29\x70\x2e\x45\x2b\x67\x29\xe0\x85\x2c\xbb\x92\xdb\x97\x01\x1b\x85\x14\x35\x77\x42\x82\x9e\x18\xca\x0d\xef\x9d\xb3\xe3\xfc\xe7\xcd\xb1\xe8\x71\xe8\x83\xcf\x2f\xa9\xc8\xac\x85\x51\x1e\xdb\x4f\x05\xe6\xd8\x4c\xd9\x6b\x22\xde\x30\x7f\x39\x7b\x7b\x71\x7e\x79\xbb\x38\xbb\x3e\x7f\x7d\x7e\x79\x7b\x31\x7b\x7b\x33\x74\xf9\x3d\x46\x5e\x54\x6d\xf5\xd5\xd3\x83\xdc\x0e\x71\x4a\x2b\xcf\xa7\xe7\xba\x46\xf9\x65\x07\x43\xb2\xbf\xf6\x49\x9c\x2d\xe2\x44\x47\xe6\xf8\xdb\x2d\x84\x8c\x81\xec\xf9\xa0\xa9\xda\x5e\x54\xbd\x15\xee\x09\xe6\x9e\xb0\x3b\x08\x9e\x76\xf7\x76\x46\xbb\xdf\x01\x75\x07\x6e\xc8\x5c\x98\xc5\x1f\x9b\xfb\x81\x3b\x6d\xa6\xfb\x15\x3e\x4c\x71\xc7\xb5\xad\x5a\x44\xbd\x4d\x58\xdf\x44\xeb\x92\x9b\xfd\xd1\x3e\x06\x90\xc3\x8e\x5e\x21\x06\xbe\x90\x71\x3a\x09\xd4\x52\x59\xa2\xe7\x72\xcb\x65\xcc\x0b\x95\xef\x3a\x9a\x38\x6c\xf3\x0c\x97\x4d\x75\x0b\x0d\x8f\x6c\x29\x44\x6c\x47\x01\x1f\xe5\xb2\x3e\x95\x90\x97\xfa\xf6\xea\xa7\xf3\xcb\x9b\xc5\xf9\xe5\xcf\x8b\xf7\xd7\xe7\x6f\x2e\x7e\x75\x48\xc8\x8c\xeb\x36\x75\xc4\x2c\x17\x66\x77\xb1\x34\x1f\xad\xfb\x0b\x4a\x16\xda\x72\x48\xa6\x2a\x59\xcd\xa5\xdd\x59\x72\x5f\xfc\x26\x57\xe5\x7a\xd3\x5e\x50\xbd\x96\xef\x67\xb7\x3f\x1e\x54\x4d\x20\x61\x42\x5d\x33\x5c\x6d\x4d\x44\x68\xb2\xa2\x7d\x0f\x61\xa4\xb5\xea\x01\x95\x18\x3c\xda\x16\x65\xe8\xd8\xd1\x0e\xba\xbd\x34\x37\xad\x5e\xe3\xbf\xe5\xf1\xae\x09\x74\x1b\xec\x9b\x95\x63\x04\x10\xca\x28\x8f\xd9\x28\xed\x65\xcb\xdf\x2a\x27\xd8\xf7\x27\xa9\x58\xaf\x45\x8c\xd3\xab\x5e\x30\xf9\xe0\x68\x0b\x8c\xfc\xb9\xde\xd6\x8b\x24\x60\x77\xc4\xc1\xec\xf0\x5e\xc3\x37\xf0\xf7\xee\x95\xf6\xbd\xe2\xcc\x8a\x64\x47\x4a\xea\x82\xcb\x8e\x40\xf2\x7d\x13\xa1\x39\x68\x2b\xba\xca\x99\x4b\x7e\x22\x87\x89\x0d\x19\xf8\x75\x70\x48\x08\x8d\x84\xfa\x24\x79\x3c\x02\x01\xbf\x40\xd5\xbb\x65\x10\xc0\x77\x7a\x6d\x77\xc4\xa7\x77\x6e\xf4\x5e\x9d\x88\x79\x0a\x5c\xbd\xa8\x94\x44\xe0\x73\xf4\x06\x81\xfc\x58\x27\x30\x78\xd4\x80\xd4\xbe\xfc\x33\x75\x3d\xde\x5a\xab\xae\x66\x6e\xb9\xdd\xdc\x00\x39\xe3\xad\xee\xb1\xdb\xef\xdf\xaa\xd8\xe1\xbe\xe4\x2c\x57\x71\x19\x59\xf6\x1b\x28\xd6\x23\x5c\xc8\xa1\x65\x0f\xd8\x98\x9d\x98\x61\xa6\x4b\x8a\x88\x4f\x00\xbb\x3e\x97\x5d\xe1\x24\xbb\x07\x74\xb8\xb9\xde\xdb\x53\xeb\x98\xb1\x6f\xe9\xfd\xee\x25\x68\x3b\x7b\x58\x0e\x29\xb3\x8f\x83\xb1\xd7\x01\x10\xa2\x71\x59\x72\x8c\x15\x57\x8f\xe3\x2e\xb2\x0b\xb7\xab\x8e\xc3\x31\x0d\x83\x81\x54\x93\x43\xf0\x88\xdc\x70\x8d\x96\x6b\x11\x6d\xaa\x15\x87\xd6\x54\x09\xe2\xea\xd5\x75\x96\xe0\x71\x1e\x82\x41\x11\xa3\x09\xde\xa9\x13\xf2\xe1\x56\xc4\xbe\x9c\x72\xe1\xb8\x89\x1f\x1a\x47\xee\xf2\x82\xfb\x1e\x6c\x58\x29\x2f\x65\xb4\x61\x59\xca\x31\x6f\x7a\xc3\x35\x4e\x69\x0b\x9b\xe0\xcb\x24\x4d\x0a\x20\xa4\xc1\x68\x5e\xad\x87\xcd\x8d\x86\xe7\x77\x96\x03\x96\x7b\xf6\xa1\xbe\x49\x7f\x24\x3c\xd5\x0b\xe4\x7f\x49\x80\xaa\x5f\xb2\xc1\x1b\xbd\xb1\x40\x3f\x2d\x09\x9c\xea\x87\xc3\xec\x78\x30\x2d\x7d\x5b\xc6\x8d\x2c\x95\xf8\xbe\xfe\x7a\xa5\xbf\x5b\x0e\xea\xf1\xe0\x0c\x22\x37\x1f\xb1\xcd\xd7\xa9\xcf\x5b\x57\xd6\x2a\x55\xbc\x43\x7e\xd7\x96\x8d\x4c\xe6\x5d\x65\xc7\xaa\x5c\x76\x71\xe7\x62\xad\xfa\x4b\xef\xf3\xfb\xdb\x75\xfb\x58\x7e\xc1\x70\x03\xe4\x85\x28\x92\x71\xae\x8d\xa0\xd1\xbc\x10\x27\xf0\x7a\x7b\xe1\x94\x4c\x37\xb8\xcd\x8d\x89\xe6\xf5\x34\x1c\x43\x2f\xc0\xe6\x9a\xb3\xeb\xcf\x25\x37\x5b\xc3\xd5\xea\x06\x19\x52\x8e\x99\x64\x45\xd2\x9c\x61\xed\x2b\xb1\xfe\xd5\xdb\x6a\x50\x25\x9c\x03\x83\xf3\x4f\xdb\x5a\x73\x63\xde\x1e\xbe\x20\xab\x1a\xf5\x59\x9e\x28\x60\x0a\x21\x65\xfc\x1e\x92\xc1\xd6\xef\x1e\xd1\x93\x9f\x4a\x51\x0a\x33\xf7\x97\x65\xbc\x6e\xfa\x36\x47\x58\x67\xbe\x49\x1b\xf5\xc0\xb6\x65\xb4\x61\xb6\x70\x16\x8b\x94\xef\x2a\x4d\x03\x7b\xa9\x50\x29\xd0\xf6\x1e\xc8\x21\x1a\x95\xba\x50\x5b\x80\x95\xfa\x72\xf3\x52\xc2\x84\x67\xbc\x28\xf2\x64\x59\x16\xad\x10\xb4\x0a\xa7\xd8\x81\x01\xad\x9b\xf7\xe7\x67\x17\x6f\x2e\x6a\xd1\xa4\xd9\xcd\x4f\xe1\xbf\x7f\xb9\xba\xfe\xe9\xcd\xdb\xab\x5f\xc2\xbf\xbd\x9d\x7d\xb8\x3c\xfb\x71\xf1\xfe\xed\xec\xb2\x12\x73\x9a\xdd\xce\x6e\xce\x6f\xf7\x84\x95\x9a\x5f\xed\x1e\x08\x1e\x50\x9e\x59\xa0\xab\xe5\x7e\xb6\xb7\x4b\xfa\xea\x4b\x36\xb3\x04\x70\x15\x8a\x42\x1b\x1a\x04\x2c\x01\x2a\x21\x53\x04\xf1\x35\x2f\x38\x29\xcb\x4f\xd9\x8c\x11\x0c\x18\xe1\xdd\xda\x18\x0b\xc4\x8e\x65\x46\x07\x8b\x30\x16\x43\xe4\x6f\x6e\x5e\xdc\x4e\xad\x88\x97\x2e\x15\x21\x0d\xba\xcd\x65\x9a\xcb\xf3\x7b\x21\x8b\x12\x38\x9a\x79\x9a\x32\x2b\x68\x4f\x0f\x04\x79\xda\xb6\x96\x3a\xd9\x26\x29\xcf\xbd\x0e\xd9\x15\x95\x05\x06\xbb\xad\xab\xa3\xe5\x69\x26\x01\xdb\xcb\xc3\x87\x0b\x06\xf5\x3e\x7b\x7b\x01\x26\x50\x54\x58\x91\x0d\xfb\xf1\xb9\x44\xde\x33\xfa\xe2\x96\x43\xca\x41\xa1\xc8\x9f\x86\x9f\xa7\x87\xbb\x27\xa2\x3e\x66\x11\x5b\xcf\xf3\x53\xc1\x9a\x5c\x25\xed\x7f\x9c\xcb\x22\xdf\x0d\xb6\x6b\x6e\x21\xc7\x56\x83\x6d\x4a\x08\xa6\xaa\x36\x19\xba\x3b\x98\x2d\xfd\x12\x8c\x1d\x0b\xaf\x23\x6f\xbc\x73\xba\x23\x9a\xa1\xc3\xfe\x4e\xcd\x21\xf4\xad\xf6\x43\x48\x83\x02\xbd\xb0\x54\xa5\x8c\x35\x61\xad\xb6\x89\x3c\xdd\xf2\xcf\x2f\x6c\x4b\x91\x56\xc0\x29\x04\x00\x65\x94\x48\xcd\x4d\x64\x67\x36\xb9\xfe\xee\x9a\xcb\x9e\xfe\xda\x6f\x2d\xda\x9d\x15\xae\x3d\xfe\x8e\x8a\xa8\xb1\x7b\xb1\x6b\x1b\xbf\x86\xca\x0b\x22\xd3\x68\xc1\x43\x21\x59\x2e\xcc\x83\x0e\x92\x96\x22\xd2\xd0\xfd\x1b\xa0\xe7\x15\x25\xba\xf6\xbd\x3b\x8c\xf2\x1e\xb5\x6c\x5a\xe3\xcb\x4f\x20\xd3\x43\x5f\x32\x63\x86\xd1\x66\xeb\xe8\x24\xa8\x3d\x85\xd1\xcc\x60\xfd\x45\x2d\xd9\x0a\xf2\x4e\x48\x69\x3a\x17\xe0\xd8\x86\xa1\xb0\xbc\xd2\x40\x2c\xd4\x08\x61\xdb\x29\x90\x0a\x0d\xee\x5e\x69\xae\x5b\xe2\x53\x49\x11\xbb\xef\x7e\x3f\xee\x9c\x2d\xf2\x1d\xb3\x1a\x06\x61\xde\x0b\xa5\x7d\xd1\x99\x0b\xf5\x2a\x65\xd2\xc6\x36\x76\x5d\x4a\x73\x14\x3f\x06\xd8\x61\x78\x34\xab\xf6\x51\xfa\xe7\xde\xd4\x10\xeb\x88\xcd\xf1\xf9\x27\x23\x8f\xfc\xb9\xc6\x19\x49\x9f\x03\x20\x32\x95\x1e\x1e\x68\x4b\x1e\xdd\x3d\xf0\x3c\x46\x5f\x21\xa0\x0f\xa6\xec\x47\xf5\x20\xee\x45\x3e\x61\x91\xc8\x0b\x4e\x84\x4d\x1a\xc2\xaf\xb0\xa0\xa8\x9c\xb9\x04\x5c\x3e\xb2\x5f\x49\x10\xe9\x2e\x92\xf5\xc6\xdc\x27\x83\xe0\xb9\xca\xcd\x76\x54\x20\x57\x5f\x26\x22\xa2\xc8\xe9\xe8\x80\x55\xca\xef\x9b\x0c\x54\x87\xe4\xf6\xb3\x0b\x97\x5c\x68\xa3\x53\x96\xab\xbf\x0f\xee\x40\x1d\x46\x9b\x26\x92\x9a\x4c\xd8\x5a\xa5\x5c\xae\xa7\xd3\x29\x13\x45\x34\x7d\x31\x6a\xa2\x53\x81\x61\xbc\xcb\x81\x6a\x53\xa5\xb4\x48\x77\x8e\xd6\xc5\xa5\x3d\x00\xce\xee\x73\x21\xa4\x4e\xd0\xe5\xd1\x32\xfd\x6f\xea\x1c\x01\x5f\xd6\x75\xde\x7e\x53\x1d\x9d\x54\xd7\x51\x0e\x48\xff\x8c\x28\x09\x9f\x6f\xbf\x79\x1d\x94\x24\xda\xc1\x2b\xab\xe4\xd8\xcc\xc7\x9f\x55\x97\x90\xf5\x41\x6c\x6b\xad\x25\x11\x35\xc5\x41\xd9\x62\x5d\x1e\x8b\x5a\x02\xdf\x11\xb9\x7b\x3d\x69\x78\x23\x33\xf0\x5a\xd6\x5d\xcb\xb2\xa8\x0d\xf7\xe8\x65\xb1\x5f\x8d\xa0\xb5\x41\x23\x33\x1c\x7d\x2a\xf2\x18\xd3\x09\x93\xa4\xd2\x1d\xdc\xb8\x5c\xbe\x23\x78\x96\xe3\xc0\x33\x5e\x71\xfc\x43\xe6\x8d\x8f\x1c\x38\xca\xa0\x20\x50\xa0\x0b\x95\xf3\xb5\x60\x5b\x11\x27\xe5\xb6\x75\xb3\x71\xd5\x3d\x06\xed\xa5\xd2\x72\xdb\x4d\xde\x76\xac\x01\xed\x2b\x89\xff\x75\x06\x9f\x1b\x6c\x40\x7b\xc9\x76\x2b\x0a\x43\xf5\x45\x37\x38\xf5\xb5\x39\x29\xf3\x44\x03\xcd\xe0\x21\x89\x6e\xae\x18\x2c\x1a\xa2\x75\xbb\x0c\xdd\xaf\x95\xd1\x3d\xb1\xd1\x1d\x7a\x45\xe3\xa8\x42\x88\xaf\xfb\x50\xa8\x63\xc8\x46\x8f\x11\x48\x8e\x1c\x14\xd7\x04\xb3\x31\x20\xff\x26\x90\x0b\x14\x48\x91\xf8\x42\xb1\x95\x4d\x9d\xba\x13\x01\x19\x55\x0c\xb4\xe0\x0f\xc8\x6c\xf2\xd3\x0f\xda\xc6\xec\x09\x56\xe1\x2d\x96\xc2\x7f\x04\x63\x03\xf7\xdf\x59\x34\x0d\xb6\x10\x8b\x00\xca\xa8\x98\xcb\xa2\xb5\x00\x0f\x36\x83\xb2\xf0\x95\x9f\x79\x99\xb6\x3f\x4e\xe5\xc3\xa3\x28\x31\x34\xfb\xe5\x86\x61\x57\x13\x81\x74\xde\x57\xd1\xa0\x90\xfd\x78\x1e\xe8\xae\xc5\x01\x96\x60\x65\x1c\xb0\xd3\x2d\x83\xb8\xe9\x76\x51\x44\x1b\x6f\x79\x54\xb5\x82\x49\x3f\x8e\xda\xb9\xf5\x94\xd8\x08\x95\x0c\x31\x67\xc9\x5a\xaa\x50\xcd\x41\x49\x01\x41\x1a\xb3\x01\xa9\xb0\x58\x96\x14\xfb\x81\x3d\x23\x79\xa2\xf6\x4d\xb5\x42\x21\x60\x83\xda\x59\x89\xb5\xc1\x95\x22\x41\x76\x19\x8b\x8a\xc4\x3b\x11\xc9\x91\xd5\xa9\x92\xab\xf9\xfa\x73\x59\xfd\x54\xa3\x93\x2c\xf2\x26\xc9\x05\x32\x9c\x6a\x63\xbd\x15\xc9\xbd\x59\xa8\xcd\x69\xed\x26\x28\xec\x00\xcd\xb9\x37\x97\x58\xed\x80\x26\xf5\x4e\xec\x74\xa8\x7d\x46\x33\x8a\x75\x4d\xc8\xc4\xb4\x87\xc6\x6b\xff\x50\x40\xc7\x2d\x02\x2d\xf7\x61\x67\x19\x7e\xf4\x9d\x79\xb9\x07\xd2\xd7\x28\xdc\xcc\x41\x9f\x9b\xe6\x7d\x8a\xb4\x4d\xf8\x7e\xa6\x31\xf4\xa8\x9d\x16\x9d\x7f\xef\x9e\x85\x8b\xaf\xb9\xdf\xce\x25\x31\x29\x07\x87\x9c\xd9\x70\x9a\xc3\x46\x09\xb3\xc8\xdf\xba\xab\x90\x7d\x00\xd9\x9d\x25\xfe\xab\x7e\xd2\xc6\x1d\xad\x74\xe6\x5c\xc2\xa7\x31\xa5\xd0\xfa\xf0\x5a\x3f\x78\x20\x14\x8c\x06\xb7\x13\xfe\x15\xe4\xed\xe0\x93\xc4\xf7\x86\x22\x7a\x78\xfb\x89\x84\xe9\xbe\x99\x6c\x45\x5e\x59\xdc\xd5\xcd\xf9\xd9\xf5\xf9\xed\x17\x83\x87\x59\x6c\xd6\x68\x7c\x98\xad\xe7\xeb\xf3\x37\xb3\x0f\x6f\x6f\x17\xaf\x2f\xae\x9f\x02\x20\x46\x3f\x1d\x80\x10\xbb\x21\x82\xf6\x33\x25\x0b\xf1\xf9\xa8\x33\x39\x2f\xe5\x82\x8f\xc8\x54\x70\x12\x0d\x7d\xe6\x0e\x16\xda\x24\x98\x77\xec\xef\xc4\x36\x88\x27\x9a\xe3\x93\x5f\x79\xa7\xe1\x2a\x49\x53\x48\xdc\x74\xee\x75\x4a\x0a\x32\x9d\x0a\xfb\x8f\x25\x58\xa4\x3d\x75\x2e\x97\x15\xfe\x7f\x70\xf9\x6d\xcc\x25\x18\x53\x36\x33\xd3\x01\x79\x02\x09\x71\x7d\x1c\xf4\xeb\x44\x0a\x5f\x0d\x14\xbc\x2d\x25\xeb\x24\x0e\xa6\x41\x7c\xca\xbc\x5c\x32\xbc\x86\xda\x9a\x76\xc6\x55\xe6\xa7\x35\x3f\xed\x8f\xae\x85\xb8\x88\x13\x89\x86\x69\x65\x35\xdf\xb4\x4f\xdd\x53\xbf\x04\xa0\xdf\xcd\x48\x72\x88\x41\x80\xa6\xac\x1f\x48\x1a\x08\xd4\xa6\xf1\xc1\x89\xbb\x04\x51\x34\x6a\x55\xeb\x67\xb3\x15\x9a\xbe\x4e\x20\x52\xc1\x89\x8b\x22\x4a\x4b\x5d\x88\x9c\xdc\x26\xb3\x5f\x6e\xe6\xf2\x95\x39\xbe\x5e\xd0\x29\x44\xfa\x25\xf8\x09\xc4\x70\xa8\xca\xf7\xad\x85\x12\xee\x60\xcf\xd1\x47\xbd\x15\x5c\x6a\xd4\xfb\x4e\x53\x91\xfb\x99\x81\xf5\x11\x22\x26\xcd\x37\x20\xdf\xf4\xef\x93\xe4\xb3\x82\x55\x6b\xea\x4b\xbf\x92\xe8\x71\x7d\x3e\x75\xe5\x05\x03\x40\xf4\x29\x67\x4e\x4b\x9e\xc2\xd0\x59\x44\xd8\xda\xd6\x49\x54\xcd\x1a\x18\x34\x97\x6e\xb1\xb8\xdf\xa6\xd2\x23\x4e\xa5\x01\xe7\x7a\x78\x4a\xb0\x8d\x32\x1b\xa8\x13\xf7\xf0\x61\x66\xc7\x4b\x90\x02\xfe\xc9\x74\x63\xeb\xa9\x53\x13\xb8\x3b\xe2\xd4\x41\x45\xbb\xe3\xe0\x9c\xb3\x16\x02\x14\xaf\xa4\x64\x63\x3b\xbd\xda\x79\x4f\x43\x34\x36\xb3\x78\x3b\xa9\x0a\x4b\x19\xe0\x20\x6e\x84\xd7\x33\x0f\x38\xae\x8a\xde\x3a\x12\xff\x83\xb5\x52\x16\x47\xea\x4f\xdd\x86\xb8\xc0\x4a\x12\x25\xd6\x22\x4c\xbf\xb6\x29\xd7\x8e\xb2\x61\xcc\xe4\x3b\x5c\xe1\xb0\x3a\xe7\x1c\xfd\xdf\x41\x60\x87\xcb\xab\xcb\xf3\x10\xaa\x70\x71\x79\x7b\xfe\xc7\xf3\xeb\x4a\xfa\xed\xdb\xab\x59\x25\x85\xf6\xe6\xf6\xba\x96\x39\xfb\xea\xea\xea\xed\x79\x03\xf3\x70\x7e\x7b\xf1\xae\x52\xf8\xeb\x0f\xd7\xb3\xdb\x8b\xab\xca\x73\xaf\x2e\x2e\x67\xd7\xff\x19\xfe\xe5\xfc\xfa\xfa\xea\xba\xf6\xbd\x0f\x67\xfd\xe8\x89\x4a\x33\xda\xdd\x3f\x3e\x38\x1b\x30\x21\xb6\x2e\xe3\xaa\x02\xe4\x11\xab\x78\x20\x08\x6b\xdf\x74\xb4\xd9\xb5\x71\x48\x90\x8e\x0b\xc3\x54\x75\xd4\xac\x7b\x7c\xc9\xca\x4a\xd7\x65\xfc\xb8\x6d\xcf\x9c\x6a\x8b\xc7\x00\xc5\xf5\x1a\x80\xee\x2b\x35\xc7\xad\x2e\x20\x05\x09\xbb\x36\x83\x08\xd6\x9a\x77\x0a\xb6\xc8\xf8\xc9\x6b\x6a\xbf\xb1\xaf\x9e\x9e\x79\x67\x0f\x81\xc9\x63\x91\x17\xf4\x55\x3a\xf8\x98\xcd\x0d\x4e\x62\x6b\x28\xd8\x1f\x83\x83\x1b\x9a\x61\x66\x4e\x30\x1d\xbb\xb4\x05\xdb\x73\x1c\xfa\xc9\xb2\xc6\xd6\x9f\x3e\xd2\xac\x7b\x8d\x59\x61\x44\xbd\x81\xe1\x66\x4c\xbd\x6f\xb9\xbe\x1b\x5b\x6f\xfa\x48\xb3\xde\x60\xf6\x1d\x54\x6f\x70\x78\x17\xed\xac\x17\x23\x36\xb1\xb0\x98\x6a\xf5\x5c\x4a\xae\x7b\x24\x90\xf0\x1c\x56\x47\xb3\x00\x9e\xf6\x7a\x99\xf1\xe1\x81\x0c\xa8\x8d\x5b\xae\xbc\x46\x02\x7d\x03\xbf\x42\x0b\x97\xb9\xe0\x77\xb1\x7a\xa0\xf1\xa8\x23\x43\xd9\xa0\xdd\xbc\xda\x41\x66\x0f\xb7\x47\x04\x08\x7f\x9b\x4f\x22\x4a\xcd\x17\x0f\x30\xb9\x84\x68\x8c\xd1\x06\x0b\xb4\x27\xeb\xbc\x21\xc0\xd4\x22\xfd\xe8\xcc\x25\x5a\xf3\x6d\xfa\x95\x66\x54\x4d\x8d\x28\xd3\x1f\x9a\xea\x6c\x68\x0c\xae\xeb\x60\x60\x29\x97\xa1\xcc\x01\x4c\xb7\xcc\xe1\xce\x04\x1d\x92\x48\x70\x26\xe7\xe6\xc2\x93\x8b\x28\xd1\x22\xd0\xf0\x69\x3d\xb1\x3f\x1d\xc7\xf8\x5f\xf0\xa2\xd5\xed\x3a\xd8\x1f\xce\xa3\xa2\xe4\x29\xfb\x54\x8a\x7c\x47\x84\x69\xe8\xab\xc4\xbf\x44\x5c\x62\xd2\x44\x21\xb6\x19\x24\xe1\x86\x68\xff\xb9\xfc\x05\x80\x12\x38\x04\xcf\x34\xfb\x23\x40\x1e\xec\xc3\x74\x08\x6f\x79\x01\x67\xf1\x9f\xf1\x1b\xee\xb7\xe9\x5c\x56\x34\x31\x82\xb7\x2a\xf2\x18\xd3\xb9\xb4\xa4\xf4\xb1\x8a\xf4\x14\x6e\x7c\x53\x95\xaf\x4f\x49\xce\xd5\x4c\x76\x75\xb7\x54\xea\xee\x54\xc8\x53\xf0\x49\x15\xa7\xbc\x2c\xd4\x29\xc0\xa5\x70\xfc\xf5\xa9\x55\x7d\xb4\xb2\x99\xfa\x74\x93\xdc\x0b\xf8\x7f\xd3\x4d\xb1\x4d\xff\x45\x67\x9b\xcf\x27\xeb\x34\x3f\x31\xef\x9e\x84\xef\x9e\xd8\x77\x4f\xec\xbb\x27\xe6\x35\xfc\x7f\xd9\x0e\xc3\x3b\xe2\x33\x37\x67\xd9\x64\x2e\x13\xa9\x45\x5e\x80\xf5\xf3\x90\x27\x85\x17\x1f\xd9\xb1\x67\xff\xf3\x3f\x6c\x9a\xf3\x07\x4c\x9f\x7b\xcd\x0b\xfe\x1e\xfd\x8b\x7f\xff\xfb\x33\x08\xa8\x62\x7e\x4b\xc6\xf3\x4f\xa5\x28\xe6\x52\x0b\xb3\x08\xd9\xff\x99\x4b\x88\xc0\x6e\x77\x8b\x02\xfd\xae\xe8\x83\x8c\x35\xfb\x0f\x2c\xf3\x02\xc9\x03\x63\x6d\x4a\xea\x40\xd6\x27\x3c\x6d\x11\x0a\xee\x70\xd1\x7f\x4a\x5f\xd3\xf3\x23\x96\xf5\xa7\xb4\xba\xaa\xad\xfc\x85\xfe\x94\xc2\x01\x9a\x2a\x6e\xc1\x5a\xcc\x4d\x5e\xb8\x27\x53\xe5\xda\xd6\x48\x03\x1a\xf0\xa4\x61\xfa\xf6\xb5\x72\x83\x04\xc6\xd6\x73\xdf\xd8\x46\x20\x56\xe0\xe3\x10\x10\x3d\x4f\xcc\x0a\xb9\x41\x4f\x28\x58\x6e\xd8\x72\xb0\x49\x29\x74\xee\xca\x43\xc7\x85\xfe\xc3\xcb\xd3\xd3\x09\x5b\x6b\xf8\x9f\xe5\x27\xf8\x1f\x40\x0f\x3d\x16\x07\x67\xa3\x33\x1d\x10\xae\x39\xca\xfb\x47\xe2\x31\x50\x74\x5f\x82\xf6\xb9\x36\x4d\x5f\x95\x32\x4e\x85\xcf\x06\xac\x84\x44\x52\x65\x85\xca\xd1\x31\x56\x17\xd8\x80\x31\x5e\x8a\x88\x9b\x8d\xaf\xf1\x6d\x04\x97\xaa\x55\x21\x24\x7a\xc3\x72\xaf\xbf\xc5\xd1\x73\x05\x66\x31\x40\x21\x79\x41\x90\x73\x01\x7f\x84\x8f\x00\x8f\xf2\xa4\xfe\x13\xdb\xa9\x92\x28\x81\x81\xe8\x32\x16\x51\x0a\xbc\xeb\x96\xec\x83\xe5\xa2\x28\x73\xc9\x38\xcb\xb8\x8c\xb9\x86\x19\xb8\xca\x21\xda\x99\x33\xde\xac\xe8\x04\xe1\xb8\xaa\x2c\x80\xc2\x06\x91\x05\x61\x4f\x20\x67\x73\x50\xe7\x49\x50\x09\x3c\x13\x80\x3a\xb6\xf1\xe2\x74\x2e\xad\x42\x14\x61\xe1\xd0\x53\x16\xa9\x6c\x47\x04\x25\xf5\x4e\x4f\xac\xe7\x8c\xba\x7b\xe2\xf1\x26\xf5\x67\x27\x2c\xa9\x86\xd6\x80\x1e\xba\x08\x34\x6e\xad\x4a\xf0\x73\x21\x23\x15\x8b\x5c\xbf\x30\xcb\x30\x71\xf7\x0e\xb4\x1f\x12\xed\x07\x03\x76\x29\x73\xb8\x91\xb7\xd0\x14\xef\x74\x54\x4c\xef\x54\x08\x85\xdb\xec\x9c\xfd\x4b\xe5\x5b\x47\xc1\xb4\xd5\x97\xfe\xf3\x8b\x22\x62\x42\x5c\xa7\xbd\x73\x1e\xee\x82\xc0\x25\x1b\xee\xb8\x58\x28\xda\x38\x64\x9c\x58\x41\xd1\xa4\x00\xcd\xb2\x5c\xe8\x62\x2e\xe9\x04\x9e\xb0\x95\xe0\xc6\xce\x9b\xb0\x48\xdf\xe3\x66\x8c\xc7\x7d\xf1\xa0\x3c\x06\xc7\xaa\x51\x00\x18\xb6\x52\xb8\x77\x12\xe3\x63\x80\x28\xe0\x51\x81\x00\x83\x4e\xed\x69\x6b\xaa\x40\x67\xb5\x6e\x88\x07\xf4\x83\x15\x37\xa8\x0b\x09\x85\xda\x1a\xd0\x13\x3b\x0c\x14\xb3\x7a\x3d\xf0\x07\xb3\xf1\x60\xeb\x10\x06\x12\x6c\x8e\x60\x71\x13\x96\x16\xd7\x99\x8f\xe1\x86\x0c\xd3\xe0\x9b\xe9\x5a\x54\x3d\x1d\x01\x15\x38\xcc\x6f\x61\x5e\xdd\xeb\xb0\xd2\x22\xb7\xca\x0b\xd8\x56\xe4\x83\xdb\x24\x79\x7c\x92\xf1\xbc\xd8\xd9\xe9\x9b\x26\x4b\x20\x6c\x4f\x93\x3b\xc1\x66\x79\xae\x1e\x1e\xbb\x17\x3a\xb7\x96\xae\x1b\xf6\x31\x48\xf6\xb1\xb7\xfc\x56\x36\xc8\xba\xbb\xe3\x30\xe6\xc9\x2e\xc7\x47\xeb\x77\x72\x51\xe4\xbb\x85\x99\x88\xdb\xac\x73\xa7\x18\x94\x34\x31\xdc\xc8\x1d\x47\x6a\x59\x73\x61\x74\x92\x5a\x56\x46\xf5\xdb\x21\xb5\x6c\xe1\xab\x6c\x92\x5a\x5e\x5c\x5e\xdc\x5e\xcc\xde\x5e\xfc\xbf\x5a\x89\xbf\xcc\x2e\x6e\x2f\x2e\xff\xb8\x78\x73\x75\xbd\xb8\x3e\xbf\xb9\xfa\x70\x7d\x76\xde\xcf\x52\xd3\xac\xbd\x37\xc1\x4f\x58\xf8\x9d\x97\xec\x36\x00\x6a\x60\xb2\x01\xd9\xdf\xa4\x58\x08\xb3\xca\x2c\xe6\x44\xae\x27\xb0\x50\x5f\xb2\xf3\x3c\xbf\xd8\xf2\xb5\x78\x5f\xa6\x29\xc0\xa9\x30\xb3\xe7\x2c\x17\x70\xf1\x9c\xb0\xf7\x2a\xbe\x08\xde\x83\x74\xc4\xd6\x66\xc0\xf7\x79\x1c\xe7\x42\x6b\xfc\xfc\x84\xbe\x1f\x80\x87\x5c\xaa\x23\x81\xe7\xf8\x3d\x4f\x52\x73\x7f\x7b\xc9\x5e\xf1\xe8\x4e\xad\x56\x98\x3e\x33\x71\x89\x53\xec\x53\xa9\x0a\xce\xc4\xe7\x08\x98\x99\xda\xe7\xc9\x5b\xb5\xfe\x0a\x50\xe5\x01\xe1\xa9\x8e\x4b\x0a\x28\x53\x2d\xda\x8f\xf3\xf6\x8d\x80\x5a\xf9\x0e\x5f\x7d\x83\x6f\xb6\x3b\x28\x8b\xf4\x11\x32\xc5\xdf\xaa\x75\xbb\x4e\x08\x58\xd7\x24\x6e\x42\x81\x84\x88\x78\x27\xd4\x9a\xe9\x44\xde\xcd\xe5\x2f\x1b\x21\x99\x2a\x73\xfc\x13\x5c\xf3\x8d\x99\x99\x96\x7a\x23\x40\x38\x74\xc2\x1e\x04\xdb\xf2\x1d\x9a\xcd\x70\x27\x70\xe2\x06\x30\x65\xe0\x14\x31\x6f\xa7\x89\x34\xbb\x45\x96\xd8\xbc\x84\xfa\xd0\x3f\xc6\x8d\xcb\xf2\x92\xf1\xe3\x69\x43\xfb\xce\xd3\x0a\x3e\x0f\x5c\x65\x1e\x37\x69\x01\x42\xb4\x73\x83\x76\xa2\x52\x77\x65\xe6\x19\x0c\x9f\xd9\xe0\x24\x74\xf7\xbd\x4a\x62\x16\x97\x59\x9a\x44\x6e\xdf\x7d\x50\x79\x27\x4d\x2b\x26\xd0\x0c\x3f\x75\xea\x69\x61\x7d\x0d\x6b\xc9\xce\x09\x90\x74\x3d\x84\xad\x4f\x4c\x59\xcb\x12\x19\xa5\x25\xa8\x42\x95\x5a\xe4\x27\x45\x9e\xac\xd7\x60\x80\xdb\x5c\xbf\x6f\x9f\xd3\xd6\x73\xe6\x1d\x9f\xd6\x16\x26\x9d\xa7\x6a\x9d\x44\x3c\x0d\xc1\xcd\x1e\x15\xe1\x48\x33\xed\xb2\x27\xcd\x4c\xc8\x83\xb0\x15\xea\x24\x03\xca\x72\x01\xbc\xad\x0b\xd8\xca\x17\xb4\xdd\x1d\x53\xef\x15\x33\x17\x74\xac\x57\x48\x69\x69\xc3\x0b\xf6\x84\xf3\xdf\xb6\xc2\x49\x60\x62\xa2\xa8\x32\x53\x0f\x52\xe4\x60\xc1\x02\xec\xc3\xb4\x54\x2a\xb0\x4d\x9c\x98\x92\xc3\x27\x5b\x31\xb1\x95\x03\x62\x63\xe6\xec\x3a\xb9\x17\xf2\xcb\x73\x10\x07\x1f\x88\x78\xb4\x11\x0b\x6b\x97\x3f\xf6\x96\xe5\x0e\x80\x91\x9b\x95\x55\x35\x08\xb7\x52\x17\xde\x84\xab\x13\xd6\xb8\xb9\x77\x61\x20\xb1\x27\x23\xcb\x54\x62\x11\x8b\xe8\xee\x8b\x6f\xcd\x1e\x64\x65\x2b\xc2\x38\x7b\x2d\xa2\x3b\xf6\xe1\xfa\x02\xb3\x81\x93\x82\x99\xad\x40\x6f\xbc\x4a\x4b\xe7\xdd\xad\xe0\xeb\x27\x20\x37\x1a\x2a\x33\xe3\x99\xc5\x9d\xb8\x96\xa9\x10\x01\xa2\x20\x5f\xd2\x6c\x92\x94\x4b\x03\x40\x30\x5e\x58\xf1\x11\x70\xc4\x33\xbd\x05\xad\x91\xb2\x08\x04\xba\x52\xbe\x14\xa9\x6e\x6f\x70\xa6\xe2\x85\x8d\x93\x1c\x0b\xe6\x69\x94\x65\xfd\x18\x14\x75\xb4\x79\x0c\xdc\x58\xac\xb7\xf4\x20\xbb\xfb\x41\x07\xf4\x1a\x2a\xa4\xfb\x85\x7b\x3d\xd7\xa2\xa6\x58\x9f\xac\x48\x11\x05\x13\xfa\x41\xfb\xdb\xec\x97\xa6\xa4\xf7\x2a\x26\x98\x9e\xe3\xf3\x32\x56\x90\x20\xef\x89\xc7\x55\x84\x55\x70\xfa\xe8\x1a\x7c\x03\xba\x10\x3c\x66\x6a\x45\xde\xc4\x2c\x4b\x13\x20\x72\x8d\x91\x33\x1a\xd8\x33\x74\x15\x1d\x1f\x96\x66\x2b\x1b\x90\x7c\xbc\xb7\x40\xbc\xde\x78\xa3\x0f\x72\x99\x76\x55\x9d\xdc\x75\x9b\xea\x58\xed\x2f\x97\x8f\x74\xe8\x15\xba\xdf\x9b\xb6\x4e\xd5\x12\x3a\xaa\x1b\x14\xd7\xb3\x41\x9b\xdd\x29\x4f\xe2\x31\xc7\xbb\xed\x93\x2b\xf7\x6a\x5f\x05\xaf\xac\xa7\xc3\x7d\xc9\x0e\x33\x23\x9a\xed\x30\x82\x5f\x4b\x63\xdf\x77\xd7\x86\x00\xa1\x76\x11\x42\x67\x8d\x5b\x92\x79\x58\x15\x6e\x3b\xee\xb8\x56\x57\xdb\x72\xd4\x40\x37\x89\x51\xf6\xf4\xa5\xe7\x52\xe9\x1f\xe4\x23\xd8\x2d\x70\xe5\x3a\x8a\x8b\x31\x4c\xc1\x76\xe8\x10\xe3\x6b\xfa\xd3\x0f\x62\x25\xf9\x62\xd0\x88\xd6\xfb\xdd\xae\xe2\x63\xba\xfc\x29\x56\x54\x59\x28\xef\xf2\x87\xf6\x5c\x00\x7f\x66\x98\xd6\x05\xdb\xc6\x45\xdc\x01\x17\xb0\x36\x98\x5d\x9a\x23\x40\xa8\xa3\x60\xb0\x59\x2e\x6c\xf0\x68\x27\x0a\x97\xdc\x9f\x5a\x2d\x28\x88\x8d\xb8\x56\x57\xd9\x4d\x2c\x81\x81\x63\xa4\x82\x48\x06\xd9\x7b\x91\xda\x66\x4a\x02\x36\x05\x53\x95\xe6\x92\x0a\xb7\x8a\xbe\x2e\xbc\x52\xc9\x77\x9b\x90\x57\x0b\xb3\x27\x84\x56\xe9\x3d\xc5\xd1\x02\xe2\x79\xd0\x02\x33\x15\x3c\x33\x17\x04\x73\x1d\x86\x00\x2f\x6d\xef\x00\x07\xaf\xc9\xda\xe6\x62\x9d\xe8\x42\x84\x29\x82\xe1\xfb\x8f\xa6\x40\x58\xb9\x41\xf7\x75\x7d\xa7\x02\xe1\x3e\x53\xd8\xac\xda\x11\xf5\xd9\x65\x22\xbe\x70\xef\xf5\x4f\x86\x5a\x16\xb7\xdf\x24\x2a\xa7\x00\xce\x01\xbc\x02\x68\xe4\x7b\xd2\x8e\x32\xde\x0d\x12\x31\xf1\x70\x8f\x6a\x33\x43\xb4\x2e\x79\xce\x65\x21\x84\x9e\x4b\x8a\x3e\x22\x6f\x59\x48\xcd\x51\x43\xc3\x39\x03\x37\x52\xba\x40\x1a\x20\x78\x65\xc5\x93\xb4\xcc\x3b\xef\x9c\x38\x2b\x0f\xe2\x1e\xe8\xeb\xa5\x33\x28\x96\xb5\x0d\x9a\xcb\x62\x0d\x56\x91\xa3\xce\xa8\xc7\x0e\xab\x49\x9e\x1d\x4d\xb0\x5b\xee\xf0\xf1\x76\x0e\xc7\x8e\xc4\xd6\x1f\xf4\x22\x53\x23\x76\xbc\x9f\x7e\xd0\xef\x55\x47\x4a\xb0\xfe\xd4\x70\x8c\xf5\xc4\xd0\x3f\x75\x91\xe8\x73\x7d\x07\xe1\xa7\x7d\xf7\xf1\xfd\x4e\xf6\x3f\x7c\xbf\x3f\x48\xd5\xb9\x77\xc1\xac\xdd\x70\x19\xa7\xe6\x9e\xca\x8b\xda\x09\xe4\xc1\xbe\xc6\x2e\x2e\xec\xe6\xd8\x9d\xd9\x05\x89\x12\x8b\xa8\x91\x65\xb7\xaf\x9f\x6a\xe9\x79\xbd\x80\xba\xda\x57\xaa\x49\x73\x6d\xc9\x1a\xfe\x64\x27\xe9\x4a\xb7\x60\xbb\xa7\xe0\x2a\x59\x7f\x03\x97\xac\x77\xcd\x9d\x32\xa2\xa5\x48\xe7\x97\x43\x7e\x1f\xb9\x18\x21\xc9\xc6\x6c\x66\x21\x4f\xef\x5c\x92\xb2\x2d\x46\x5e\x21\xe4\x86\x5c\x54\x9a\x7d\xe7\x32\x2f\xbf\xfb\x57\xcb\x44\xb4\x63\x2b\xe8\x6b\xa0\xfb\x52\x51\x54\xe6\x10\x16\x25\xd7\x0d\x13\x78\x36\x8d\xa1\x53\x9f\xe1\x89\xec\xc0\x2c\x68\x3e\xb5\x59\x0f\xce\x57\x57\x69\xd4\x2d\xb8\x68\x50\xa3\xd7\x9d\x85\x24\xbd\x92\xeb\x82\xe9\x42\x64\xad\xbb\x52\xc5\xe8\xaa\xca\x50\x1f\x61\x76\x79\x11\xec\x81\xb6\xee\x88\x3d\x7a\x16\x5c\xa7\xff\x74\x73\x75\xc9\x32\xbe\x03\x5c\x58\xa1\x48\x3f\x1c\xc8\x18\xeb\xeb\x77\xdf\x08\x54\x1b\x5f\x5d\x6c\xd8\xa7\x16\x60\xda\xee\xbb\xa5\x2f\x36\x6d\x28\x98\x33\x34\x25\xcd\x52\xce\x55\x7a\x92\xa5\x5c\x06\xd0\x5f\x3d\x65\xb5\xcf\x87\xb1\x5e\x17\xf5\x21\x34\x0d\x54\x00\xdc\x29\x34\x17\xf2\xb2\x15\x1c\x5a\x55\xd6\x3e\x2a\xbc\xdb\xb9\x47\xf4\x82\xde\xde\x21\x9d\x3e\x8f\xcc\x32\x41\x66\x01\x1b\xb2\x76\xa8\x07\xae\x01\x90\x38\x62\xa0\xfa\x65\xc0\xe7\xd2\xaa\xbc\xaa\x07\xcd\x62\xe4\x5e\x28\x13\xbd\x01\xff\x24\x06\x04\x00\x1c\x44\xfb\x0b\x22\x17\x72\x2e\xb5\x19\x50\xf0\x69\x8a\x7b\x41\x8e\x8d\x4a\x30\xee\xe2\xf5\x5b\x17\xdf\xc7\x41\x22\x21\xae\x8e\xae\x0f\x0c\xb3\x63\x2e\x30\xad\xba\xd4\xfb\x39\xee\xdf\xf1\xac\x2f\x6b\xec\xe8\x12\xf7\x8d\x92\x63\x9e\xa9\x5b\x9d\xa0\xd0\x09\xda\x3c\x95\xd4\xb1\xb0\xf7\x3e\xc8\x23\xb7\x9f\x56\xd2\xeb\xfd\xfc\xfa\x83\x2f\x61\xc3\x32\x01\x47\xec\x3d\x01\x09\x9c\xc3\xd6\x38\x7b\xd9\xac\x72\x50\x3e\x01\xf6\x2a\xf4\xa4\x4d\xd9\x8d\x10\xec\x23\xf4\x94\xf9\xd8\x47\x52\xd6\x02\xb8\x60\xc1\x93\x56\xe1\x13\x78\xfa\x42\xae\xd4\x71\x9b\x41\xbe\x6e\xc0\xd1\x8e\xea\x95\xf6\x7a\x1e\x0b\x78\x83\x54\x46\xf9\xb4\xf9\xf7\xad\xed\xda\x03\x6f\x7b\xef\xef\xe4\x94\x95\x67\x6b\x6a\xce\x67\x18\xe2\x43\x18\x9e\x6a\x93\xc4\xb4\x72\x82\xac\xc5\x77\x52\x3d\x48\xb4\x05\xe8\x4b\xec\xb9\x59\x7f\x70\x80\xa1\x03\x15\xcd\x82\x12\x77\xc3\x17\x40\xa3\x3c\x73\xff\x66\x37\x18\x2b\xc2\x3a\x83\x4e\x88\x06\xe3\x87\x14\x3e\x60\x37\x7f\x3e\x9b\xb0\x57\x13\x76\x36\x61\xd3\xe9\xf4\xc5\x04\xf5\x7a\xa9\x46\xf8\x0a\x22\xc7\x0a\xbe\x36\x65\x93\x72\xc2\x2a\xf8\x00\xc8\xde\x98\xc3\xca\xb2\x85\x71\xff\x54\xe0\x79\xb0\x4d\xc0\x1c\x46\x4a\xb8\xa0\xb8\x7a\xb4\x51\x89\xaf\x14\x40\x34\x45\xa4\x72\x0b\xf2\xd4\x85\xca\x2d\x60\xed\x9e\xe7\x3c\x91\x90\xda\xcd\x9b\x70\x5d\xfa\x72\x40\xee\x2c\x3e\xf3\x2d\xb4\x3f\x91\x8e\xdf\xd2\x74\xd3\xad\xab\x7f\xb1\xcb\xc8\x21\xfd\x90\x27\x45\x61\x4e\x67\x3d\x97\x37\xec\xe5\x7f\xb0\x59\x96\xa5\x82\xcd\xd8\xdf\xd8\x2b\x2e\xb9\xe4\xec\x15\xfb\x1b\x3b\xe3\xb2\xe0\xa9\x2a\x33\xc1\xce\xd8\xdf\x4c\xb7\x99\xf2\x2e\x95\x39\x0e\x77\x13\xc6\x99\x2c\x53\x3c\xf5\x9f\x5b\x30\xd8\x0b\xd7\x2e\xee\x47\x67\x29\x8a\x07\x21\x24\xd3\x6a\x4b\x47\xe1\xaf\x2e\x26\xa1\x13\xb9\x4e\x45\x41\xf3\xa1\x0a\xdb\xc3\x0f\x9c\x40\x4b\x5f\xce\xa5\xf3\xe5\xfd\x6a\x6a\xfc\x2b\xfb\x1b\xbb\x2c\xd3\xd4\x54\xc9\x6c\x34\x66\x22\xbd\x64\x36\x8d\x42\xc8\xe9\x43\x72\x97\x64\x22\x4e\x38\x24\x52\x98\x7f\x9d\xde\xc2\x68\x2f\x4a\xcf\x99\x17\xae\x69\xa7\xbd\x72\xcc\xd6\xf3\x24\x49\xd9\x4e\x82\xc7\x0e\x7e\xcf\xcd\xaf\xfa\xea\x78\x8b\xc8\x33\x85\xd2\x7a\x20\x83\x15\x75\x73\x42\xa9\x9f\x83\xb6\x80\xda\x61\x6b\xcb\x6a\x39\x0a\xc2\x43\xfd\xd8\x4d\x16\x94\xa3\x1e\xfd\x0e\x39\x40\xc6\x67\xe8\x96\xdb\x10\x21\xa9\xa4\xb9\x83\x2d\xe9\xa9\x7e\x06\x45\x85\x9c\xf8\xc8\xcf\x55\xe9\xac\x4a\x17\xab\x64\x90\xc6\x58\xad\xb2\x1f\xc8\x77\x81\x09\x6a\x66\x99\x26\xe9\xa9\x59\xaa\xa7\x97\x4a\x9a\x6b\xab\x4e\xd6\x48\x4f\x04\x30\x22\x0d\x84\xac\xd6\x28\xb8\xad\x9a\xac\xc1\x12\x00\xfb\xc0\x54\x09\xa1\x6d\x85\xd9\x05\xcc\x10\xa4\xbb\xb9\x34\x6f\xd0\x89\x04\x30\xf7\xc4\xb1\xd8\xe2\xd7\xac\x9a\x39\x7d\x8b\x36\xe4\xa0\xf0\x96\x09\xd6\x97\x43\x7b\xc4\x84\xa3\x94\xad\x23\xbc\xe2\x97\x01\x83\x1b\x95\x66\xe9\x3d\x30\xee\xb9\x14\xa9\x92\x6b\x33\x2b\xba\x36\x01\xb5\xe5\xc9\x31\xc0\x92\xb0\x0a\x58\x58\x67\x0d\xcc\x61\x49\x8f\xd0\x90\x98\x73\x32\x89\xfd\xfd\x5e\x97\x4b\x63\x47\x38\x8f\xac\x3b\x0d\xa9\x71\x5d\x09\xc5\xc7\xc5\x97\x3f\x68\x91\x03\xcd\x32\x22\x1c\x9c\xb7\x1f\x0f\x4e\x4f\xb6\x81\x2d\x1a\xb6\xa8\x7a\x81\xb1\xed\xae\x10\x8a\x26\x34\x52\xab\x07\xcc\xc7\xaf\x89\x91\x7d\x4a\x39\xf8\x56\xed\x77\x78\xce\x94\x46\x7f\x1a\xab\xef\x6e\x7b\xef\x31\xe0\x83\x9f\x50\xee\x65\xa1\x56\x36\x93\x72\xf8\x99\xde\x10\xdc\x19\x86\x52\x09\x49\xb6\x43\x61\x9a\xe6\xc4\xe9\xcc\x07\x97\x0b\x8a\x48\x0c\xab\x6c\xbd\xc3\xae\xe4\x1b\x7c\xfd\xbd\x4a\x93\xa8\x1f\xf4\x66\x8f\xab\x8d\x7a\x68\x41\x11\x2d\x05\xa0\x40\xc9\xff\x43\x95\x42\x0b\xbd\x10\x51\xe1\x23\x6e\xcd\xc6\xfd\xaf\x06\xda\xec\xbf\x83\xa3\x47\xd9\x75\x1b\x88\x3e\xba\x18\x1e\x9c\xad\x40\xb0\x09\xbc\xf2\xe8\x6b\x85\x5c\x3a\x88\x6d\x47\x9c\x5c\xd0\x95\x9e\x87\x0d\xfa\x61\xa3\x52\x73\x17\x93\x31\x91\x95\xce\x65\x26\xf2\x48\x01\x40\x05\xf3\xe0\x15\x8b\x36\x49\x1a\x7b\xf1\x96\xe7\x80\xe8\x05\xdc\xdd\x0b\x52\xa8\x13\x2e\xc6\x6c\x8b\xef\x39\x75\xed\xb4\xb3\x2a\xd5\xc7\x79\xa0\x1e\x0f\xa2\xd7\x37\xed\x7f\x21\x28\x19\x76\x05\xd1\x0b\xd5\xa2\x85\xa6\xd3\x2b\xf5\x19\xe5\xe1\x05\x1d\xe9\x95\xd5\xc1\xb4\x17\xa7\xa2\x36\xae\x34\xcd\xea\x5d\x09\xa4\xb3\x88\xa2\x42\x00\x89\x16\x50\x9d\xad\xe0\x68\x8b\x79\x0a\x48\x1a\xd4\xb9\xf4\xf1\xd1\x67\x3a\xb4\xcb\x5a\xc7\x19\x39\x55\x2d\x08\x70\xc2\x9e\x55\x1a\xfa\x0c\x48\x49\xa5\x82\xef\x51\x0c\xab\xd2\x35\x30\x5d\x27\x2c\x29\xe6\x32\xd1\x38\x33\x73\x91\x8a\x7b\x53\xbb\xd0\x59\x4c\x58\x17\x7b\x77\xb6\xcd\x06\x1c\x39\xb7\xe9\xc7\x4e\xdc\x1c\x16\x61\x1e\x92\x5b\x72\x70\x4c\xc7\x42\x1b\xbb\x11\x64\x39\xc4\x67\xb3\x00\x12\x88\x85\x20\xfc\x23\x16\xd2\xd6\x0f\x50\x21\xa8\x9f\x3a\x97\x17\x2b\xc8\x01\x85\xcc\xd3\x38\xc6\x5b\xa8\x15\x6a\x70\x4c\x63\x09\x39\x87\x15\xdd\xc9\xed\x40\x90\xc0\x22\xae\x24\x71\x2f\xf2\x5d\x01\x4e\x5d\xe8\x57\x29\x78\xb1\x61\x49\x31\x01\x8a\x38\xbb\x53\xce\x25\x8f\x49\x9f\x9a\x8a\x33\x5d\x03\xf3\xbe\x67\x9c\xe9\xf7\xa5\xba\xef\x33\x6c\x8f\x45\x7d\xe1\xaa\xce\x52\x2e\x17\x78\x82\x7c\x05\xdc\x57\xa0\x7d\xd9\x15\xea\x2c\x97\x0b\x47\x6b\xf3\x28\xf5\x74\xfb\xfd\x75\x45\x91\xd6\xd8\xb1\xf6\x43\x13\x9c\x0c\x9e\xd6\xda\x5e\x4f\x9c\x9f\x86\xd0\x05\x39\xb3\x11\xd8\xe1\xbb\x80\x87\x84\xf1\x1a\x12\xc1\xce\xd6\x7d\x98\x30\x3b\x03\xbe\x55\x7c\xd2\x90\x91\xaf\x9d\x21\xf5\x61\x1f\x0f\x8d\x69\x58\x88\x07\xc1\x63\xf6\x54\xeb\x69\x21\x32\x9d\x7e\x94\x26\x54\xc6\xb6\x36\x08\xf7\x61\xf2\x84\x40\x3f\x9c\x73\xf3\xb4\x6b\x9b\x86\xf7\x30\xd5\x82\xad\x7c\x4c\x1f\x35\xec\x53\x43\x3d\x25\x3e\xf7\x1a\xea\x35\x65\x17\x92\x59\x73\x6f\xc2\x9e\xe1\xc4\xd2\xcf\xc8\x05\x49\x02\xb9\x14\x3b\x8f\x69\xf5\x50\xb6\x6a\x1d\x8a\x81\x39\x03\x7e\xb9\x61\x24\xa8\x97\xda\xf0\x49\xfb\xe5\x55\x02\x39\x0b\x87\xa4\xa5\x63\x14\x71\x89\x05\xd0\x21\x89\xd7\xee\x1d\x1a\xed\xca\x7b\xb3\x7d\x83\x6d\xbc\x8b\xbd\xb2\x2f\x9a\x2e\xca\x4a\x3a\x4f\xed\xef\x4c\xe5\x73\x69\x4b\x23\x97\xa4\x46\x2d\xa5\x7a\x51\x01\x84\x9a\x6c\xfe\x60\xa6\x02\x88\xc1\xca\x67\x81\x2a\x9b\xe7\x5f\xad\xef\x02\x00\x8a\x58\x0a\x2f\xed\x3d\x65\x33\xff\x35\x63\x78\x98\x09\xbe\xc5\x63\xbe\xce\xd1\x98\xa6\xa6\x53\x92\xc2\x52\x42\x06\xe9\x0d\xba\x04\x62\xd3\x55\x69\x36\xa3\x80\xfd\x75\x2e\x4d\xe7\xb1\x55\x02\xb8\x5f\xea\x97\xb9\x7c\xa7\xb4\xcd\xa6\xd7\xbe\x3f\x2c\x86\x94\xba\xed\x99\x53\x11\xa3\x3f\xbc\x86\x43\x9b\x7c\xfe\x35\x59\x79\xc8\x6b\x21\x4a\x8c\x9d\x2a\x73\xdf\xa8\x88\xcb\xb9\xfc\x8b\xe9\x1e\x14\x75\x76\x8a\xe8\x6a\x85\x4b\xd8\xca\xf0\xb3\xe7\x1f\xb1\xd0\xe7\xff\xfa\xe2\xe3\x0b\xc4\xa1\x97\x1a\x84\x1b\x27\xd5\x03\xc4\x11\x81\x97\x69\x0a\x91\x68\xdb\x02\x47\x46\xe1\x3f\xc1\xfb\x60\x39\x74\xa9\x5b\xc8\xaa\x89\x31\x64\xa1\xf7\xcd\x60\xef\x7c\x9e\xb1\x88\x17\xd1\xe6\xc4\xda\x72\xb4\x8d\xd9\xd3\x8f\x86\x0f\x15\xdc\x8c\xa5\xd5\xce\x85\x6d\x2e\x9c\xf9\xd6\xb1\xf3\x55\xe6\x8b\x69\x02\x00\x6b\x6e\xeb\xc2\x30\x8e\x3c\x14\x27\xa7\xd7\x24\xf7\x76\x9e\x7b\xdc\xca\xb2\xf9\x1b\x27\x79\xc9\x25\xdf\x8a\x98\x3d\x83\x8c\xa9\x67\x76\xf0\xe7\x32\x5b\x4e\xd3\xdd\xaa\x20\x8a\x27\xd3\x29\x53\x10\x30\xda\x73\xca\x2d\xe2\xe6\x35\x69\x4f\x67\x77\x5e\xb4\xda\x6d\x1d\xd7\x37\xee\x4b\xc3\x0d\x16\xf4\x71\xb9\xde\xb9\xa9\x42\x84\xaa\x4c\xea\x5c\xdf\x4d\xd8\x32\xe7\x12\xb4\x27\xe2\xd0\xa8\xf2\xab\x13\x2e\xcf\xc8\x9f\x64\x53\x28\x24\x4f\x77\x80\x1d\x9f\xcc\x25\x92\x4d\x01\x2b\xf1\x2e\x4a\x93\x88\xad\x73\x9e\x6d\x6a\x76\x90\xb8\x17\xb2\x38\x27\x76\x05\x0b\x52\x3f\x36\xb4\xec\xd8\x1a\x8e\xe2\xdc\xbb\xa8\x5a\x3b\xdc\xd3\x50\x78\x0f\x2b\x26\xaa\xd0\x8d\xda\x82\x5a\xdd\x04\x9f\x90\x14\x1a\xf0\x71\xb1\x3f\x97\x4b\x95\x5a\x42\xb3\x8b\xd7\x4c\xe5\xa0\x25\x50\x28\xfa\x53\x12\x77\x9d\x62\x89\x8c\xc5\xe7\xa3\x58\x05\xfa\x0f\x24\x6b\xde\x99\xcf\x04\x94\xf5\xf5\xc6\xc2\x2a\xca\x85\x39\x2c\x0a\x7b\x83\x6b\x3c\xa5\xeb\x08\xbb\x59\x5a\x6c\x00\xf6\x86\x80\x6b\xdf\xa9\x5b\xbe\x63\xd1\x86\xcb\x75\x70\x85\x06\x14\x92\xc8\x54\x8e\x9a\x7b\xf7\x40\xdf\xa5\x72\x9b\xb5\x49\xb9\x88\x84\xfa\x76\x0e\x6f\x04\x5b\x2a\x9b\x70\xc8\xd7\xeb\x5c\xac\x21\x91\x7e\x2e\x2b\xd9\xd4\x40\x5d\x66\xe9\xfe\xf1\x3b\x7d\xc9\xa8\x8f\xc3\xe8\xd0\x75\x6b\x29\xf2\x9d\x4b\xe5\x23\xc1\x4a\xd7\x75\x8d\x6e\x9d\xb0\x44\x4c\x27\xec\x7b\x0f\x30\x15\x91\x92\x2e\x17\xb0\x23\x11\xac\xe6\x9a\xde\xb3\x17\xb5\x50\x3f\xb4\xd7\x1d\x7e\x6b\xc8\x5e\xb6\x4e\x9a\xde\x64\xca\x82\x17\xe5\x88\xbd\x92\xa4\x8d\xcf\xcc\xcb\x37\xf8\x6e\x2f\x06\x9b\x67\x66\x7b\xb3\xb4\x3b\xe6\x79\xb3\xc3\x9b\x6f\x7b\x5a\xde\xb6\xbe\xde\xeb\xe8\x4c\x55\xb7\xa3\xf3\x31\x4c\x4a\xcb\xad\xb0\xdf\xd7\x99\x76\xf0\x05\xf4\xb4\x69\xac\x2b\xd3\x82\x51\x09\x66\xae\xeb\xd7\xad\x96\x1d\x20\xcb\x55\x5c\x46\x22\x36\x2b\x17\xec\x76\x44\x6e\x38\xda\x82\xca\x26\xd9\x76\x20\x54\xb8\x57\x40\xe0\xfa\x4b\xdd\x8d\x07\xd1\xdd\xba\xee\xff\xd0\x71\x2f\xb6\x96\x49\x5b\xa7\x87\xeb\x13\xfb\x29\x1f\x79\x4e\xb9\xcf\x57\x49\x6a\x55\x9e\xac\x13\xc9\x0b\x95\xb3\xe7\x2e\x39\xf1\x85\x53\xb6\x81\x5e\x7c\x8c\x6d\xa2\xd2\x45\xb8\x4d\xb4\xdf\xbd\x00\xcf\x2c\xe2\xc5\x38\xee\xac\xb1\x0c\xcf\x30\x49\xcd\x53\xba\xe0\xdb\x2c\xa4\x7d\x74\xba\xc1\xd4\x33\x29\x76\x02\xb3\x15\x03\x1f\x5f\xa2\x7d\x0e\xd6\x5c\x92\x67\x1c\xc7\x4d\xe5\x21\x6f\x71\xe7\xd9\x9c\x95\xc5\xe2\x40\x2a\x13\x7c\x79\x9c\x83\x84\xc2\xe5\xef\x78\xd6\x4f\x0e\xc1\xe9\x6a\x8c\x49\x28\x4e\x4c\xd9\x5a\x2a\xd5\xf9\xd9\xaf\x0c\x30\x92\xac\xb2\x1e\xe2\xbd\x7e\x6b\x03\x1a\xfe\xde\x52\xb9\x08\xc0\x40\x20\x4b\x9e\x06\xab\x02\xaf\xa0\x6e\x5b\x33\xa7\xb8\x65\x94\x38\x4b\x55\x19\x33\xda\xd4\x28\x5c\x9c\x4f\xf1\x74\x04\xda\xca\xe9\xb4\x8b\xc3\x6b\xa4\x62\xa9\xdb\x7f\xe0\xbd\xf6\x15\x08\xbf\x75\xec\xc0\xbd\x4b\x9f\x7a\xf6\xc9\x86\x9e\x7a\x1a\xc6\xde\x6d\xc7\xa3\xc6\xde\x79\x6b\x81\x43\x6b\x9c\x23\x0f\xee\x4d\x49\x9c\xc2\x7a\x0b\x1d\xdd\x2d\x2c\x9f\x95\x00\xa2\xbe\x3b\xfa\x73\x36\xd3\xb6\xff\x53\x19\xcf\x85\x2c\x16\xf0\xc5\x71\x1f\x83\x8f\xbc\x87\xd7\x2b\x06\xd3\x20\x87\xe5\x7f\xdd\x2a\xf4\x43\x5b\xc2\x8c\xff\x66\x37\xe4\x7b\xd1\x56\xd5\xde\x9c\x8e\xcf\x13\xc0\xc6\x04\x31\x3b\x37\x70\x1d\xc3\x45\x0d\x3a\xa0\xf7\x82\x06\x55\xb6\xf6\x41\x0d\xf2\xb5\x87\x90\x2a\x94\x42\x6e\x28\xca\xf0\x34\x5b\xad\xfd\x5b\x40\xa2\x7d\x59\xf9\x37\x10\x1e\x9a\xf1\x4b\xd9\x5f\x45\xae\x7c\xda\x02\x3a\x55\xc2\x82\x7b\xed\xf5\xc3\xf5\x3f\xd1\x1e\x47\xe5\xc9\x50\x7a\x0d\xfe\x42\x9c\x24\x78\xf3\x5d\xee\xec\x75\xa4\x8b\x4e\x5d\x44\x8b\x0e\x9e\xfd\x41\x55\x09\x2e\x9e\x21\x6f\x7e\x52\x3b\xcc\xec\x02\x3d\x85\x7b\x35\xb1\xfe\x6d\x79\x46\x38\x34\x82\xbc\xd6\x83\x0c\x53\x68\xc4\x7f\xfd\xfa\xdf\xd3\x2e\x65\x67\xa8\xfa\x58\x58\x8f\xab\xfc\x9b\x3c\x11\x32\x86\xa0\x21\x8f\x9b\x12\x30\xb2\xe2\x45\xae\x6c\xcf\x66\x1a\x3e\x4a\x76\x5f\xfb\x51\xab\x17\x38\x89\xbe\x40\xe4\xd9\x6f\xb2\x6e\xf9\x56\xe2\x52\x5d\xa6\x84\x5e\xc4\x3b\xc9\xb7\x4d\x2d\xec\x27\xad\xe3\x2e\x11\x69\x0c\x55\xa4\xaf\xef\x8b\x9e\xc4\x22\xba\x1b\x6b\x13\x1c\x4c\x60\x2d\xa2\x3b\xf6\xe3\xed\xbb\xb7\xa8\x57\x98\xe8\xb9\xbc\xe4\x45\x72\x2f\x3e\xe4\xa9\x73\x5b\x13\x23\x49\x9e\xda\x35\x52\x25\x54\x0d\xc8\x3b\x2c\xfb\xaa\x35\x1c\x42\xbe\xeb\xed\xee\x64\x59\x46\x77\xa2\x38\xcd\xb9\x8c\xd5\x16\x9b\x71\xaa\xcb\xd5\x2a\xf9\x3c\x2d\x78\xde\x41\x7e\x8d\x7e\x84\xaf\x68\xe7\x7a\x49\x93\xc2\xdb\xbc\x68\xea\x3e\x40\x76\x22\x09\xe5\x56\x8c\x5b\xb8\x02\xe7\x7c\x2b\x80\xbd\x8c\x55\x89\xe3\xa1\x14\x4c\xf8\x03\x7d\x35\xad\x09\xe9\xad\x48\xbd\xf5\x63\x60\xdc\x7f\x0c\x6a\x55\x55\x10\xb6\x95\xf2\x9a\x65\x5b\x7e\x87\xf7\xc3\x75\x2e\xb4\x9e\x30\xad\xa0\xc6\x73\x69\x31\xd3\x36\xaf\x07\xf0\x19\xc0\x7f\x98\xee\x58\xa4\xb2\x04\x24\xde\x5c\xbb\x36\xea\x01\xfc\xc9\x61\x7a\x1b\xa8\x72\x96\xb2\x48\x52\xc6\x57\x05\x39\x9b\x81\xec\xd9\x8a\xbb\xe8\xe9\x5c\x42\xc8\x30\x82\xe6\x43\x28\xdf\x85\x09\x5c\x23\x34\x5b\xf1\x28\x49\x93\x82\x28\x68\x20\x19\x86\x9b\xf6\x9a\xf3\xc0\xf4\x65\xce\x77\x3c\xf5\x17\x2b\x9e\x96\x3e\xa3\xef\x44\x8b\x3a\xc5\xd9\xef\xc2\xff\xad\xdc\x73\xfb\x4e\xdd\x23\x2e\xbc\xc7\x1c\x3e\xcd\x2b\xad\x53\x1c\xf5\xe7\x78\x12\x5b\x9c\x68\xc5\xd4\xf5\xcc\xb3\xee\xf8\x01\xdf\x79\xc7\xa5\x7a\x6a\x75\x62\x9a\x5f\x18\xd1\x7b\xed\x46\xd8\x17\x72\x17\x74\x71\xe0\x0e\xa9\xbe\xf5\x76\xbf\x57\x2a\x3d\xd6\xe3\xcd\x53\xbb\xa1\x2e\x40\x3a\xf1\x98\xeb\x1a\x4e\x00\xe7\x38\xba\x78\xed\x62\xaf\x8e\x54\xb6\x2a\xb8\x42\xb0\x20\xaa\x02\x6c\x14\x50\x89\x1e\xc4\xb0\xce\x5a\x82\xef\x23\x91\xcf\x50\x06\xa2\x76\xac\xe9\xdc\x74\xc1\x07\xb9\xec\xdc\xd7\x11\x88\xf7\x6a\x35\x1c\xe5\x0c\x43\xa1\xc3\xda\xa7\x9c\x63\x2c\x24\xe8\x74\xfd\x18\x7c\xdb\xf6\x27\xca\x2b\x9b\xf3\x89\xac\xe4\xb9\x0c\x2c\x62\x64\xd5\xb1\xd0\x72\xd7\x6b\x6d\xfe\xb2\xca\x34\x3c\xda\x5f\x76\x0c\x0b\x73\x6f\x40\xe5\x75\xa8\xa7\x04\x98\x80\x48\x6d\x97\x89\xb4\xa9\xca\xe4\x44\x06\x53\x7e\x66\x49\xee\x9c\xc3\xdf\x9a\xe4\xc8\xb2\x5f\xeb\x7b\x67\x46\x84\x7c\x81\xe1\x96\xb5\xef\xba\x1b\xde\x9f\x1e\x97\x30\xba\x03\xa5\x5a\x6f\x41\xa2\x19\x4f\x1f\xf8\x4e\x83\xe6\xa8\x30\xbb\xe2\x0a\x1d\xa7\xd5\xfa\x4f\x82\xe3\xdd\x12\x28\x92\x80\x77\x49\x52\xc4\xd4\x96\x04\xf9\x1b\x44\x6a\xd5\x55\x3d\x2f\xce\x33\xdd\xde\x39\x5f\x27\x16\x92\xf7\xc6\x42\x30\x18\xf9\x8f\x11\xfe\xe8\x71\xb2\x1e\xe9\xeb\x0d\x8e\x49\xb4\xc8\x08\x2e\x02\x09\x3c\xb0\x1d\x9b\x6f\x4f\xd8\x96\x27\x92\x96\x01\x2a\x58\xc5\x62\x59\xae\xd7\x9d\x2e\xc8\x6f\x3f\x96\x51\x5d\x27\xff\xf4\xbe\xe6\x5e\x66\xa7\xc7\xf0\xc6\x5e\xd8\x2f\xa1\x7b\xd8\xdc\xab\xbe\x8c\x03\xf6\x2b\x7a\xbb\x5b\x43\x4e\x8d\x49\xf4\x38\xde\xee\x8b\x21\xde\x6e\x8b\xf1\x81\x54\x2b\xba\xae\x5a\x1c\xc6\x6f\x6e\xf0\x2f\xe3\x06\x1f\x34\x29\x90\xde\x63\x91\x54\x0d\xf4\x9e\x1a\x1e\xc8\x12\xe6\xe8\x24\xa1\x56\xa4\x06\xae\x85\x8c\x35\x5b\xf2\xe8\x09\x68\xc3\xe0\x74\x3c\xde\xdf\xb6\x07\x5c\x72\xa3\xb6\x82\xc1\xa7\x34\x6a\x1f\x30\xca\x66\x9b\x00\x6a\xd1\x34\xd0\x23\x32\x08\xef\x01\xc7\x29\x22\x43\x62\x6f\x54\x3f\x97\xe2\x81\x99\xd3\x6a\x12\xc2\xb8\x82\xe1\x01\x51\x9c\x17\xc6\x3a\xac\x60\xbe\x5d\xea\x7e\x2e\xd6\x3c\x8f\x21\xd3\x80\x96\x64\xca\xa3\x3b\xf3\xdf\x50\x3f\xfa\x22\x41\xcd\x2c\x3f\x37\xc2\x1f\x7d\x69\x89\x8c\x72\x20\x65\x22\x54\x9b\xaf\x1f\xbe\xae\x19\x8f\x72\xa5\xd1\x29\xe3\xb4\x24\x21\xd3\x15\x0c\xd8\xfb\x24\x2e\x79\x8a\x5f\xec\xf4\x64\x73\x7d\x14\xdf\xf8\x2c\x90\x7d\x11\x9f\xb3\x94\xcb\xea\x9a\xc4\xe6\x02\x57\x4d\xd2\x33\xf3\x1d\xe5\xda\x31\x55\x19\x4d\x1d\x79\x11\x28\xae\xfa\x65\x85\xd6\x71\x2e\x78\xbc\x0b\x89\xa9\x12\x49\xba\xfb\x3c\xde\x26\xd2\x0c\xbd\x55\xf5\x72\xfb\xab\x25\xf8\x45\xc0\x25\x88\x5f\xa4\x69\x6d\xe9\x6b\x26\x85\x31\xa9\x78\x9e\xa4\x3b\xb0\xa2\xb3\x5c\x9c\x04\xdf\x09\xd6\x37\xe5\x7b\x00\x55\x31\x91\x28\x94\x5a\xac\xca\x14\x6d\x6d\xb8\x8d\xba\x06\xd0\x3a\xfc\x70\x31\x31\xc7\x6c\x41\x94\xf3\xc1\x87\x51\xc8\xe9\x31\xb0\xf3\x8d\x18\xd8\xb8\x38\x8e\x27\x4e\xcb\x01\xe2\xbb\x51\x0f\x36\xd1\xe7\x81\x7b\x24\x67\xd7\x99\xf2\x68\xbe\xfb\x7e\xeb\xcb\xde\x7b\xec\xea\xc4\xce\x8f\x2b\x01\x1b\xfa\x4d\xc4\x6e\x45\x26\x12\x9a\x43\x5a\x88\xde\x1f\x5a\x6a\xcc\x17\x32\x63\x09\xbb\xb6\xbd\xde\x57\xdd\xa1\xcc\xb5\x2e\xd1\x4a\xb2\x79\xf9\xfb\xdf\xff\x41\xb0\xdf\x43\x02\x15\x59\xe1\x18\x75\x01\xea\x34\x2c\x1d\x36\x2a\xf7\x01\x81\xbc\x6a\x8d\x11\x61\x6d\xc0\x47\x9b\xad\x0c\xd0\x41\x1e\x6d\x98\x2e\x97\x88\x8b\xe3\xe4\xb8\xe7\xd2\x31\x93\xbe\x55\x00\x71\xc3\xf3\xcc\xd6\xfe\x7f\x89\x9b\x1a\xd9\xc1\xe7\x32\x53\x48\x9e\x0b\x80\xc2\xa5\x60\x5b\x9e\xdf\x81\xd8\x1b\x29\x7a\x33\x5e\xb0\xe7\x89\x98\x56\x9d\xd6\x2f\x2a\xf5\xa1\x30\x01\x92\x62\xb2\xbc\x94\xd2\xaa\x57\x30\x63\x8e\x79\x0f\xf2\x64\x2e\x97\x65\x78\xe3\xaa\xb8\xa0\xfd\xd4\x02\x37\x34\x6c\xb6\x0a\x98\x12\xa8\x52\x5c\x07\x4a\xe3\x6c\x80\x2f\x7a\x2e\x9f\xc8\x19\xdd\xe5\xe6\x7a\x4f\x96\x87\x75\x61\x05\x68\x6d\x68\x6e\x28\xb0\x08\xc3\x81\xd3\x1e\x8e\xf6\xf7\xa0\xb2\x38\x61\x3f\x26\xf7\x62\xc2\x6e\x32\x9e\xdf\x4d\xd8\x6b\x0c\x2a\xfd\x49\x2d\xdb\x3c\x57\x8d\x74\xfa\xa3\xbd\x57\x87\x39\x6f\x06\x4b\xb5\x3b\x9b\xf7\x97\xa6\x0e\x7b\x57\x44\xf5\x1f\x13\xe7\xd5\xc1\x74\xf0\xcf\x7e\xff\xde\x13\xfc\xfc\x0d\x12\xf5\x4f\x79\x17\xec\x27\x39\xf8\x5d\xf8\xbf\x76\xff\xb2\x16\x17\xd8\x9e\xb4\xcb\xb5\x62\x9d\xbe\xad\xb4\xce\x24\xae\x1f\xca\xcd\xec\xce\x61\x4b\x81\x92\x67\x63\x97\xd8\x3b\x02\xca\x4d\xaf\xda\xfe\x3a\x4b\x95\x2e\xf3\xfe\xc5\x7f\x5d\xad\xb5\xfd\x7a\x0b\xd1\x21\x4c\xb6\xed\x52\x40\xce\xf6\x50\x50\x03\x3e\xb6\xf8\x8b\x5a\x2e\x00\xc1\x73\xdc\x0a\x6f\x2b\xce\x4a\xa7\xb8\x38\x10\x55\xd5\x9f\x90\x37\x99\x00\xbe\x1d\x6f\x8a\x7a\x37\x78\x6d\x86\x39\x87\xc0\x5c\x5a\xfa\x61\xcc\x17\xcc\x73\x01\x3c\xa9\xe6\xde\x7b\x2f\x72\x96\xf1\xdc\x85\xd1\xad\x45\x14\xdc\x7c\x3c\xd4\x22\xcc\xf1\x81\x54\x3d\xba\x6f\x2d\x85\x90\xae\xb7\xc7\x98\x12\xc6\x3a\xa8\xf7\x3e\x61\xa8\x1e\x04\x8b\x10\x9e\xdf\xa1\x5e\xd6\x78\x2f\xb8\x0b\x82\xc9\xbd\x16\x45\xb0\x9b\xd7\x4c\x8b\xca\xd2\xac\xc4\x65\xbe\x29\x1c\x79\x6b\xe4\xb5\x46\x4d\x54\x71\x1b\x0c\x8a\x64\x3d\x86\x97\xf8\x3d\x2f\x36\x78\xa1\xdd\xaa\x82\x64\xe4\x91\x23\x05\xe7\x0b\xfa\x5a\x97\xa9\x5a\x82\x14\x8f\xf9\xa5\xeb\x6e\x18\xd1\xd2\x1e\xd4\x75\xcd\x01\x1b\xb2\x33\x98\xdd\x04\xf2\x0c\x73\xa1\x81\x6e\xa2\x19\x9b\x19\x8a\x7a\x1d\x77\xe9\x6e\x56\xd7\x6c\xfa\xaf\x1b\x97\xed\x26\x3f\xb9\x59\xd6\x00\x81\x3c\x3f\x20\x2f\xe3\x3c\xcc\xd5\x33\xc6\x01\x51\xb5\x52\xf0\x13\xd9\x1a\x6b\xed\xb5\x8a\xaf\x73\x39\xc3\x5f\x82\x43\x80\x7b\x1d\x0e\x87\x32\x24\x71\x3f\xb7\xfe\x30\x79\x8f\xcd\x42\x5c\x1b\x79\x08\x26\xde\x83\x07\x97\x81\x09\xe4\xca\xc9\x22\xc9\x05\x93\x10\x7b\x9f\x4b\x5d\x2e\x4f\x3c\x2d\x83\xb9\xc5\xdd\x03\x95\x88\x16\x19\x87\xab\x0c\xb0\xb5\x9c\xb4\x1c\xc3\xe8\x8f\xf3\x7c\xfa\x96\xbe\x8c\xa7\xb4\xf9\x43\x06\x1e\xe6\x05\xbb\xb6\xbb\x72\xcc\x65\x0d\x6e\xd1\x36\x27\x15\x0f\xbb\xbe\xfd\x02\x14\x3f\x20\xaf\xef\x1a\xb1\x03\x5f\xfb\x00\x0f\x63\x80\x43\x8f\x6e\x88\x22\xcd\xe5\xff\xb5\x67\x43\x37\x54\x75\xc4\x4c\x37\x3d\x63\x8e\xa8\x4e\x08\x6d\xa5\x6e\xf6\x0a\x19\x18\x81\xdd\x95\x6a\x4c\xf9\xb6\x52\xb9\x45\x73\x84\xfc\xf6\x8a\x92\x30\xe1\xd7\xfb\x44\x07\x64\xc7\xf0\xb5\x1b\x21\xd8\xcb\x5c\xac\x5e\x7e\xcc\xc5\x6a\x61\x47\x7a\x0a\x0d\x9a\x9a\x16\x35\x29\x8f\x07\x4e\x0e\x9d\x29\xd9\x4e\xfd\xb6\x87\x9a\xb1\xd6\x24\x2c\x27\x68\x53\xb2\x62\x5e\x06\xcd\xb4\x07\xf2\xdf\x45\x5c\xe7\x62\x6e\xd4\xec\x8b\x1f\x73\x5d\xf8\xa7\x01\x00\xa3\x0e\xf9\xb0\x7f\xfe\xe3\xad\xd2\x67\x43\x8e\xb7\xdb\x2a\x50\xc4\x6e\xf6\x5c\xba\x03\xaf\x1b\x50\xfc\x65\x31\xcf\x30\x80\x3a\xe3\x0f\x92\x58\x3c\x46\xb9\x9e\x86\x1d\x6b\xed\x42\xe6\xe6\x58\x6b\x20\xbf\xfc\x2a\x93\xd6\xd3\x97\x38\xad\xad\x49\x20\x53\xcb\xd3\x34\x64\x94\xf7\xf1\xa5\xb9\xf4\xd9\x8e\xc6\x6a\x4d\x53\xeb\xc2\xab\xd8\x1b\xc4\xd9\x12\x43\x9a\xa9\x98\x58\xca\x09\x22\x6b\xa3\x28\xd0\xc9\x92\x83\x06\xa2\xd3\x59\xd9\xb7\x9a\x1f\xeb\x12\xf9\x8d\x65\xdb\xee\x89\xb7\xe2\x67\x17\x77\x62\x37\xba\xae\xed\x91\x0e\x2f\xc1\xb8\x81\xc5\x6c\x77\xd9\x88\xe7\xb9\xc5\x8e\xd3\x57\x99\xb9\x2b\xad\x78\x54\x71\x73\x76\xd4\x73\x23\xa2\xbb\x4c\x25\x72\xf4\x5e\x14\xd4\xc7\x18\x52\x85\x39\xcf\x7c\x69\xee\x76\x38\xe8\x70\xac\xd8\x93\xd8\x10\x0d\xa0\x02\x0b\x88\xf4\x54\x54\x9c\x39\x8d\xc9\xee\x69\xf7\xd8\xfe\x0b\xe1\xcf\x86\x27\xf0\xc5\xb6\xc4\x87\x6a\xa7\x0a\x6f\x71\xec\x54\x78\x10\x79\x23\xa7\x68\x60\x67\x73\x56\x21\x70\x6b\xed\x52\x70\x41\xfe\xe6\x19\xfa\xcd\x33\xf4\x0f\xee\x19\xfa\x92\x6e\x21\x40\x84\x3c\xa5\x4f\xa8\x27\x40\x7e\xc4\x72\x74\x5f\x3d\x56\x70\x19\xad\xe3\x49\x20\x0c\x1a\xe4\xcf\x35\xe1\xed\x96\x5e\xa1\x00\x59\xe5\xe8\x4e\xc8\xce\x18\xbd\x25\xc5\xe9\x54\x8f\x7d\x2c\xd8\x67\x37\xa7\x4f\xf0\x76\x3f\x47\x9a\x07\xf8\x10\x65\x6a\x1b\xcd\x84\x59\x27\x60\x7b\x9a\x86\x9f\x00\x54\x4a\xe5\x8e\xd6\x57\x53\x6e\x17\x06\x23\x91\x7c\x07\x21\x42\x35\x22\xdc\xa1\x48\x30\xfb\xe1\x45\xa6\x54\xda\x0a\x08\x7b\xd4\x0e\x6c\xa4\x87\x0c\xed\xbc\x0b\x34\x46\x75\x08\x93\xb2\xbd\xe8\x53\x0d\x7c\x62\x02\x66\x21\x80\x12\x00\xcc\xa6\xb8\x84\x0c\x3d\xdf\x1d\x53\x9f\xd7\xc3\x9d\xc3\x85\x90\x51\x4b\x11\x71\x50\xc1\xb3\x90\xb5\x88\xbb\x9c\x8b\x90\x6a\xa7\x91\x04\xa1\x9b\xdf\xe9\x88\x5a\x42\xb9\x8b\xa4\x8d\xf6\x7f\xec\xe2\xaa\x59\x08\x16\x50\x8d\x35\xb7\x48\x12\x4b\x3a\xb7\x4f\xf4\xd0\x32\xec\x2e\xa2\x94\xeb\x81\x86\x75\xeb\xbe\x73\x41\x05\x9d\x41\x39\xc3\x37\xd2\x1f\x21\x09\x65\x3b\x10\xb9\x33\x97\x33\x27\xfa\xe7\xb1\x5f\x0e\xaf\x86\xe1\x52\x44\xea\x35\x86\x06\x99\xec\xfc\xcd\x65\xc2\x74\x19\x6d\x80\xab\xaf\xba\x4f\x85\xfb\x56\x73\xc5\x4e\xe6\xd2\x5c\x88\xc0\xd5\xb2\xe5\x90\x6d\xfd\x60\x8c\x55\x9d\xfc\x55\x38\x78\x16\x51\x42\x85\x88\x2c\xbc\x38\x29\xd9\x8a\x5e\xb3\xb4\x89\x08\xb0\xf0\x98\x92\x32\x8b\x79\x21\xa6\x73\x8f\xb6\x49\xd0\xd3\x69\x51\x1e\x64\x32\xeb\xb0\x61\x21\x7a\xaf\xb6\xd3\xa6\xc9\x4a\x44\xbb\xa8\xa1\x82\xd2\x4f\x3e\xf0\xdb\xb5\xed\xdb\xba\xb6\x21\xc7\x28\x66\xca\x8d\xe9\x5a\xaa\xea\xb5\x7f\xfd\xb8\xce\x15\x2c\xa8\x89\x1e\xd1\xcf\x5f\xf0\xda\xd9\x62\x03\x8f\xb3\xe7\x07\xdf\x83\xfa\x8f\x33\x7f\xb1\xf5\x87\x75\x90\x58\xdf\x30\x0b\xc3\xe0\x62\x11\x4e\x1d\x63\xd0\x0e\x0e\xeb\x77\x73\x97\x7c\x53\xe0\xa4\x21\x17\x57\x63\x71\x3b\xb8\xd2\xa5\xb5\xb4\xa5\xc0\xf3\xae\xc7\xe2\x0e\x38\xad\x79\xf1\x4c\xbb\x5e\xaf\xee\x80\x16\xf1\xfe\x36\xd1\xc5\xcf\x35\xc5\xc4\xc3\x24\x17\x9f\xcc\x34\xb5\x55\xc5\x6a\x0e\xb5\xa8\xae\xab\x36\x8f\x5a\xd9\x39\x07\x97\x27\xab\x91\x65\xea\x3d\xe6\x1e\xf4\xd1\xf5\xd7\x47\x3c\x9a\x1e\x72\x9e\x65\x22\xb7\x07\x79\xc3\xd6\x02\xc1\x29\xf8\x0a\x28\xc6\x6d\x04\xca\xd6\xd6\x6e\xb9\x66\x2b\xa9\x15\x0d\x8f\x41\xd7\x4d\xdb\x47\xee\xb2\x4c\xd3\xce\x91\xdb\xaf\x63\x73\xf9\xe1\xed\xdb\xc5\xcf\xb3\xb7\x1f\xce\x6d\xf3\x5b\x75\x61\x82\xc7\x3a\xfb\xc4\xd5\x84\xfa\xc4\x2b\xcf\x99\xcf\x0a\x2b\x9d\xab\x7c\xab\xd1\xc9\x55\xa6\x69\x55\x33\x68\x2e\x3f\x52\x39\x00\xd3\x46\x3d\x44\xd3\x6f\xac\xb7\xe3\xaa\xdf\x87\xc7\x3e\x9a\xc2\x3f\xe2\xbb\x27\xcc\x37\xe2\x25\x28\xdb\x91\x62\x56\x7b\xbf\x52\x0e\xc8\x11\xcb\x01\xc1\xc0\x5d\xcb\xe1\xb1\x55\xd1\x0e\x5b\x1e\x1f\x24\xf0\x31\x8b\xd8\x8a\x99\x3d\xca\xea\xc0\xbe\xfb\x58\x8d\x53\xbb\xbd\x3c\xc6\x2b\x0d\x94\x3b\x41\x2d\x2b\x50\xe8\xf5\x72\x4f\x73\x89\x3e\x50\x53\xa7\x42\x75\xd7\x89\x5d\x90\x79\x9b\x72\xb9\x2e\xf9\xda\x58\xb7\xf6\xe3\x73\xb9\x4d\xd6\x1b\x64\x97\x28\x33\x8f\x4f\xe6\x4c\x02\x09\x49\x6d\x0a\xd5\xf0\xc9\x89\x9c\x4b\x6a\x93\x5c\xfb\xe2\x11\x2b\xfb\xa7\x1b\xd7\x1c\x02\xa5\x63\x41\x24\xc7\x25\xe7\x12\x07\x17\x59\x2f\x6c\x24\x04\x6e\x2c\xbc\xa8\x4f\x5d\x0e\xb1\x4b\x94\xac\x36\x7b\xfa\x1a\x62\x32\x73\xe9\x12\x53\xd1\x73\x44\x6d\x08\x64\x1b\xb0\x4a\xfb\xf7\x13\x3b\x18\x76\x4d\x50\xdd\xda\x67\xfd\xd1\x67\x80\x59\x70\x8b\x11\xda\xbb\xcd\x6d\x6c\xa0\xb7\x90\x07\x1b\x47\x17\x5b\x01\x64\x23\xb7\xd7\xc6\xb6\x0b\x9f\xe9\x84\xb6\xaa\x72\x99\x8e\xa8\x12\x3e\xdf\x5b\x29\xdc\x92\xfb\x2b\x35\xe0\x3a\x7c\x5d\x5b\x5a\x66\x9a\xf6\x7d\x76\xa9\x54\xc7\xb8\x3c\x62\x40\xb1\x52\x29\x7a\x61\x5f\x67\x94\x51\x71\xc8\x7c\x19\x90\xa2\x57\xef\x22\xbb\xfb\xf4\x55\x28\x4d\xf4\x41\xd5\xf1\xf6\xd3\xe0\x1a\x39\x0b\x81\x0e\xbb\x51\x3b\x2c\x9d\x73\x95\x0d\xb6\x63\x9b\xa4\x78\x92\x15\xb1\x4d\x70\x7b\x31\x8b\x07\x15\x66\xcd\xfc\x9f\xb8\x49\x34\xf1\x23\x37\x81\x4a\x46\x65\xae\xcd\x76\x49\xfb\x1d\xed\xda\x2a\x67\x7c\x2e\xad\x1a\x82\xdd\x8e\x67\x16\x9c\x9b\xbb\xbf\x62\xda\x63\x86\x6c\xe2\x60\xb1\x16\x4c\x49\x61\x77\xc3\xb9\xb4\xca\xc7\x13\xc6\x97\xda\x0a\x0a\x73\xb9\x73\x2a\xbf\x89\x93\x70\xe3\x92\x01\xea\x79\xff\x9e\x57\x33\x03\x2a\xe7\xfc\xef\xcc\xff\xfd\xfd\x77\xff\x3f\x00\x00\xff\xff\x22\xbb\xb9\xf6\x08\xa7\x04\x00") func adminSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -93,7 +93,7 @@ func adminSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "admin.swagger.json", size: 304880, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 304904, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/gen/pb-java/flyteidl/admin/Agent.java b/gen/pb-java/flyteidl/admin/Agent.java index 58c80118c..cefc77700 100644 --- a/gen/pb-java/flyteidl/admin/Agent.java +++ b/gen/pb-java/flyteidl/admin/Agent.java @@ -143,6 +143,2088 @@ private State(int value) { // @@protoc_insertion_point(enum_scope:flyteidl.admin.State) } + public interface TaskExecutionMetadataOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.TaskExecutionMetadata) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * ID of the task execution
+     * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + boolean hasTaskExecutionId(); + /** + *
+     * ID of the task execution
+     * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier getTaskExecutionId(); + /** + *
+     * ID of the task execution
+     * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifierOrBuilder getTaskExecutionIdOrBuilder(); + + /** + *
+     * k8s namespace where the task is executed in
+     * 
+ * + * string namespace = 2; + */ + java.lang.String getNamespace(); + /** + *
+     * k8s namespace where the task is executed in
+     * 
+ * + * string namespace = 2; + */ + com.google.protobuf.ByteString + getNamespaceBytes(); + + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + int getLabelsCount(); + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + boolean containsLabels( + java.lang.String key); + /** + * Use {@link #getLabelsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getLabels(); + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + java.util.Map + getLabelsMap(); + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + + java.lang.String getLabelsOrDefault( + java.lang.String key, + java.lang.String defaultValue); + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + + java.lang.String getLabelsOrThrow( + java.lang.String key); + + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + int getAnnotationsCount(); + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + boolean containsAnnotations( + java.lang.String key); + /** + * Use {@link #getAnnotationsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getAnnotations(); + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + java.util.Map + getAnnotationsMap(); + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + + java.lang.String getAnnotationsOrDefault( + java.lang.String key, + java.lang.String defaultValue); + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + + java.lang.String getAnnotationsOrThrow( + java.lang.String key); + + /** + *
+     * k8s service account associated with the task execution
+     * 
+ * + * string k8s_service_account = 5; + */ + java.lang.String getK8SServiceAccount(); + /** + *
+     * k8s service account associated with the task execution
+     * 
+ * + * string k8s_service_account = 5; + */ + com.google.protobuf.ByteString + getK8SServiceAccountBytes(); + + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + int getEnvironmentVariablesCount(); + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + boolean containsEnvironmentVariables( + java.lang.String key); + /** + * Use {@link #getEnvironmentVariablesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getEnvironmentVariables(); + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + java.util.Map + getEnvironmentVariablesMap(); + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + + java.lang.String getEnvironmentVariablesOrDefault( + java.lang.String key, + java.lang.String defaultValue); + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + + java.lang.String getEnvironmentVariablesOrThrow( + java.lang.String key); + } + /** + *
+   * Represents a subset of runtime task execution metadata that are relevant to external plugins.
+   * 
+ * + * Protobuf type {@code flyteidl.admin.TaskExecutionMetadata} + */ + public static final class TaskExecutionMetadata extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.TaskExecutionMetadata) + TaskExecutionMetadataOrBuilder { + private static final long serialVersionUID = 0L; + // Use TaskExecutionMetadata.newBuilder() to construct. + private TaskExecutionMetadata(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TaskExecutionMetadata() { + namespace_ = ""; + k8SServiceAccount_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private TaskExecutionMetadata( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.Builder subBuilder = null; + if (taskExecutionId_ != null) { + subBuilder = taskExecutionId_.toBuilder(); + } + taskExecutionId_ = input.readMessage(flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(taskExecutionId_); + taskExecutionId_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + namespace_ = s; + break; + } + case 26: { + if (!((mutable_bitField0_ & 0x00000004) != 0)) { + labels_ = com.google.protobuf.MapField.newMapField( + LabelsDefaultEntryHolder.defaultEntry); + mutable_bitField0_ |= 0x00000004; + } + com.google.protobuf.MapEntry + labels__ = input.readMessage( + LabelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + labels_.getMutableMap().put( + labels__.getKey(), labels__.getValue()); + break; + } + case 34: { + if (!((mutable_bitField0_ & 0x00000008) != 0)) { + annotations_ = com.google.protobuf.MapField.newMapField( + AnnotationsDefaultEntryHolder.defaultEntry); + mutable_bitField0_ |= 0x00000008; + } + com.google.protobuf.MapEntry + annotations__ = input.readMessage( + AnnotationsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + annotations_.getMutableMap().put( + annotations__.getKey(), annotations__.getValue()); + break; + } + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + + k8SServiceAccount_ = s; + break; + } + case 50: { + if (!((mutable_bitField0_ & 0x00000020) != 0)) { + environmentVariables_ = com.google.protobuf.MapField.newMapField( + EnvironmentVariablesDefaultEntryHolder.defaultEntry); + mutable_bitField0_ |= 0x00000020; + } + com.google.protobuf.MapEntry + environmentVariables__ = input.readMessage( + EnvironmentVariablesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + environmentVariables_.getMutableMap().put( + environmentVariables__.getKey(), environmentVariables__.getValue()); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 3: + return internalGetLabels(); + case 4: + return internalGetAnnotations(); + case 6: + return internalGetEnvironmentVariables(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.Agent.TaskExecutionMetadata.class, flyteidl.admin.Agent.TaskExecutionMetadata.Builder.class); + } + + private int bitField0_; + public static final int TASK_EXECUTION_ID_FIELD_NUMBER = 1; + private flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier taskExecutionId_; + /** + *
+     * ID of the task execution
+     * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public boolean hasTaskExecutionId() { + return taskExecutionId_ != null; + } + /** + *
+     * ID of the task execution
+     * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier getTaskExecutionId() { + return taskExecutionId_ == null ? flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.getDefaultInstance() : taskExecutionId_; + } + /** + *
+     * ID of the task execution
+     * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifierOrBuilder getTaskExecutionIdOrBuilder() { + return getTaskExecutionId(); + } + + public static final int NAMESPACE_FIELD_NUMBER = 2; + private volatile java.lang.Object namespace_; + /** + *
+     * k8s namespace where the task is executed in
+     * 
+ * + * string namespace = 2; + */ + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namespace_ = s; + return s; + } + } + /** + *
+     * k8s namespace where the task is executed in
+     * 
+ * + * string namespace = 2; + */ + public com.google.protobuf.ByteString + getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LABELS_FIELD_NUMBER = 3; + private static final class LabelsDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_LabelsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> labels_; + private com.google.protobuf.MapField + internalGetLabels() { + if (labels_ == null) { + return com.google.protobuf.MapField.emptyMapField( + LabelsDefaultEntryHolder.defaultEntry); + } + return labels_; + } + + public int getLabelsCount() { + return internalGetLabels().getMap().size(); + } + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + + public boolean containsLabels( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetLabels().getMap().containsKey(key); + } + /** + * Use {@link #getLabelsMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getLabels() { + return getLabelsMap(); + } + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + + public java.util.Map getLabelsMap() { + return internalGetLabels().getMap(); + } + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + + public java.lang.String getLabelsOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetLabels().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * Labels attached to the task execution
+     * 
+ * + * map<string, string> labels = 3; + */ + + public java.lang.String getLabelsOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetLabels().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int ANNOTATIONS_FIELD_NUMBER = 4; + private static final class AnnotationsDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_AnnotationsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> annotations_; + private com.google.protobuf.MapField + internalGetAnnotations() { + if (annotations_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AnnotationsDefaultEntryHolder.defaultEntry); + } + return annotations_; + } + + public int getAnnotationsCount() { + return internalGetAnnotations().getMap().size(); + } + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + + public boolean containsAnnotations( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetAnnotations().getMap().containsKey(key); + } + /** + * Use {@link #getAnnotationsMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getAnnotations() { + return getAnnotationsMap(); + } + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + + public java.util.Map getAnnotationsMap() { + return internalGetAnnotations().getMap(); + } + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + + public java.lang.String getAnnotationsOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetAnnotations().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * Annotations attached to the task execution
+     * 
+ * + * map<string, string> annotations = 4; + */ + + public java.lang.String getAnnotationsOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetAnnotations().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int K8S_SERVICE_ACCOUNT_FIELD_NUMBER = 5; + private volatile java.lang.Object k8SServiceAccount_; + /** + *
+     * k8s service account associated with the task execution
+     * 
+ * + * string k8s_service_account = 5; + */ + public java.lang.String getK8SServiceAccount() { + java.lang.Object ref = k8SServiceAccount_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + k8SServiceAccount_ = s; + return s; + } + } + /** + *
+     * k8s service account associated with the task execution
+     * 
+ * + * string k8s_service_account = 5; + */ + public com.google.protobuf.ByteString + getK8SServiceAccountBytes() { + java.lang.Object ref = k8SServiceAccount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + k8SServiceAccount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ENVIRONMENT_VARIABLES_FIELD_NUMBER = 6; + private static final class EnvironmentVariablesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_EnvironmentVariablesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> environmentVariables_; + private com.google.protobuf.MapField + internalGetEnvironmentVariables() { + if (environmentVariables_ == null) { + return com.google.protobuf.MapField.emptyMapField( + EnvironmentVariablesDefaultEntryHolder.defaultEntry); + } + return environmentVariables_; + } + + public int getEnvironmentVariablesCount() { + return internalGetEnvironmentVariables().getMap().size(); + } + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + + public boolean containsEnvironmentVariables( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetEnvironmentVariables().getMap().containsKey(key); + } + /** + * Use {@link #getEnvironmentVariablesMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getEnvironmentVariables() { + return getEnvironmentVariablesMap(); + } + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + + public java.util.Map getEnvironmentVariablesMap() { + return internalGetEnvironmentVariables().getMap(); + } + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + + public java.lang.String getEnvironmentVariablesOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetEnvironmentVariables().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * Environment variables attached to the task execution
+     * 
+ * + * map<string, string> environment_variables = 6; + */ + + public java.lang.String getEnvironmentVariablesOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetEnvironmentVariables().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (taskExecutionId_ != null) { + output.writeMessage(1, getTaskExecutionId()); + } + if (!getNamespaceBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, namespace_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetLabels(), + LabelsDefaultEntryHolder.defaultEntry, + 3); + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetAnnotations(), + AnnotationsDefaultEntryHolder.defaultEntry, + 4); + if (!getK8SServiceAccountBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, k8SServiceAccount_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetEnvironmentVariables(), + EnvironmentVariablesDefaultEntryHolder.defaultEntry, + 6); + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (taskExecutionId_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getTaskExecutionId()); + } + if (!getNamespaceBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, namespace_); + } + for (java.util.Map.Entry entry + : internalGetLabels().getMap().entrySet()) { + com.google.protobuf.MapEntry + labels__ = LabelsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, labels__); + } + for (java.util.Map.Entry entry + : internalGetAnnotations().getMap().entrySet()) { + com.google.protobuf.MapEntry + annotations__ = AnnotationsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, annotations__); + } + if (!getK8SServiceAccountBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, k8SServiceAccount_); + } + for (java.util.Map.Entry entry + : internalGetEnvironmentVariables().getMap().entrySet()) { + com.google.protobuf.MapEntry + environmentVariables__ = EnvironmentVariablesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, environmentVariables__); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.Agent.TaskExecutionMetadata)) { + return super.equals(obj); + } + flyteidl.admin.Agent.TaskExecutionMetadata other = (flyteidl.admin.Agent.TaskExecutionMetadata) obj; + + if (hasTaskExecutionId() != other.hasTaskExecutionId()) return false; + if (hasTaskExecutionId()) { + if (!getTaskExecutionId() + .equals(other.getTaskExecutionId())) return false; + } + if (!getNamespace() + .equals(other.getNamespace())) return false; + if (!internalGetLabels().equals( + other.internalGetLabels())) return false; + if (!internalGetAnnotations().equals( + other.internalGetAnnotations())) return false; + if (!getK8SServiceAccount() + .equals(other.getK8SServiceAccount())) return false; + if (!internalGetEnvironmentVariables().equals( + other.internalGetEnvironmentVariables())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTaskExecutionId()) { + hash = (37 * hash) + TASK_EXECUTION_ID_FIELD_NUMBER; + hash = (53 * hash) + getTaskExecutionId().hashCode(); + } + hash = (37 * hash) + NAMESPACE_FIELD_NUMBER; + hash = (53 * hash) + getNamespace().hashCode(); + if (!internalGetLabels().getMap().isEmpty()) { + hash = (37 * hash) + LABELS_FIELD_NUMBER; + hash = (53 * hash) + internalGetLabels().hashCode(); + } + if (!internalGetAnnotations().getMap().isEmpty()) { + hash = (37 * hash) + ANNOTATIONS_FIELD_NUMBER; + hash = (53 * hash) + internalGetAnnotations().hashCode(); + } + hash = (37 * hash) + K8S_SERVICE_ACCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getK8SServiceAccount().hashCode(); + if (!internalGetEnvironmentVariables().getMap().isEmpty()) { + hash = (37 * hash) + ENVIRONMENT_VARIABLES_FIELD_NUMBER; + hash = (53 * hash) + internalGetEnvironmentVariables().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.Agent.TaskExecutionMetadata parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.Agent.TaskExecutionMetadata prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Represents a subset of runtime task execution metadata that are relevant to external plugins.
+     * 
+ * + * Protobuf type {@code flyteidl.admin.TaskExecutionMetadata} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.TaskExecutionMetadata) + flyteidl.admin.Agent.TaskExecutionMetadataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 3: + return internalGetLabels(); + case 4: + return internalGetAnnotations(); + case 6: + return internalGetEnvironmentVariables(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 3: + return internalGetMutableLabels(); + case 4: + return internalGetMutableAnnotations(); + case 6: + return internalGetMutableEnvironmentVariables(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.Agent.TaskExecutionMetadata.class, flyteidl.admin.Agent.TaskExecutionMetadata.Builder.class); + } + + // Construct using flyteidl.admin.Agent.TaskExecutionMetadata.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (taskExecutionIdBuilder_ == null) { + taskExecutionId_ = null; + } else { + taskExecutionId_ = null; + taskExecutionIdBuilder_ = null; + } + namespace_ = ""; + + internalGetMutableLabels().clear(); + internalGetMutableAnnotations().clear(); + k8SServiceAccount_ = ""; + + internalGetMutableEnvironmentVariables().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.Agent.internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor; + } + + @java.lang.Override + public flyteidl.admin.Agent.TaskExecutionMetadata getDefaultInstanceForType() { + return flyteidl.admin.Agent.TaskExecutionMetadata.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.Agent.TaskExecutionMetadata build() { + flyteidl.admin.Agent.TaskExecutionMetadata result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.Agent.TaskExecutionMetadata buildPartial() { + flyteidl.admin.Agent.TaskExecutionMetadata result = new flyteidl.admin.Agent.TaskExecutionMetadata(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (taskExecutionIdBuilder_ == null) { + result.taskExecutionId_ = taskExecutionId_; + } else { + result.taskExecutionId_ = taskExecutionIdBuilder_.build(); + } + result.namespace_ = namespace_; + result.labels_ = internalGetLabels(); + result.labels_.makeImmutable(); + result.annotations_ = internalGetAnnotations(); + result.annotations_.makeImmutable(); + result.k8SServiceAccount_ = k8SServiceAccount_; + result.environmentVariables_ = internalGetEnvironmentVariables(); + result.environmentVariables_.makeImmutable(); + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.Agent.TaskExecutionMetadata) { + return mergeFrom((flyteidl.admin.Agent.TaskExecutionMetadata)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.Agent.TaskExecutionMetadata other) { + if (other == flyteidl.admin.Agent.TaskExecutionMetadata.getDefaultInstance()) return this; + if (other.hasTaskExecutionId()) { + mergeTaskExecutionId(other.getTaskExecutionId()); + } + if (!other.getNamespace().isEmpty()) { + namespace_ = other.namespace_; + onChanged(); + } + internalGetMutableLabels().mergeFrom( + other.internalGetLabels()); + internalGetMutableAnnotations().mergeFrom( + other.internalGetAnnotations()); + if (!other.getK8SServiceAccount().isEmpty()) { + k8SServiceAccount_ = other.k8SServiceAccount_; + onChanged(); + } + internalGetMutableEnvironmentVariables().mergeFrom( + other.internalGetEnvironmentVariables()); + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.Agent.TaskExecutionMetadata parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.Agent.TaskExecutionMetadata) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier taskExecutionId_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier, flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.Builder, flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifierOrBuilder> taskExecutionIdBuilder_; + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public boolean hasTaskExecutionId() { + return taskExecutionIdBuilder_ != null || taskExecutionId_ != null; + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier getTaskExecutionId() { + if (taskExecutionIdBuilder_ == null) { + return taskExecutionId_ == null ? flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.getDefaultInstance() : taskExecutionId_; + } else { + return taskExecutionIdBuilder_.getMessage(); + } + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public Builder setTaskExecutionId(flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier value) { + if (taskExecutionIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + taskExecutionId_ = value; + onChanged(); + } else { + taskExecutionIdBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public Builder setTaskExecutionId( + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.Builder builderForValue) { + if (taskExecutionIdBuilder_ == null) { + taskExecutionId_ = builderForValue.build(); + onChanged(); + } else { + taskExecutionIdBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public Builder mergeTaskExecutionId(flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier value) { + if (taskExecutionIdBuilder_ == null) { + if (taskExecutionId_ != null) { + taskExecutionId_ = + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.newBuilder(taskExecutionId_).mergeFrom(value).buildPartial(); + } else { + taskExecutionId_ = value; + } + onChanged(); + } else { + taskExecutionIdBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public Builder clearTaskExecutionId() { + if (taskExecutionIdBuilder_ == null) { + taskExecutionId_ = null; + onChanged(); + } else { + taskExecutionId_ = null; + taskExecutionIdBuilder_ = null; + } + + return this; + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.Builder getTaskExecutionIdBuilder() { + + onChanged(); + return getTaskExecutionIdFieldBuilder().getBuilder(); + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + public flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifierOrBuilder getTaskExecutionIdOrBuilder() { + if (taskExecutionIdBuilder_ != null) { + return taskExecutionIdBuilder_.getMessageOrBuilder(); + } else { + return taskExecutionId_ == null ? + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.getDefaultInstance() : taskExecutionId_; + } + } + /** + *
+       * ID of the task execution
+       * 
+ * + * .flyteidl.core.TaskExecutionIdentifier task_execution_id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier, flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.Builder, flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifierOrBuilder> + getTaskExecutionIdFieldBuilder() { + if (taskExecutionIdBuilder_ == null) { + taskExecutionIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier, flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifier.Builder, flyteidl.core.IdentifierOuterClass.TaskExecutionIdentifierOrBuilder>( + getTaskExecutionId(), + getParentForChildren(), + isClean()); + taskExecutionId_ = null; + } + return taskExecutionIdBuilder_; + } + + private java.lang.Object namespace_ = ""; + /** + *
+       * k8s namespace where the task is executed in
+       * 
+ * + * string namespace = 2; + */ + public java.lang.String getNamespace() { + java.lang.Object ref = namespace_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namespace_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * k8s namespace where the task is executed in
+       * 
+ * + * string namespace = 2; + */ + public com.google.protobuf.ByteString + getNamespaceBytes() { + java.lang.Object ref = namespace_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + namespace_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * k8s namespace where the task is executed in
+       * 
+ * + * string namespace = 2; + */ + public Builder setNamespace( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + namespace_ = value; + onChanged(); + return this; + } + /** + *
+       * k8s namespace where the task is executed in
+       * 
+ * + * string namespace = 2; + */ + public Builder clearNamespace() { + + namespace_ = getDefaultInstance().getNamespace(); + onChanged(); + return this; + } + /** + *
+       * k8s namespace where the task is executed in
+       * 
+ * + * string namespace = 2; + */ + public Builder setNamespaceBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + namespace_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> labels_; + private com.google.protobuf.MapField + internalGetLabels() { + if (labels_ == null) { + return com.google.protobuf.MapField.emptyMapField( + LabelsDefaultEntryHolder.defaultEntry); + } + return labels_; + } + private com.google.protobuf.MapField + internalGetMutableLabels() { + onChanged();; + if (labels_ == null) { + labels_ = com.google.protobuf.MapField.newMapField( + LabelsDefaultEntryHolder.defaultEntry); + } + if (!labels_.isMutable()) { + labels_ = labels_.copy(); + } + return labels_; + } + + public int getLabelsCount() { + return internalGetLabels().getMap().size(); + } + /** + *
+       * Labels attached to the task execution
+       * 
+ * + * map<string, string> labels = 3; + */ + + public boolean containsLabels( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetLabels().getMap().containsKey(key); + } + /** + * Use {@link #getLabelsMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getLabels() { + return getLabelsMap(); + } + /** + *
+       * Labels attached to the task execution
+       * 
+ * + * map<string, string> labels = 3; + */ + + public java.util.Map getLabelsMap() { + return internalGetLabels().getMap(); + } + /** + *
+       * Labels attached to the task execution
+       * 
+ * + * map<string, string> labels = 3; + */ + + public java.lang.String getLabelsOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetLabels().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+       * Labels attached to the task execution
+       * 
+ * + * map<string, string> labels = 3; + */ + + public java.lang.String getLabelsOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetLabels().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearLabels() { + internalGetMutableLabels().getMutableMap() + .clear(); + return this; + } + /** + *
+       * Labels attached to the task execution
+       * 
+ * + * map<string, string> labels = 3; + */ + + public Builder removeLabels( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + internalGetMutableLabels().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableLabels() { + return internalGetMutableLabels().getMutableMap(); + } + /** + *
+       * Labels attached to the task execution
+       * 
+ * + * map<string, string> labels = 3; + */ + public Builder putLabels( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new java.lang.NullPointerException(); } + if (value == null) { throw new java.lang.NullPointerException(); } + internalGetMutableLabels().getMutableMap() + .put(key, value); + return this; + } + /** + *
+       * Labels attached to the task execution
+       * 
+ * + * map<string, string> labels = 3; + */ + + public Builder putAllLabels( + java.util.Map values) { + internalGetMutableLabels().getMutableMap() + .putAll(values); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> annotations_; + private com.google.protobuf.MapField + internalGetAnnotations() { + if (annotations_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AnnotationsDefaultEntryHolder.defaultEntry); + } + return annotations_; + } + private com.google.protobuf.MapField + internalGetMutableAnnotations() { + onChanged();; + if (annotations_ == null) { + annotations_ = com.google.protobuf.MapField.newMapField( + AnnotationsDefaultEntryHolder.defaultEntry); + } + if (!annotations_.isMutable()) { + annotations_ = annotations_.copy(); + } + return annotations_; + } + + public int getAnnotationsCount() { + return internalGetAnnotations().getMap().size(); + } + /** + *
+       * Annotations attached to the task execution
+       * 
+ * + * map<string, string> annotations = 4; + */ + + public boolean containsAnnotations( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetAnnotations().getMap().containsKey(key); + } + /** + * Use {@link #getAnnotationsMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getAnnotations() { + return getAnnotationsMap(); + } + /** + *
+       * Annotations attached to the task execution
+       * 
+ * + * map<string, string> annotations = 4; + */ + + public java.util.Map getAnnotationsMap() { + return internalGetAnnotations().getMap(); + } + /** + *
+       * Annotations attached to the task execution
+       * 
+ * + * map<string, string> annotations = 4; + */ + + public java.lang.String getAnnotationsOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetAnnotations().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+       * Annotations attached to the task execution
+       * 
+ * + * map<string, string> annotations = 4; + */ + + public java.lang.String getAnnotationsOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetAnnotations().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearAnnotations() { + internalGetMutableAnnotations().getMutableMap() + .clear(); + return this; + } + /** + *
+       * Annotations attached to the task execution
+       * 
+ * + * map<string, string> annotations = 4; + */ + + public Builder removeAnnotations( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + internalGetMutableAnnotations().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableAnnotations() { + return internalGetMutableAnnotations().getMutableMap(); + } + /** + *
+       * Annotations attached to the task execution
+       * 
+ * + * map<string, string> annotations = 4; + */ + public Builder putAnnotations( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new java.lang.NullPointerException(); } + if (value == null) { throw new java.lang.NullPointerException(); } + internalGetMutableAnnotations().getMutableMap() + .put(key, value); + return this; + } + /** + *
+       * Annotations attached to the task execution
+       * 
+ * + * map<string, string> annotations = 4; + */ + + public Builder putAllAnnotations( + java.util.Map values) { + internalGetMutableAnnotations().getMutableMap() + .putAll(values); + return this; + } + + private java.lang.Object k8SServiceAccount_ = ""; + /** + *
+       * k8s service account associated with the task execution
+       * 
+ * + * string k8s_service_account = 5; + */ + public java.lang.String getK8SServiceAccount() { + java.lang.Object ref = k8SServiceAccount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + k8SServiceAccount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * k8s service account associated with the task execution
+       * 
+ * + * string k8s_service_account = 5; + */ + public com.google.protobuf.ByteString + getK8SServiceAccountBytes() { + java.lang.Object ref = k8SServiceAccount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + k8SServiceAccount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * k8s service account associated with the task execution
+       * 
+ * + * string k8s_service_account = 5; + */ + public Builder setK8SServiceAccount( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + k8SServiceAccount_ = value; + onChanged(); + return this; + } + /** + *
+       * k8s service account associated with the task execution
+       * 
+ * + * string k8s_service_account = 5; + */ + public Builder clearK8SServiceAccount() { + + k8SServiceAccount_ = getDefaultInstance().getK8SServiceAccount(); + onChanged(); + return this; + } + /** + *
+       * k8s service account associated with the task execution
+       * 
+ * + * string k8s_service_account = 5; + */ + public Builder setK8SServiceAccountBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + k8SServiceAccount_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> environmentVariables_; + private com.google.protobuf.MapField + internalGetEnvironmentVariables() { + if (environmentVariables_ == null) { + return com.google.protobuf.MapField.emptyMapField( + EnvironmentVariablesDefaultEntryHolder.defaultEntry); + } + return environmentVariables_; + } + private com.google.protobuf.MapField + internalGetMutableEnvironmentVariables() { + onChanged();; + if (environmentVariables_ == null) { + environmentVariables_ = com.google.protobuf.MapField.newMapField( + EnvironmentVariablesDefaultEntryHolder.defaultEntry); + } + if (!environmentVariables_.isMutable()) { + environmentVariables_ = environmentVariables_.copy(); + } + return environmentVariables_; + } + + public int getEnvironmentVariablesCount() { + return internalGetEnvironmentVariables().getMap().size(); + } + /** + *
+       * Environment variables attached to the task execution
+       * 
+ * + * map<string, string> environment_variables = 6; + */ + + public boolean containsEnvironmentVariables( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + return internalGetEnvironmentVariables().getMap().containsKey(key); + } + /** + * Use {@link #getEnvironmentVariablesMap()} instead. + */ + @java.lang.Deprecated + public java.util.Map getEnvironmentVariables() { + return getEnvironmentVariablesMap(); + } + /** + *
+       * Environment variables attached to the task execution
+       * 
+ * + * map<string, string> environment_variables = 6; + */ + + public java.util.Map getEnvironmentVariablesMap() { + return internalGetEnvironmentVariables().getMap(); + } + /** + *
+       * Environment variables attached to the task execution
+       * 
+ * + * map<string, string> environment_variables = 6; + */ + + public java.lang.String getEnvironmentVariablesOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetEnvironmentVariables().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+       * Environment variables attached to the task execution
+       * 
+ * + * map<string, string> environment_variables = 6; + */ + + public java.lang.String getEnvironmentVariablesOrThrow( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + java.util.Map map = + internalGetEnvironmentVariables().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearEnvironmentVariables() { + internalGetMutableEnvironmentVariables().getMutableMap() + .clear(); + return this; + } + /** + *
+       * Environment variables attached to the task execution
+       * 
+ * + * map<string, string> environment_variables = 6; + */ + + public Builder removeEnvironmentVariables( + java.lang.String key) { + if (key == null) { throw new java.lang.NullPointerException(); } + internalGetMutableEnvironmentVariables().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableEnvironmentVariables() { + return internalGetMutableEnvironmentVariables().getMutableMap(); + } + /** + *
+       * Environment variables attached to the task execution
+       * 
+ * + * map<string, string> environment_variables = 6; + */ + public Builder putEnvironmentVariables( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new java.lang.NullPointerException(); } + if (value == null) { throw new java.lang.NullPointerException(); } + internalGetMutableEnvironmentVariables().getMutableMap() + .put(key, value); + return this; + } + /** + *
+       * Environment variables attached to the task execution
+       * 
+ * + * map<string, string> environment_variables = 6; + */ + + public Builder putAllEnvironmentVariables( + java.util.Map values) { + internalGetMutableEnvironmentVariables().getMutableMap() + .putAll(values); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.TaskExecutionMetadata) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.TaskExecutionMetadata) + private static final flyteidl.admin.Agent.TaskExecutionMetadata DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.Agent.TaskExecutionMetadata(); + } + + public static flyteidl.admin.Agent.TaskExecutionMetadata getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TaskExecutionMetadata parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new TaskExecutionMetadata(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.Agent.TaskExecutionMetadata getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + public interface CreateTaskRequestOrBuilder extends // @@protoc_insertion_point(interface_extends:flyteidl.admin.CreateTaskRequest) com.google.protobuf.MessageOrBuilder { @@ -220,6 +2302,31 @@ public interface CreateTaskRequestOrBuilder extends */ com.google.protobuf.ByteString getOutputPrefixBytes(); + + /** + *
+     * subset of runtime task execution metadata.
+     * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + boolean hasTaskExecutionMetadata(); + /** + *
+     * subset of runtime task execution metadata.
+     * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + flyteidl.admin.Agent.TaskExecutionMetadata getTaskExecutionMetadata(); + /** + *
+     * subset of runtime task execution metadata.
+     * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + flyteidl.admin.Agent.TaskExecutionMetadataOrBuilder getTaskExecutionMetadataOrBuilder(); } /** *
@@ -297,6 +2404,19 @@ private CreateTaskRequest(
               outputPrefix_ = s;
               break;
             }
+            case 34: {
+              flyteidl.admin.Agent.TaskExecutionMetadata.Builder subBuilder = null;
+              if (taskExecutionMetadata_ != null) {
+                subBuilder = taskExecutionMetadata_.toBuilder();
+              }
+              taskExecutionMetadata_ = input.readMessage(flyteidl.admin.Agent.TaskExecutionMetadata.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(taskExecutionMetadata_);
+                taskExecutionMetadata_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -443,6 +2563,39 @@ public java.lang.String getOutputPrefix() {
       }
     }
 
+    public static final int TASK_EXECUTION_METADATA_FIELD_NUMBER = 4;
+    private flyteidl.admin.Agent.TaskExecutionMetadata taskExecutionMetadata_;
+    /**
+     * 
+     * subset of runtime task execution metadata.
+     * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public boolean hasTaskExecutionMetadata() { + return taskExecutionMetadata_ != null; + } + /** + *
+     * subset of runtime task execution metadata.
+     * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public flyteidl.admin.Agent.TaskExecutionMetadata getTaskExecutionMetadata() { + return taskExecutionMetadata_ == null ? flyteidl.admin.Agent.TaskExecutionMetadata.getDefaultInstance() : taskExecutionMetadata_; + } + /** + *
+     * subset of runtime task execution metadata.
+     * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public flyteidl.admin.Agent.TaskExecutionMetadataOrBuilder getTaskExecutionMetadataOrBuilder() { + return getTaskExecutionMetadata(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -466,6 +2619,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!getOutputPrefixBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, outputPrefix_); } + if (taskExecutionMetadata_ != null) { + output.writeMessage(4, getTaskExecutionMetadata()); + } unknownFields.writeTo(output); } @@ -486,6 +2642,10 @@ public int getSerializedSize() { if (!getOutputPrefixBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, outputPrefix_); } + if (taskExecutionMetadata_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getTaskExecutionMetadata()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -513,6 +2673,11 @@ public boolean equals(final java.lang.Object obj) { } if (!getOutputPrefix() .equals(other.getOutputPrefix())) return false; + if (hasTaskExecutionMetadata() != other.hasTaskExecutionMetadata()) return false; + if (hasTaskExecutionMetadata()) { + if (!getTaskExecutionMetadata() + .equals(other.getTaskExecutionMetadata())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -534,6 +2699,10 @@ public int hashCode() { } hash = (37 * hash) + OUTPUT_PREFIX_FIELD_NUMBER; hash = (53 * hash) + getOutputPrefix().hashCode(); + if (hasTaskExecutionMetadata()) { + hash = (37 * hash) + TASK_EXECUTION_METADATA_FIELD_NUMBER; + hash = (53 * hash) + getTaskExecutionMetadata().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -685,6 +2854,12 @@ public Builder clear() { } outputPrefix_ = ""; + if (taskExecutionMetadataBuilder_ == null) { + taskExecutionMetadata_ = null; + } else { + taskExecutionMetadata_ = null; + taskExecutionMetadataBuilder_ = null; + } return this; } @@ -722,6 +2897,11 @@ public flyteidl.admin.Agent.CreateTaskRequest buildPartial() { result.template_ = templateBuilder_.build(); } result.outputPrefix_ = outputPrefix_; + if (taskExecutionMetadataBuilder_ == null) { + result.taskExecutionMetadata_ = taskExecutionMetadata_; + } else { + result.taskExecutionMetadata_ = taskExecutionMetadataBuilder_.build(); + } onBuilt(); return result; } @@ -780,6 +2960,9 @@ public Builder mergeFrom(flyteidl.admin.Agent.CreateTaskRequest other) { outputPrefix_ = other.outputPrefix_; onChanged(); } + if (other.hasTaskExecutionMetadata()) { + mergeTaskExecutionMetadata(other.getTaskExecutionMetadata()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1221,6 +3404,159 @@ public Builder setOutputPrefixBytes( onChanged(); return this; } + + private flyteidl.admin.Agent.TaskExecutionMetadata taskExecutionMetadata_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.Agent.TaskExecutionMetadata, flyteidl.admin.Agent.TaskExecutionMetadata.Builder, flyteidl.admin.Agent.TaskExecutionMetadataOrBuilder> taskExecutionMetadataBuilder_; + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public boolean hasTaskExecutionMetadata() { + return taskExecutionMetadataBuilder_ != null || taskExecutionMetadata_ != null; + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public flyteidl.admin.Agent.TaskExecutionMetadata getTaskExecutionMetadata() { + if (taskExecutionMetadataBuilder_ == null) { + return taskExecutionMetadata_ == null ? flyteidl.admin.Agent.TaskExecutionMetadata.getDefaultInstance() : taskExecutionMetadata_; + } else { + return taskExecutionMetadataBuilder_.getMessage(); + } + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public Builder setTaskExecutionMetadata(flyteidl.admin.Agent.TaskExecutionMetadata value) { + if (taskExecutionMetadataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + taskExecutionMetadata_ = value; + onChanged(); + } else { + taskExecutionMetadataBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public Builder setTaskExecutionMetadata( + flyteidl.admin.Agent.TaskExecutionMetadata.Builder builderForValue) { + if (taskExecutionMetadataBuilder_ == null) { + taskExecutionMetadata_ = builderForValue.build(); + onChanged(); + } else { + taskExecutionMetadataBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public Builder mergeTaskExecutionMetadata(flyteidl.admin.Agent.TaskExecutionMetadata value) { + if (taskExecutionMetadataBuilder_ == null) { + if (taskExecutionMetadata_ != null) { + taskExecutionMetadata_ = + flyteidl.admin.Agent.TaskExecutionMetadata.newBuilder(taskExecutionMetadata_).mergeFrom(value).buildPartial(); + } else { + taskExecutionMetadata_ = value; + } + onChanged(); + } else { + taskExecutionMetadataBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public Builder clearTaskExecutionMetadata() { + if (taskExecutionMetadataBuilder_ == null) { + taskExecutionMetadata_ = null; + onChanged(); + } else { + taskExecutionMetadata_ = null; + taskExecutionMetadataBuilder_ = null; + } + + return this; + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public flyteidl.admin.Agent.TaskExecutionMetadata.Builder getTaskExecutionMetadataBuilder() { + + onChanged(); + return getTaskExecutionMetadataFieldBuilder().getBuilder(); + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + public flyteidl.admin.Agent.TaskExecutionMetadataOrBuilder getTaskExecutionMetadataOrBuilder() { + if (taskExecutionMetadataBuilder_ != null) { + return taskExecutionMetadataBuilder_.getMessageOrBuilder(); + } else { + return taskExecutionMetadata_ == null ? + flyteidl.admin.Agent.TaskExecutionMetadata.getDefaultInstance() : taskExecutionMetadata_; + } + } + /** + *
+       * subset of runtime task execution metadata.
+       * 
+ * + * .flyteidl.admin.TaskExecutionMetadata task_execution_metadata = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.Agent.TaskExecutionMetadata, flyteidl.admin.Agent.TaskExecutionMetadata.Builder, flyteidl.admin.Agent.TaskExecutionMetadataOrBuilder> + getTaskExecutionMetadataFieldBuilder() { + if (taskExecutionMetadataBuilder_ == null) { + taskExecutionMetadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.Agent.TaskExecutionMetadata, flyteidl.admin.Agent.TaskExecutionMetadata.Builder, flyteidl.admin.Agent.TaskExecutionMetadataOrBuilder>( + getTaskExecutionMetadata(), + getParentForChildren(), + isClean()); + taskExecutionMetadata_ = null; + } + return taskExecutionMetadataBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -4997,6 +7333,26 @@ public flyteidl.admin.Agent.DeleteTaskResponse getDefaultInstanceForType() { } + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_TaskExecutionMetadata_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_TaskExecutionMetadata_LabelsEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_TaskExecutionMetadata_LabelsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_TaskExecutionMetadata_AnnotationsEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_TaskExecutionMetadata_AnnotationsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_TaskExecutionMetadata_EnvironmentVariablesEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_TaskExecutionMetadata_EnvironmentVariablesEntry_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_flyteidl_admin_CreateTaskRequest_descriptor; private static final @@ -5044,23 +7400,39 @@ public flyteidl.admin.Agent.DeleteTaskResponse getDefaultInstanceForType() { "\n\032flyteidl/admin/agent.proto\022\016flyteidl.a" + "dmin\032\034flyteidl/core/literals.proto\032\031flyt" + "eidl/core/tasks.proto\032\035flyteidl/core/int" + - "erface.proto\"\204\001\n\021CreateTaskRequest\022)\n\006in" + - "puts\030\001 \001(\0132\031.flyteidl.core.LiteralMap\022-\n" + - "\010template\030\002 \001(\0132\033.flyteidl.core.TaskTemp" + - "late\022\025\n\routput_prefix\030\003 \001(\t\"+\n\022CreateTas" + - "kResponse\022\025\n\rresource_meta\030\001 \001(\014\":\n\016GetT" + - "askRequest\022\021\n\ttask_type\030\001 \001(\t\022\025\n\rresourc" + - "e_meta\030\002 \001(\014\"=\n\017GetTaskResponse\022*\n\010resou" + - "rce\030\001 \001(\0132\030.flyteidl.admin.Resource\"\\\n\010R" + - "esource\022$\n\005state\030\001 \001(\0162\025.flyteidl.admin." + - "State\022*\n\007outputs\030\002 \001(\0132\031.flyteidl.core.L" + - "iteralMap\"=\n\021DeleteTaskRequest\022\021\n\ttask_t" + - "ype\030\001 \001(\t\022\025\n\rresource_meta\030\002 \001(\014\"\024\n\022Dele" + - "teTaskResponse*^\n\005State\022\025\n\021RETRYABLE_FAI" + - "LURE\020\000\022\025\n\021PERMANENT_FAILURE\020\001\022\013\n\007PENDING" + - "\020\002\022\013\n\007RUNNING\020\003\022\r\n\tSUCCEEDED\020\004B7Z5github" + - ".com/flyteorg/flyteidl/gen/pb-go/flyteid" + - "l/adminb\006proto3" + "erface.proto\032\036flyteidl/core/identifier.p" + + "roto\"\232\004\n\025TaskExecutionMetadata\022A\n\021task_e" + + "xecution_id\030\001 \001(\0132&.flyteidl.core.TaskEx" + + "ecutionIdentifier\022\021\n\tnamespace\030\002 \001(\t\022A\n\006" + + "labels\030\003 \003(\01321.flyteidl.admin.TaskExecut" + + "ionMetadata.LabelsEntry\022K\n\013annotations\030\004" + + " \003(\01326.flyteidl.admin.TaskExecutionMetad" + + "ata.AnnotationsEntry\022\033\n\023k8s_service_acco" + + "unt\030\005 \001(\t\022^\n\025environment_variables\030\006 \003(\013" + + "2?.flyteidl.admin.TaskExecutionMetadata." + + "EnvironmentVariablesEntry\032-\n\013LabelsEntry" + + "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\0322\n\020Anno" + + "tationsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t" + + ":\0028\001\032;\n\031EnvironmentVariablesEntry\022\013\n\003key" + + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\314\001\n\021CreateTask" + + "Request\022)\n\006inputs\030\001 \001(\0132\031.flyteidl.core." + + "LiteralMap\022-\n\010template\030\002 \001(\0132\033.flyteidl." + + "core.TaskTemplate\022\025\n\routput_prefix\030\003 \001(\t" + + "\022F\n\027task_execution_metadata\030\004 \001(\0132%.flyt" + + "eidl.admin.TaskExecutionMetadata\"+\n\022Crea" + + "teTaskResponse\022\025\n\rresource_meta\030\001 \001(\014\":\n" + + "\016GetTaskRequest\022\021\n\ttask_type\030\001 \001(\t\022\025\n\rre" + + "source_meta\030\002 \001(\014\"=\n\017GetTaskResponse\022*\n\010" + + "resource\030\001 \001(\0132\030.flyteidl.admin.Resource" + + "\"\\\n\010Resource\022$\n\005state\030\001 \001(\0162\025.flyteidl.a" + + "dmin.State\022*\n\007outputs\030\002 \001(\0132\031.flyteidl.c" + + "ore.LiteralMap\"=\n\021DeleteTaskRequest\022\021\n\tt" + + "ask_type\030\001 \001(\t\022\025\n\rresource_meta\030\002 \001(\014\"\024\n" + + "\022DeleteTaskResponse*^\n\005State\022\025\n\021RETRYABL" + + "E_FAILURE\020\000\022\025\n\021PERMANENT_FAILURE\020\001\022\013\n\007PE" + + "NDING\020\002\022\013\n\007RUNNING\020\003\022\r\n\tSUCCEEDED\020\004B7Z5g" + + "ithub.com/flyteorg/flyteidl/gen/pb-go/fl" + + "yteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -5076,45 +7448,70 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( flyteidl.core.Literals.getDescriptor(), flyteidl.core.Tasks.getDescriptor(), flyteidl.core.Interface.getDescriptor(), + flyteidl.core.IdentifierOuterClass.getDescriptor(), }, assigner); - internal_static_flyteidl_admin_CreateTaskRequest_descriptor = + internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor = getDescriptor().getMessageTypes().get(0); + internal_static_flyteidl_admin_TaskExecutionMetadata_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor, + new java.lang.String[] { "TaskExecutionId", "Namespace", "Labels", "Annotations", "K8SServiceAccount", "EnvironmentVariables", }); + internal_static_flyteidl_admin_TaskExecutionMetadata_LabelsEntry_descriptor = + internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor.getNestedTypes().get(0); + internal_static_flyteidl_admin_TaskExecutionMetadata_LabelsEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_TaskExecutionMetadata_LabelsEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_flyteidl_admin_TaskExecutionMetadata_AnnotationsEntry_descriptor = + internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor.getNestedTypes().get(1); + internal_static_flyteidl_admin_TaskExecutionMetadata_AnnotationsEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_TaskExecutionMetadata_AnnotationsEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_flyteidl_admin_TaskExecutionMetadata_EnvironmentVariablesEntry_descriptor = + internal_static_flyteidl_admin_TaskExecutionMetadata_descriptor.getNestedTypes().get(2); + internal_static_flyteidl_admin_TaskExecutionMetadata_EnvironmentVariablesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_TaskExecutionMetadata_EnvironmentVariablesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_flyteidl_admin_CreateTaskRequest_descriptor = + getDescriptor().getMessageTypes().get(1); internal_static_flyteidl_admin_CreateTaskRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_CreateTaskRequest_descriptor, - new java.lang.String[] { "Inputs", "Template", "OutputPrefix", }); + new java.lang.String[] { "Inputs", "Template", "OutputPrefix", "TaskExecutionMetadata", }); internal_static_flyteidl_admin_CreateTaskResponse_descriptor = - getDescriptor().getMessageTypes().get(1); + getDescriptor().getMessageTypes().get(2); internal_static_flyteidl_admin_CreateTaskResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_CreateTaskResponse_descriptor, new java.lang.String[] { "ResourceMeta", }); internal_static_flyteidl_admin_GetTaskRequest_descriptor = - getDescriptor().getMessageTypes().get(2); + getDescriptor().getMessageTypes().get(3); internal_static_flyteidl_admin_GetTaskRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_GetTaskRequest_descriptor, new java.lang.String[] { "TaskType", "ResourceMeta", }); internal_static_flyteidl_admin_GetTaskResponse_descriptor = - getDescriptor().getMessageTypes().get(3); + getDescriptor().getMessageTypes().get(4); internal_static_flyteidl_admin_GetTaskResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_GetTaskResponse_descriptor, new java.lang.String[] { "Resource", }); internal_static_flyteidl_admin_Resource_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(5); internal_static_flyteidl_admin_Resource_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_Resource_descriptor, new java.lang.String[] { "State", "Outputs", }); internal_static_flyteidl_admin_DeleteTaskRequest_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(6); internal_static_flyteidl_admin_DeleteTaskRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_DeleteTaskRequest_descriptor, new java.lang.String[] { "TaskType", "ResourceMeta", }); internal_static_flyteidl_admin_DeleteTaskResponse_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(7); internal_static_flyteidl_admin_DeleteTaskResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_DeleteTaskResponse_descriptor, @@ -5122,6 +7519,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( flyteidl.core.Literals.getDescriptor(); flyteidl.core.Tasks.getDescriptor(); flyteidl.core.Interface.getDescriptor(); + flyteidl.core.IdentifierOuterClass.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/gen/pb-js/flyteidl.d.ts b/gen/pb-js/flyteidl.d.ts index 874c0072d..91867c694 100644 --- a/gen/pb-js/flyteidl.d.ts +++ b/gen/pb-js/flyteidl.d.ts @@ -7585,6 +7585,88 @@ export namespace flyteidl { SUCCEEDED = 4 } + /** Properties of a TaskExecutionMetadata. */ + interface ITaskExecutionMetadata { + + /** TaskExecutionMetadata taskExecutionId */ + taskExecutionId?: (flyteidl.core.ITaskExecutionIdentifier|null); + + /** TaskExecutionMetadata namespace */ + namespace?: (string|null); + + /** TaskExecutionMetadata labels */ + labels?: ({ [k: string]: string }|null); + + /** TaskExecutionMetadata annotations */ + annotations?: ({ [k: string]: string }|null); + + /** TaskExecutionMetadata k8sServiceAccount */ + k8sServiceAccount?: (string|null); + + /** TaskExecutionMetadata environmentVariables */ + environmentVariables?: ({ [k: string]: string }|null); + } + + /** Represents a TaskExecutionMetadata. */ + class TaskExecutionMetadata implements ITaskExecutionMetadata { + + /** + * Constructs a new TaskExecutionMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.admin.ITaskExecutionMetadata); + + /** TaskExecutionMetadata taskExecutionId. */ + public taskExecutionId?: (flyteidl.core.ITaskExecutionIdentifier|null); + + /** TaskExecutionMetadata namespace. */ + public namespace: string; + + /** TaskExecutionMetadata labels. */ + public labels: { [k: string]: string }; + + /** TaskExecutionMetadata annotations. */ + public annotations: { [k: string]: string }; + + /** TaskExecutionMetadata k8sServiceAccount. */ + public k8sServiceAccount: string; + + /** TaskExecutionMetadata environmentVariables. */ + public environmentVariables: { [k: string]: string }; + + /** + * Creates a new TaskExecutionMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns TaskExecutionMetadata instance + */ + public static create(properties?: flyteidl.admin.ITaskExecutionMetadata): flyteidl.admin.TaskExecutionMetadata; + + /** + * Encodes the specified TaskExecutionMetadata message. Does not implicitly {@link flyteidl.admin.TaskExecutionMetadata.verify|verify} messages. + * @param message TaskExecutionMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.admin.ITaskExecutionMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a TaskExecutionMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns TaskExecutionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.TaskExecutionMetadata; + + /** + * Verifies a TaskExecutionMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of a CreateTaskRequest. */ interface ICreateTaskRequest { @@ -7596,6 +7678,9 @@ export namespace flyteidl { /** CreateTaskRequest outputPrefix */ outputPrefix?: (string|null); + + /** CreateTaskRequest taskExecutionMetadata */ + taskExecutionMetadata?: (flyteidl.admin.ITaskExecutionMetadata|null); } /** Represents a CreateTaskRequest. */ @@ -7616,6 +7701,9 @@ export namespace flyteidl { /** CreateTaskRequest outputPrefix. */ public outputPrefix: string; + /** CreateTaskRequest taskExecutionMetadata. */ + public taskExecutionMetadata?: (flyteidl.admin.ITaskExecutionMetadata|null); + /** * Creates a new CreateTaskRequest instance using the specified properties. * @param [properties] Properties to set diff --git a/gen/pb-js/flyteidl.js b/gen/pb-js/flyteidl.js index 5d16ba0b4..a81c28f40 100644 --- a/gen/pb-js/flyteidl.js +++ b/gen/pb-js/flyteidl.js @@ -18511,6 +18511,239 @@ return values; })(); + admin.TaskExecutionMetadata = (function() { + + /** + * Properties of a TaskExecutionMetadata. + * @memberof flyteidl.admin + * @interface ITaskExecutionMetadata + * @property {flyteidl.core.ITaskExecutionIdentifier|null} [taskExecutionId] TaskExecutionMetadata taskExecutionId + * @property {string|null} [namespace] TaskExecutionMetadata namespace + * @property {Object.|null} [labels] TaskExecutionMetadata labels + * @property {Object.|null} [annotations] TaskExecutionMetadata annotations + * @property {string|null} [k8sServiceAccount] TaskExecutionMetadata k8sServiceAccount + * @property {Object.|null} [environmentVariables] TaskExecutionMetadata environmentVariables + */ + + /** + * Constructs a new TaskExecutionMetadata. + * @memberof flyteidl.admin + * @classdesc Represents a TaskExecutionMetadata. + * @implements ITaskExecutionMetadata + * @constructor + * @param {flyteidl.admin.ITaskExecutionMetadata=} [properties] Properties to set + */ + function TaskExecutionMetadata(properties) { + this.labels = {}; + this.annotations = {}; + this.environmentVariables = {}; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TaskExecutionMetadata taskExecutionId. + * @member {flyteidl.core.ITaskExecutionIdentifier|null|undefined} taskExecutionId + * @memberof flyteidl.admin.TaskExecutionMetadata + * @instance + */ + TaskExecutionMetadata.prototype.taskExecutionId = null; + + /** + * TaskExecutionMetadata namespace. + * @member {string} namespace + * @memberof flyteidl.admin.TaskExecutionMetadata + * @instance + */ + TaskExecutionMetadata.prototype.namespace = ""; + + /** + * TaskExecutionMetadata labels. + * @member {Object.} labels + * @memberof flyteidl.admin.TaskExecutionMetadata + * @instance + */ + TaskExecutionMetadata.prototype.labels = $util.emptyObject; + + /** + * TaskExecutionMetadata annotations. + * @member {Object.} annotations + * @memberof flyteidl.admin.TaskExecutionMetadata + * @instance + */ + TaskExecutionMetadata.prototype.annotations = $util.emptyObject; + + /** + * TaskExecutionMetadata k8sServiceAccount. + * @member {string} k8sServiceAccount + * @memberof flyteidl.admin.TaskExecutionMetadata + * @instance + */ + TaskExecutionMetadata.prototype.k8sServiceAccount = ""; + + /** + * TaskExecutionMetadata environmentVariables. + * @member {Object.} environmentVariables + * @memberof flyteidl.admin.TaskExecutionMetadata + * @instance + */ + TaskExecutionMetadata.prototype.environmentVariables = $util.emptyObject; + + /** + * Creates a new TaskExecutionMetadata instance using the specified properties. + * @function create + * @memberof flyteidl.admin.TaskExecutionMetadata + * @static + * @param {flyteidl.admin.ITaskExecutionMetadata=} [properties] Properties to set + * @returns {flyteidl.admin.TaskExecutionMetadata} TaskExecutionMetadata instance + */ + TaskExecutionMetadata.create = function create(properties) { + return new TaskExecutionMetadata(properties); + }; + + /** + * Encodes the specified TaskExecutionMetadata message. Does not implicitly {@link flyteidl.admin.TaskExecutionMetadata.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.TaskExecutionMetadata + * @static + * @param {flyteidl.admin.ITaskExecutionMetadata} message TaskExecutionMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TaskExecutionMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.taskExecutionId != null && message.hasOwnProperty("taskExecutionId")) + $root.flyteidl.core.TaskExecutionIdentifier.encode(message.taskExecutionId, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.namespace != null && message.hasOwnProperty("namespace")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.namespace); + if (message.labels != null && message.hasOwnProperty("labels")) + for (var keys = Object.keys(message.labels), i = 0; i < keys.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.labels[keys[i]]).ldelim(); + if (message.annotations != null && message.hasOwnProperty("annotations")) + for (var keys = Object.keys(message.annotations), i = 0; i < keys.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.annotations[keys[i]]).ldelim(); + if (message.k8sServiceAccount != null && message.hasOwnProperty("k8sServiceAccount")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.k8sServiceAccount); + if (message.environmentVariables != null && message.hasOwnProperty("environmentVariables")) + for (var keys = Object.keys(message.environmentVariables), i = 0; i < keys.length; ++i) + writer.uint32(/* id 6, wireType 2 =*/50).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.environmentVariables[keys[i]]).ldelim(); + return writer; + }; + + /** + * Decodes a TaskExecutionMetadata message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.TaskExecutionMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.TaskExecutionMetadata} TaskExecutionMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TaskExecutionMetadata.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.TaskExecutionMetadata(), key; + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.taskExecutionId = $root.flyteidl.core.TaskExecutionIdentifier.decode(reader, reader.uint32()); + break; + case 2: + message.namespace = reader.string(); + break; + case 3: + reader.skip().pos++; + if (message.labels === $util.emptyObject) + message.labels = {}; + key = reader.string(); + reader.pos++; + message.labels[key] = reader.string(); + break; + case 4: + reader.skip().pos++; + if (message.annotations === $util.emptyObject) + message.annotations = {}; + key = reader.string(); + reader.pos++; + message.annotations[key] = reader.string(); + break; + case 5: + message.k8sServiceAccount = reader.string(); + break; + case 6: + reader.skip().pos++; + if (message.environmentVariables === $util.emptyObject) + message.environmentVariables = {}; + key = reader.string(); + reader.pos++; + message.environmentVariables[key] = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a TaskExecutionMetadata message. + * @function verify + * @memberof flyteidl.admin.TaskExecutionMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TaskExecutionMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.taskExecutionId != null && message.hasOwnProperty("taskExecutionId")) { + var error = $root.flyteidl.core.TaskExecutionIdentifier.verify(message.taskExecutionId); + if (error) + return "taskExecutionId." + error; + } + if (message.namespace != null && message.hasOwnProperty("namespace")) + if (!$util.isString(message.namespace)) + return "namespace: string expected"; + if (message.labels != null && message.hasOwnProperty("labels")) { + if (!$util.isObject(message.labels)) + return "labels: object expected"; + var key = Object.keys(message.labels); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.labels[key[i]])) + return "labels: string{k:string} expected"; + } + if (message.annotations != null && message.hasOwnProperty("annotations")) { + if (!$util.isObject(message.annotations)) + return "annotations: object expected"; + var key = Object.keys(message.annotations); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.annotations[key[i]])) + return "annotations: string{k:string} expected"; + } + if (message.k8sServiceAccount != null && message.hasOwnProperty("k8sServiceAccount")) + if (!$util.isString(message.k8sServiceAccount)) + return "k8sServiceAccount: string expected"; + if (message.environmentVariables != null && message.hasOwnProperty("environmentVariables")) { + if (!$util.isObject(message.environmentVariables)) + return "environmentVariables: object expected"; + var key = Object.keys(message.environmentVariables); + for (var i = 0; i < key.length; ++i) + if (!$util.isString(message.environmentVariables[key[i]])) + return "environmentVariables: string{k:string} expected"; + } + return null; + }; + + return TaskExecutionMetadata; + })(); + admin.CreateTaskRequest = (function() { /** @@ -18520,6 +18753,7 @@ * @property {flyteidl.core.ILiteralMap|null} [inputs] CreateTaskRequest inputs * @property {flyteidl.core.ITaskTemplate|null} [template] CreateTaskRequest template * @property {string|null} [outputPrefix] CreateTaskRequest outputPrefix + * @property {flyteidl.admin.ITaskExecutionMetadata|null} [taskExecutionMetadata] CreateTaskRequest taskExecutionMetadata */ /** @@ -18561,6 +18795,14 @@ */ CreateTaskRequest.prototype.outputPrefix = ""; + /** + * CreateTaskRequest taskExecutionMetadata. + * @member {flyteidl.admin.ITaskExecutionMetadata|null|undefined} taskExecutionMetadata + * @memberof flyteidl.admin.CreateTaskRequest + * @instance + */ + CreateTaskRequest.prototype.taskExecutionMetadata = null; + /** * Creates a new CreateTaskRequest instance using the specified properties. * @function create @@ -18591,6 +18833,8 @@ $root.flyteidl.core.TaskTemplate.encode(message.template, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); if (message.outputPrefix != null && message.hasOwnProperty("outputPrefix")) writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputPrefix); + if (message.taskExecutionMetadata != null && message.hasOwnProperty("taskExecutionMetadata")) + $root.flyteidl.admin.TaskExecutionMetadata.encode(message.taskExecutionMetadata, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); return writer; }; @@ -18621,6 +18865,9 @@ case 3: message.outputPrefix = reader.string(); break; + case 4: + message.taskExecutionMetadata = $root.flyteidl.admin.TaskExecutionMetadata.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -18653,6 +18900,11 @@ if (message.outputPrefix != null && message.hasOwnProperty("outputPrefix")) if (!$util.isString(message.outputPrefix)) return "outputPrefix: string expected"; + if (message.taskExecutionMetadata != null && message.hasOwnProperty("taskExecutionMetadata")) { + var error = $root.flyteidl.admin.TaskExecutionMetadata.verify(message.taskExecutionMetadata); + if (error) + return "taskExecutionMetadata." + error; + } return null; }; diff --git a/gen/pb_python/flyteidl/admin/agent_pb2.py b/gen/pb_python/flyteidl/admin/agent_pb2.py index 9f4ce06bc..ea0ef0afe 100644 --- a/gen/pb_python/flyteidl/admin/agent_pb2.py +++ b/gen/pb_python/flyteidl/admin/agent_pb2.py @@ -14,9 +14,10 @@ from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 from flyteidl.core import tasks_pb2 as flyteidl_dot_core_dot_tasks__pb2 from flyteidl.core import interface_pb2 as flyteidl_dot_core_dot_interface__pb2 +from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lyteidl/admin/agent.proto\x12\x0e\x66lyteidl.admin\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/tasks.proto\x1a\x1d\x66lyteidl/core/interface.proto\"\xa4\x01\n\x11\x43reateTaskRequest\x12\x31\n\x06inputs\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x37\n\x08template\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x08template\x12#\n\routput_prefix\x18\x03 \x01(\tR\x0coutputPrefix\"9\n\x12\x43reateTaskResponse\x12#\n\rresource_meta\x18\x01 \x01(\x0cR\x0cresourceMeta\"R\n\x0eGetTaskRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12#\n\rresource_meta\x18\x02 \x01(\x0cR\x0cresourceMeta\"G\n\x0fGetTaskResponse\x12\x34\n\x08resource\x18\x01 \x01(\x0b\x32\x18.flyteidl.admin.ResourceR\x08resource\"l\n\x08Resource\x12+\n\x05state\x18\x01 \x01(\x0e\x32\x15.flyteidl.admin.StateR\x05state\x12\x33\n\x07outputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x07outputs\"U\n\x11\x44\x65leteTaskRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12#\n\rresource_meta\x18\x02 \x01(\x0cR\x0cresourceMeta\"\x14\n\x12\x44\x65leteTaskResponse*^\n\x05State\x12\x15\n\x11RETRYABLE_FAILURE\x10\x00\x12\x15\n\x11PERMANENT_FAILURE\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x42\xb0\x01\n\x12\x63om.flyteidl.adminB\nAgentProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66lyteidl/admin/agent.proto\x12\x0e\x66lyteidl.admin\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x19\x66lyteidl/core/tasks.proto\x1a\x1d\x66lyteidl/core/interface.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"\x98\x05\n\x15TaskExecutionMetadata\x12R\n\x11task_execution_id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x0ftaskExecutionId\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12I\n\x06labels\x18\x03 \x03(\x0b\x32\x31.flyteidl.admin.TaskExecutionMetadata.LabelsEntryR\x06labels\x12X\n\x0b\x61nnotations\x18\x04 \x03(\x0b\x32\x36.flyteidl.admin.TaskExecutionMetadata.AnnotationsEntryR\x0b\x61nnotations\x12.\n\x13k8s_service_account\x18\x05 \x01(\tR\x11k8sServiceAccount\x12t\n\x15\x65nvironment_variables\x18\x06 \x03(\x0b\x32?.flyteidl.admin.TaskExecutionMetadata.EnvironmentVariablesEntryR\x14\x65nvironmentVariables\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a>\n\x10\x41nnotationsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1aG\n\x19\x45nvironmentVariablesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x83\x02\n\x11\x43reateTaskRequest\x12\x31\n\x06inputs\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x06inputs\x12\x37\n\x08template\x18\x02 \x01(\x0b\x32\x1b.flyteidl.core.TaskTemplateR\x08template\x12#\n\routput_prefix\x18\x03 \x01(\tR\x0coutputPrefix\x12]\n\x17task_execution_metadata\x18\x04 \x01(\x0b\x32%.flyteidl.admin.TaskExecutionMetadataR\x15taskExecutionMetadata\"9\n\x12\x43reateTaskResponse\x12#\n\rresource_meta\x18\x01 \x01(\x0cR\x0cresourceMeta\"R\n\x0eGetTaskRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12#\n\rresource_meta\x18\x02 \x01(\x0cR\x0cresourceMeta\"G\n\x0fGetTaskResponse\x12\x34\n\x08resource\x18\x01 \x01(\x0b\x32\x18.flyteidl.admin.ResourceR\x08resource\"l\n\x08Resource\x12+\n\x05state\x18\x01 \x01(\x0e\x32\x15.flyteidl.admin.StateR\x05state\x12\x33\n\x07outputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x07outputs\"U\n\x11\x44\x65leteTaskRequest\x12\x1b\n\ttask_type\x18\x01 \x01(\tR\x08taskType\x12#\n\rresource_meta\x18\x02 \x01(\x0cR\x0cresourceMeta\"\x14\n\x12\x44\x65leteTaskResponse*^\n\x05State\x12\x15\n\x11RETRYABLE_FAILURE\x10\x00\x12\x15\n\x11PERMANENT_FAILURE\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x42\xb0\x01\n\x12\x63om.flyteidl.adminB\nAgentProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,20 +26,34 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\022com.flyteidl.adminB\nAgentProtoP\001Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\242\002\003FAX\252\002\016Flyteidl.Admin\312\002\016Flyteidl\\Admin\342\002\032Flyteidl\\Admin\\GPBMetadata\352\002\017Flyteidl::Admin' - _globals['_STATE']._serialized_start=736 - _globals['_STATE']._serialized_end=830 - _globals['_CREATETASKREQUEST']._serialized_start=135 - _globals['_CREATETASKREQUEST']._serialized_end=299 - _globals['_CREATETASKRESPONSE']._serialized_start=301 - _globals['_CREATETASKRESPONSE']._serialized_end=358 - _globals['_GETTASKREQUEST']._serialized_start=360 - _globals['_GETTASKREQUEST']._serialized_end=442 - _globals['_GETTASKRESPONSE']._serialized_start=444 - _globals['_GETTASKRESPONSE']._serialized_end=515 - _globals['_RESOURCE']._serialized_start=517 - _globals['_RESOURCE']._serialized_end=625 - _globals['_DELETETASKREQUEST']._serialized_start=627 - _globals['_DELETETASKREQUEST']._serialized_end=712 - _globals['_DELETETASKRESPONSE']._serialized_start=714 - _globals['_DELETETASKRESPONSE']._serialized_end=734 + _TASKEXECUTIONMETADATA_LABELSENTRY._options = None + _TASKEXECUTIONMETADATA_LABELSENTRY._serialized_options = b'8\001' + _TASKEXECUTIONMETADATA_ANNOTATIONSENTRY._options = None + _TASKEXECUTIONMETADATA_ANNOTATIONSENTRY._serialized_options = b'8\001' + _TASKEXECUTIONMETADATA_ENVIRONMENTVARIABLESENTRY._options = None + _TASKEXECUTIONMETADATA_ENVIRONMENTVARIABLESENTRY._serialized_options = b'8\001' + _globals['_STATE']._serialized_start=1530 + _globals['_STATE']._serialized_end=1624 + _globals['_TASKEXECUTIONMETADATA']._serialized_start=167 + _globals['_TASKEXECUTIONMETADATA']._serialized_end=831 + _globals['_TASKEXECUTIONMETADATA_LABELSENTRY']._serialized_start=637 + _globals['_TASKEXECUTIONMETADATA_LABELSENTRY']._serialized_end=694 + _globals['_TASKEXECUTIONMETADATA_ANNOTATIONSENTRY']._serialized_start=696 + _globals['_TASKEXECUTIONMETADATA_ANNOTATIONSENTRY']._serialized_end=758 + _globals['_TASKEXECUTIONMETADATA_ENVIRONMENTVARIABLESENTRY']._serialized_start=760 + _globals['_TASKEXECUTIONMETADATA_ENVIRONMENTVARIABLESENTRY']._serialized_end=831 + _globals['_CREATETASKREQUEST']._serialized_start=834 + _globals['_CREATETASKREQUEST']._serialized_end=1093 + _globals['_CREATETASKRESPONSE']._serialized_start=1095 + _globals['_CREATETASKRESPONSE']._serialized_end=1152 + _globals['_GETTASKREQUEST']._serialized_start=1154 + _globals['_GETTASKREQUEST']._serialized_end=1236 + _globals['_GETTASKRESPONSE']._serialized_start=1238 + _globals['_GETTASKRESPONSE']._serialized_end=1309 + _globals['_RESOURCE']._serialized_start=1311 + _globals['_RESOURCE']._serialized_end=1419 + _globals['_DELETETASKREQUEST']._serialized_start=1421 + _globals['_DELETETASKREQUEST']._serialized_end=1506 + _globals['_DELETETASKRESPONSE']._serialized_start=1508 + _globals['_DELETETASKRESPONSE']._serialized_end=1528 # @@protoc_insertion_point(module_scope) diff --git a/gen/pb_python/flyteidl/admin/agent_pb2.pyi b/gen/pb_python/flyteidl/admin/agent_pb2.pyi index d18fe6f1c..830158d0b 100644 --- a/gen/pb_python/flyteidl/admin/agent_pb2.pyi +++ b/gen/pb_python/flyteidl/admin/agent_pb2.pyi @@ -1,6 +1,8 @@ from flyteidl.core import literals_pb2 as _literals_pb2 from flyteidl.core import tasks_pb2 as _tasks_pb2 from flyteidl.core import interface_pb2 as _interface_pb2 +from flyteidl.core import identifier_pb2 as _identifier_pb2 +from google.protobuf.internal import containers as _containers from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -21,15 +23,54 @@ PENDING: State RUNNING: State SUCCEEDED: State +class TaskExecutionMetadata(_message.Message): + __slots__ = ["task_execution_id", "namespace", "labels", "annotations", "k8s_service_account", "environment_variables"] + class LabelsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + class AnnotationsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + class EnvironmentVariablesEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + TASK_EXECUTION_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FIELD_NUMBER: _ClassVar[int] + LABELS_FIELD_NUMBER: _ClassVar[int] + ANNOTATIONS_FIELD_NUMBER: _ClassVar[int] + K8S_SERVICE_ACCOUNT_FIELD_NUMBER: _ClassVar[int] + ENVIRONMENT_VARIABLES_FIELD_NUMBER: _ClassVar[int] + task_execution_id: _identifier_pb2.TaskExecutionIdentifier + namespace: str + labels: _containers.ScalarMap[str, str] + annotations: _containers.ScalarMap[str, str] + k8s_service_account: str + environment_variables: _containers.ScalarMap[str, str] + def __init__(self, task_execution_id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ..., namespace: _Optional[str] = ..., labels: _Optional[_Mapping[str, str]] = ..., annotations: _Optional[_Mapping[str, str]] = ..., k8s_service_account: _Optional[str] = ..., environment_variables: _Optional[_Mapping[str, str]] = ...) -> None: ... + class CreateTaskRequest(_message.Message): - __slots__ = ["inputs", "template", "output_prefix"] + __slots__ = ["inputs", "template", "output_prefix", "task_execution_metadata"] INPUTS_FIELD_NUMBER: _ClassVar[int] TEMPLATE_FIELD_NUMBER: _ClassVar[int] OUTPUT_PREFIX_FIELD_NUMBER: _ClassVar[int] + TASK_EXECUTION_METADATA_FIELD_NUMBER: _ClassVar[int] inputs: _literals_pb2.LiteralMap template: _tasks_pb2.TaskTemplate output_prefix: str - def __init__(self, inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., template: _Optional[_Union[_tasks_pb2.TaskTemplate, _Mapping]] = ..., output_prefix: _Optional[str] = ...) -> None: ... + task_execution_metadata: TaskExecutionMetadata + def __init__(self, inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., template: _Optional[_Union[_tasks_pb2.TaskTemplate, _Mapping]] = ..., output_prefix: _Optional[str] = ..., task_execution_metadata: _Optional[_Union[TaskExecutionMetadata, _Mapping]] = ...) -> None: ... class CreateTaskResponse(_message.Message): __slots__ = ["resource_meta"] diff --git a/gen/pb_python/flyteidl/service/flyteadmin/README.md b/gen/pb_python/flyteidl/service/flyteadmin/README.md index a9632dffc..fc2ba486a 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -362,7 +362,6 @@ Class | Method | HTTP request | Description - [EventParentTaskExecutionMetadata](docs/EventParentTaskExecutionMetadata.md) - [EventResourcePoolInfo](docs/EventResourcePoolInfo.md) - [EventTaskExecutionEvent](docs/EventTaskExecutionEvent.md) - - [EventTaskExecutionMetadata](docs/EventTaskExecutionMetadata.md) - [EventWorkflowExecutionEvent](docs/EventWorkflowExecutionEvent.md) - [ExecutionErrorErrorKind](docs/ExecutionErrorErrorKind.md) - [ExecutionMetadataExecutionMode](docs/ExecutionMetadataExecutionMode.md) @@ -374,6 +373,7 @@ Class | Method | HTTP request | Description - [FlyteidladminTaskNodeMetadata](docs/FlyteidladminTaskNodeMetadata.md) - [FlyteidladminWorkflowNodeMetadata](docs/FlyteidladminWorkflowNodeMetadata.md) - [FlyteidleventDynamicWorkflowNodeMetadata](docs/FlyteidleventDynamicWorkflowNodeMetadata.md) + - [FlyteidleventTaskExecutionMetadata](docs/FlyteidleventTaskExecutionMetadata.md) - [FlyteidleventTaskNodeMetadata](docs/FlyteidleventTaskNodeMetadata.md) - [FlyteidleventWorkflowNodeMetadata](docs/FlyteidleventWorkflowNodeMetadata.md) - [IOStrategyDownloadMode](docs/IOStrategyDownloadMode.md) diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py index 22f0de799..4aaa8791f 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py @@ -253,7 +253,6 @@ from flyteadmin.models.event_parent_task_execution_metadata import EventParentTaskExecutionMetadata from flyteadmin.models.event_resource_pool_info import EventResourcePoolInfo from flyteadmin.models.event_task_execution_event import EventTaskExecutionEvent -from flyteadmin.models.event_task_execution_metadata import EventTaskExecutionMetadata from flyteadmin.models.event_workflow_execution_event import EventWorkflowExecutionEvent from flyteadmin.models.execution_error_error_kind import ExecutionErrorErrorKind from flyteadmin.models.execution_metadata_execution_mode import ExecutionMetadataExecutionMode @@ -265,6 +264,7 @@ from flyteadmin.models.flyteidladmin_task_node_metadata import FlyteidladminTaskNodeMetadata from flyteadmin.models.flyteidladmin_workflow_node_metadata import FlyteidladminWorkflowNodeMetadata from flyteadmin.models.flyteidlevent_dynamic_workflow_node_metadata import FlyteidleventDynamicWorkflowNodeMetadata +from flyteadmin.models.flyteidlevent_task_execution_metadata import FlyteidleventTaskExecutionMetadata from flyteadmin.models.flyteidlevent_task_node_metadata import FlyteidleventTaskNodeMetadata from flyteadmin.models.flyteidlevent_workflow_node_metadata import FlyteidleventWorkflowNodeMetadata from flyteadmin.models.io_strategy_download_mode import IOStrategyDownloadMode diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py index 1f271478d..d8a797cdf 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py @@ -246,7 +246,6 @@ from flyteadmin.models.event_parent_task_execution_metadata import EventParentTaskExecutionMetadata from flyteadmin.models.event_resource_pool_info import EventResourcePoolInfo from flyteadmin.models.event_task_execution_event import EventTaskExecutionEvent -from flyteadmin.models.event_task_execution_metadata import EventTaskExecutionMetadata from flyteadmin.models.event_workflow_execution_event import EventWorkflowExecutionEvent from flyteadmin.models.execution_error_error_kind import ExecutionErrorErrorKind from flyteadmin.models.execution_metadata_execution_mode import ExecutionMetadataExecutionMode @@ -258,6 +257,7 @@ from flyteadmin.models.flyteidladmin_task_node_metadata import FlyteidladminTaskNodeMetadata from flyteadmin.models.flyteidladmin_workflow_node_metadata import FlyteidladminWorkflowNodeMetadata from flyteadmin.models.flyteidlevent_dynamic_workflow_node_metadata import FlyteidleventDynamicWorkflowNodeMetadata +from flyteadmin.models.flyteidlevent_task_execution_metadata import FlyteidleventTaskExecutionMetadata from flyteadmin.models.flyteidlevent_task_node_metadata import FlyteidleventTaskNodeMetadata from flyteadmin.models.flyteidlevent_workflow_node_metadata import FlyteidleventWorkflowNodeMetadata from flyteadmin.models.io_strategy_download_mode import IOStrategyDownloadMode diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_closure.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_closure.py index 157e88be5..f008dc64b 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_closure.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_closure.py @@ -21,7 +21,7 @@ from flyteadmin.models.core_literal_map import CoreLiteralMap # noqa: F401,E501 from flyteadmin.models.core_task_execution_phase import CoreTaskExecutionPhase # noqa: F401,E501 from flyteadmin.models.core_task_log import CoreTaskLog # noqa: F401,E501 -from flyteadmin.models.event_task_execution_metadata import EventTaskExecutionMetadata # noqa: F401,E501 +from flyteadmin.models.flyteidlevent_task_execution_metadata import FlyteidleventTaskExecutionMetadata # noqa: F401,E501 from flyteadmin.models.protobuf_struct import ProtobufStruct # noqa: F401,E501 @@ -51,7 +51,7 @@ class AdminTaskExecutionClosure(object): 'custom_info': 'ProtobufStruct', 'reason': 'str', 'task_type': 'str', - 'metadata': 'EventTaskExecutionMetadata', + 'metadata': 'FlyteidleventTaskExecutionMetadata', 'event_version': 'int', 'reasons': 'list[AdminReason]' } @@ -408,7 +408,7 @@ def metadata(self): Metadata around how a task was executed. # noqa: E501 :return: The metadata of this AdminTaskExecutionClosure. # noqa: E501 - :rtype: EventTaskExecutionMetadata + :rtype: FlyteidleventTaskExecutionMetadata """ return self._metadata @@ -419,7 +419,7 @@ def metadata(self, metadata): Metadata around how a task was executed. # noqa: E501 :param metadata: The metadata of this AdminTaskExecutionClosure. # noqa: E501 - :type: EventTaskExecutionMetadata + :type: FlyteidleventTaskExecutionMetadata """ self._metadata = metadata diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/event_task_execution_event.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/event_task_execution_event.py index fefad55a6..d80680d7d 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/event_task_execution_event.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/event_task_execution_event.py @@ -22,7 +22,7 @@ from flyteadmin.models.core_node_execution_identifier import CoreNodeExecutionIdentifier # noqa: F401,E501 from flyteadmin.models.core_task_execution_phase import CoreTaskExecutionPhase # noqa: F401,E501 from flyteadmin.models.core_task_log import CoreTaskLog # noqa: F401,E501 -from flyteadmin.models.event_task_execution_metadata import EventTaskExecutionMetadata # noqa: F401,E501 +from flyteadmin.models.flyteidlevent_task_execution_metadata import FlyteidleventTaskExecutionMetadata # noqa: F401,E501 from flyteadmin.models.protobuf_struct import ProtobufStruct # noqa: F401,E501 @@ -56,7 +56,7 @@ class EventTaskExecutionEvent(object): 'phase_version': 'int', 'reason': 'str', 'task_type': 'str', - 'metadata': 'EventTaskExecutionMetadata', + 'metadata': 'FlyteidleventTaskExecutionMetadata', 'event_version': 'int', 'reported_at': 'datetime' } @@ -509,7 +509,7 @@ def metadata(self): Metadata around how a task was executed. # noqa: E501 :return: The metadata of this EventTaskExecutionEvent. # noqa: E501 - :rtype: EventTaskExecutionMetadata + :rtype: FlyteidleventTaskExecutionMetadata """ return self._metadata @@ -520,7 +520,7 @@ def metadata(self, metadata): Metadata around how a task was executed. # noqa: E501 :param metadata: The metadata of this EventTaskExecutionEvent. # noqa: E501 - :type: EventTaskExecutionMetadata + :type: FlyteidleventTaskExecutionMetadata """ self._metadata = metadata diff --git a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/event_task_execution_metadata.py b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/flyteidlevent_task_execution_metadata.py similarity index 76% rename from gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/event_task_execution_metadata.py rename to gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/flyteidlevent_task_execution_metadata.py index b1ae708b2..302bc9cfc 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/event_task_execution_metadata.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/flyteidlevent_task_execution_metadata.py @@ -21,7 +21,7 @@ from flyteadmin.models.task_execution_metadata_instance_class import TaskExecutionMetadataInstanceClass # noqa: F401,E501 -class EventTaskExecutionMetadata(object): +class FlyteidleventTaskExecutionMetadata(object): """NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -51,7 +51,7 @@ class EventTaskExecutionMetadata(object): } def __init__(self, generated_name=None, external_resources=None, resource_pool_info=None, plugin_identifier=None, instance_class=None): # noqa: E501 - """EventTaskExecutionMetadata - a model defined in Swagger""" # noqa: E501 + """FlyteidleventTaskExecutionMetadata - a model defined in Swagger""" # noqa: E501 self._generated_name = None self._external_resources = None @@ -73,22 +73,22 @@ def __init__(self, generated_name=None, external_resources=None, resource_pool_i @property def generated_name(self): - """Gets the generated_name of this EventTaskExecutionMetadata. # noqa: E501 + """Gets the generated_name of this FlyteidleventTaskExecutionMetadata. # noqa: E501 Unique, generated name for this task execution used by the backend. # noqa: E501 - :return: The generated_name of this EventTaskExecutionMetadata. # noqa: E501 + :return: The generated_name of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :rtype: str """ return self._generated_name @generated_name.setter def generated_name(self, generated_name): - """Sets the generated_name of this EventTaskExecutionMetadata. + """Sets the generated_name of this FlyteidleventTaskExecutionMetadata. Unique, generated name for this task execution used by the backend. # noqa: E501 - :param generated_name: The generated_name of this EventTaskExecutionMetadata. # noqa: E501 + :param generated_name: The generated_name of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :type: str """ @@ -96,22 +96,22 @@ def generated_name(self, generated_name): @property def external_resources(self): - """Gets the external_resources of this EventTaskExecutionMetadata. # noqa: E501 + """Gets the external_resources of this FlyteidleventTaskExecutionMetadata. # noqa: E501 Additional data on external resources on other back-ends or platforms (e.g. Hive, Qubole, etc) launched by this task execution. # noqa: E501 - :return: The external_resources of this EventTaskExecutionMetadata. # noqa: E501 + :return: The external_resources of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :rtype: list[EventExternalResourceInfo] """ return self._external_resources @external_resources.setter def external_resources(self, external_resources): - """Sets the external_resources of this EventTaskExecutionMetadata. + """Sets the external_resources of this FlyteidleventTaskExecutionMetadata. Additional data on external resources on other back-ends or platforms (e.g. Hive, Qubole, etc) launched by this task execution. # noqa: E501 - :param external_resources: The external_resources of this EventTaskExecutionMetadata. # noqa: E501 + :param external_resources: The external_resources of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :type: list[EventExternalResourceInfo] """ @@ -119,22 +119,22 @@ def external_resources(self, external_resources): @property def resource_pool_info(self): - """Gets the resource_pool_info of this EventTaskExecutionMetadata. # noqa: E501 + """Gets the resource_pool_info of this FlyteidleventTaskExecutionMetadata. # noqa: E501 Includes additional data on concurrent resource management used during execution.. This is a repeated field because a plugin can request multiple resource allocations during execution. # noqa: E501 - :return: The resource_pool_info of this EventTaskExecutionMetadata. # noqa: E501 + :return: The resource_pool_info of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :rtype: list[EventResourcePoolInfo] """ return self._resource_pool_info @resource_pool_info.setter def resource_pool_info(self, resource_pool_info): - """Sets the resource_pool_info of this EventTaskExecutionMetadata. + """Sets the resource_pool_info of this FlyteidleventTaskExecutionMetadata. Includes additional data on concurrent resource management used during execution.. This is a repeated field because a plugin can request multiple resource allocations during execution. # noqa: E501 - :param resource_pool_info: The resource_pool_info of this EventTaskExecutionMetadata. # noqa: E501 + :param resource_pool_info: The resource_pool_info of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :type: list[EventResourcePoolInfo] """ @@ -142,22 +142,22 @@ def resource_pool_info(self, resource_pool_info): @property def plugin_identifier(self): - """Gets the plugin_identifier of this EventTaskExecutionMetadata. # noqa: E501 + """Gets the plugin_identifier of this FlyteidleventTaskExecutionMetadata. # noqa: E501 The identifier of the plugin used to execute this task. # noqa: E501 - :return: The plugin_identifier of this EventTaskExecutionMetadata. # noqa: E501 + :return: The plugin_identifier of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :rtype: str """ return self._plugin_identifier @plugin_identifier.setter def plugin_identifier(self, plugin_identifier): - """Sets the plugin_identifier of this EventTaskExecutionMetadata. + """Sets the plugin_identifier of this FlyteidleventTaskExecutionMetadata. The identifier of the plugin used to execute this task. # noqa: E501 - :param plugin_identifier: The plugin_identifier of this EventTaskExecutionMetadata. # noqa: E501 + :param plugin_identifier: The plugin_identifier of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :type: str """ @@ -165,20 +165,20 @@ def plugin_identifier(self, plugin_identifier): @property def instance_class(self): - """Gets the instance_class of this EventTaskExecutionMetadata. # noqa: E501 + """Gets the instance_class of this FlyteidleventTaskExecutionMetadata. # noqa: E501 - :return: The instance_class of this EventTaskExecutionMetadata. # noqa: E501 + :return: The instance_class of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :rtype: TaskExecutionMetadataInstanceClass """ return self._instance_class @instance_class.setter def instance_class(self, instance_class): - """Sets the instance_class of this EventTaskExecutionMetadata. + """Sets the instance_class of this FlyteidleventTaskExecutionMetadata. - :param instance_class: The instance_class of this EventTaskExecutionMetadata. # noqa: E501 + :param instance_class: The instance_class of this FlyteidleventTaskExecutionMetadata. # noqa: E501 :type: TaskExecutionMetadataInstanceClass """ @@ -205,7 +205,7 @@ def to_dict(self): )) else: result[attr] = value - if issubclass(EventTaskExecutionMetadata, dict): + if issubclass(FlyteidleventTaskExecutionMetadata, dict): for key, value in self.items(): result[key] = value @@ -221,7 +221,7 @@ def __repr__(self): def __eq__(self, other): """Returns true if both objects are equal""" - if not isinstance(other, EventTaskExecutionMetadata): + if not isinstance(other, FlyteidleventTaskExecutionMetadata): return False return self.__dict__ == other.__dict__ diff --git a/gen/pb_python/flyteidl/service/flyteadmin/test/test_event_task_execution_metadata.py b/gen/pb_python/flyteidl/service/flyteadmin/test/test_flyteidlevent_task_execution_metadata.py similarity index 57% rename from gen/pb_python/flyteidl/service/flyteadmin/test/test_event_task_execution_metadata.py rename to gen/pb_python/flyteidl/service/flyteadmin/test/test_flyteidlevent_task_execution_metadata.py index 18bf03ed0..d72265cec 100644 --- a/gen/pb_python/flyteidl/service/flyteadmin/test/test_event_task_execution_metadata.py +++ b/gen/pb_python/flyteidl/service/flyteadmin/test/test_flyteidlevent_task_execution_metadata.py @@ -16,12 +16,12 @@ import unittest import flyteadmin -from flyteadmin.models.event_task_execution_metadata import EventTaskExecutionMetadata # noqa: E501 +from flyteadmin.models.flyteidlevent_task_execution_metadata import FlyteidleventTaskExecutionMetadata # noqa: E501 from flyteadmin.rest import ApiException -class TestEventTaskExecutionMetadata(unittest.TestCase): - """EventTaskExecutionMetadata unit test stubs""" +class TestFlyteidleventTaskExecutionMetadata(unittest.TestCase): + """FlyteidleventTaskExecutionMetadata unit test stubs""" def setUp(self): pass @@ -29,10 +29,10 @@ def setUp(self): def tearDown(self): pass - def testEventTaskExecutionMetadata(self): - """Test EventTaskExecutionMetadata""" + def testFlyteidleventTaskExecutionMetadata(self): + """Test FlyteidleventTaskExecutionMetadata""" # FIXME: construct object with mandatory attributes with example values - # model = flyteadmin.models.event_task_execution_metadata.EventTaskExecutionMetadata() # noqa: E501 + # model = flyteadmin.models.flyteidlevent_task_execution_metadata.FlyteidleventTaskExecutionMetadata() # noqa: E501 pass diff --git a/gen/pb_rust/flyteidl.admin.rs b/gen/pb_rust/flyteidl.admin.rs index ac4129ca1..2bf1d220b 100644 --- a/gen/pb_rust/flyteidl.admin.rs +++ b/gen/pb_rust/flyteidl.admin.rs @@ -1,4 +1,27 @@ // @generated +/// Represents a subset of runtime task execution metadata that are relevant to external plugins. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TaskExecutionMetadata { + /// ID of the task execution + #[prost(message, optional, tag="1")] + pub task_execution_id: ::core::option::Option, + /// k8s namespace where the task is executed in + #[prost(string, tag="2")] + pub namespace: ::prost::alloc::string::String, + /// Labels attached to the task execution + #[prost(map="string, string", tag="3")] + pub labels: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, + /// Annotations attached to the task execution + #[prost(map="string, string", tag="4")] + pub annotations: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, + /// k8s service account associated with the task execution + #[prost(string, tag="5")] + pub k8s_service_account: ::prost::alloc::string::String, + /// Environment variables attached to the task execution + #[prost(map="string, string", tag="6")] + pub environment_variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>, +} /// Represents a request structure to create task. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -14,6 +37,9 @@ pub struct CreateTaskRequest { /// Prefix for where task output data will be written. (e.g. s3://my-bucket/randomstring) #[prost(string, tag="3")] pub output_prefix: ::prost::alloc::string::String, + /// subset of runtime task execution metadata. + #[prost(message, optional, tag="4")] + pub task_execution_metadata: ::core::option::Option, } /// Represents a create response structure. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/protos/flyteidl/admin/agent.proto b/protos/flyteidl/admin/agent.proto index 312ac57fc..e9a484917 100644 --- a/protos/flyteidl/admin/agent.proto +++ b/protos/flyteidl/admin/agent.proto @@ -6,6 +6,7 @@ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin"; import "flyteidl/core/literals.proto"; import "flyteidl/core/tasks.proto"; import "flyteidl/core/interface.proto"; +import "flyteidl/core/identifier.proto"; // The state of the execution is used to control its visibility in the UI/CLI. enum State { @@ -16,6 +17,22 @@ enum State { SUCCEEDED = 4; } +// Represents a subset of runtime task execution metadata that are relevant to external plugins. +message TaskExecutionMetadata { + // ID of the task execution + core.TaskExecutionIdentifier task_execution_id = 1; + // k8s namespace where the task is executed in + string namespace = 2; + // Labels attached to the task execution + map labels = 3; + // Annotations attached to the task execution + map annotations = 4; + // k8s service account associated with the task execution + string k8s_service_account = 5; + // Environment variables attached to the task execution + map environment_variables = 6; +} + // Represents a request structure to create task. message CreateTaskRequest { // The inputs required to start the execution. All required inputs must be @@ -26,6 +43,8 @@ message CreateTaskRequest { core.TaskTemplate template = 2; // Prefix for where task output data will be written. (e.g. s3://my-bucket/randomstring) string output_prefix = 3; + // subset of runtime task execution metadata. + TaskExecutionMetadata task_execution_metadata = 4; } // Represents a create response structure.