diff --git a/flyteidl/clients/go/admin/mocks/AdminServiceClient.go b/flyteidl/clients/go/admin/mocks/AdminServiceClient.go index dbc226d934..4070900295 100644 --- a/flyteidl/clients/go/admin/mocks/AdminServiceClient.go +++ b/flyteidl/clients/go/admin/mocks/AdminServiceClient.go @@ -1985,6 +1985,54 @@ func (_m *AdminServiceClient) TerminateExecution(ctx context.Context, in *admin. return r0, r1 } +type AdminServiceClient_UpdateExecution struct { + *mock.Call +} + +func (_m AdminServiceClient_UpdateExecution) Return(_a0 *admin.ExecutionUpdateResponse, _a1 error) *AdminServiceClient_UpdateExecution { + return &AdminServiceClient_UpdateExecution{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceClient) OnUpdateExecution(ctx context.Context, in *admin.ExecutionUpdateRequest, opts ...grpc.CallOption) *AdminServiceClient_UpdateExecution { + c := _m.On("UpdateExecution", ctx, in, opts) + return &AdminServiceClient_UpdateExecution{Call: c} +} + +func (_m *AdminServiceClient) OnUpdateExecutionMatch(matchers ...interface{}) *AdminServiceClient_UpdateExecution { + c := _m.On("UpdateExecution", matchers...) + return &AdminServiceClient_UpdateExecution{Call: c} +} + +// UpdateExecution provides a mock function with given fields: ctx, in, opts +func (_m *AdminServiceClient) UpdateExecution(ctx context.Context, in *admin.ExecutionUpdateRequest, opts ...grpc.CallOption) (*admin.ExecutionUpdateResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *admin.ExecutionUpdateResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ExecutionUpdateRequest, ...grpc.CallOption) *admin.ExecutionUpdateResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ExecutionUpdateResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ExecutionUpdateRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceClient_UpdateLaunchPlan struct { *mock.Call } diff --git a/flyteidl/clients/go/admin/mocks/AdminServiceServer.go b/flyteidl/clients/go/admin/mocks/AdminServiceServer.go index 49788e2847..da24ca2428 100644 --- a/flyteidl/clients/go/admin/mocks/AdminServiceServer.go +++ b/flyteidl/clients/go/admin/mocks/AdminServiceServer.go @@ -1696,6 +1696,47 @@ func (_m *AdminServiceServer) TerminateExecution(_a0 context.Context, _a1 *admin return r0, r1 } +type AdminServiceServer_UpdateExecution struct { + *mock.Call +} + +func (_m AdminServiceServer_UpdateExecution) Return(_a0 *admin.ExecutionUpdateResponse, _a1 error) *AdminServiceServer_UpdateExecution { + return &AdminServiceServer_UpdateExecution{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceServer) OnUpdateExecution(_a0 context.Context, _a1 *admin.ExecutionUpdateRequest) *AdminServiceServer_UpdateExecution { + c := _m.On("UpdateExecution", _a0, _a1) + return &AdminServiceServer_UpdateExecution{Call: c} +} + +func (_m *AdminServiceServer) OnUpdateExecutionMatch(matchers ...interface{}) *AdminServiceServer_UpdateExecution { + c := _m.On("UpdateExecution", matchers...) + return &AdminServiceServer_UpdateExecution{Call: c} +} + +// UpdateExecution provides a mock function with given fields: _a0, _a1 +func (_m *AdminServiceServer) UpdateExecution(_a0 context.Context, _a1 *admin.ExecutionUpdateRequest) (*admin.ExecutionUpdateResponse, error) { + ret := _m.Called(_a0, _a1) + + var r0 *admin.ExecutionUpdateResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ExecutionUpdateRequest) *admin.ExecutionUpdateResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ExecutionUpdateResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ExecutionUpdateRequest) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceServer_UpdateLaunchPlan struct { *mock.Call } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc index 384c42a7ca..185c1fcff8 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.cc @@ -23,11 +23,12 @@ extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::prot extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_Notification_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_AbortMetadata_flyteidl_2fadmin_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_SystemMetadata_flyteidl_2fadmin_2fexecution_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_LiteralMapBlob_flyteidl_2fadmin_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_NotificationList_flyteidl_2fadmin_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_Execution_flyteidl_2fadmin_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<4> scc_info_ExecutionMetadata_flyteidl_2fadmin_2fexecution_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<8> scc_info_ExecutionClosure_flyteidl_2fadmin_2fexecution_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<9> scc_info_ExecutionClosure_flyteidl_2fadmin_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<9> scc_info_ExecutionSpec_flyteidl_2fadmin_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ExecutionError_flyteidl_2fcore_2fexecution_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fexecution_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_QualityOfService_flyteidl_2fcore_2fexecution_2eproto; @@ -121,6 +122,18 @@ class WorkflowExecutionGetDataResponseDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; } _WorkflowExecutionGetDataResponse_default_instance_; +class ExecutionUpdateRequestDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ExecutionUpdateRequest_default_instance_; +class ExecutionStateChangeDetailsDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ExecutionStateChangeDetails_default_instance_; +class ExecutionUpdateResponseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ExecutionUpdateResponse_default_instance_; } // namespace admin } // namespace flyteidl static void InitDefaultsExecutionCreateRequest_flyteidl_2fadmin_2fexecution_2eproto() { @@ -272,8 +285,8 @@ static void InitDefaultsExecutionClosure_flyteidl_2fadmin_2fexecution_2eproto() ::flyteidl::admin::ExecutionClosure::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<8> scc_info_ExecutionClosure_flyteidl_2fadmin_2fexecution_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 8, InitDefaultsExecutionClosure_flyteidl_2fadmin_2fexecution_2eproto}, { +::google::protobuf::internal::SCCInfo<9> scc_info_ExecutionClosure_flyteidl_2fadmin_2fexecution_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 9, InitDefaultsExecutionClosure_flyteidl_2fadmin_2fexecution_2eproto}, { &scc_info_LiteralMapBlob_flyteidl_2fadmin_2fexecution_2eproto.base, &scc_info_ExecutionError_flyteidl_2fcore_2fexecution_2eproto.base, &scc_info_AbortMetadata_flyteidl_2fadmin_2fexecution_2eproto.base, @@ -281,7 +294,8 @@ ::google::protobuf::internal::SCCInfo<8> scc_info_ExecutionClosure_flyteidl_2fad &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base, &scc_info_Duration_google_2fprotobuf_2fduration_2eproto.base, &scc_info_Notification_flyteidl_2fadmin_2fcommon_2eproto.base, - &scc_info_Identifier_flyteidl_2fcore_2fidentifier_2eproto.base,}}; + &scc_info_Identifier_flyteidl_2fcore_2fidentifier_2eproto.base, + &scc_info_ExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto.base,}}; static void InitDefaultsSystemMetadata_flyteidl_2fadmin_2fexecution_2eproto() { GOOGLE_PROTOBUF_VERIFY_VERSION; @@ -413,6 +427,50 @@ ::google::protobuf::internal::SCCInfo<2> scc_info_WorkflowExecutionGetDataRespon &scc_info_UrlBlob_flyteidl_2fadmin_2fcommon_2eproto.base, &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base,}}; +static void InitDefaultsExecutionUpdateRequest_flyteidl_2fadmin_2fexecution_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ExecutionUpdateRequest_default_instance_; + new (ptr) ::flyteidl::admin::ExecutionUpdateRequest(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ExecutionUpdateRequest::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<1> scc_info_ExecutionUpdateRequest_flyteidl_2fadmin_2fexecution_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsExecutionUpdateRequest_flyteidl_2fadmin_2fexecution_2eproto}, { + &scc_info_WorkflowExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto.base,}}; + +static void InitDefaultsExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ExecutionStateChangeDetails_default_instance_; + new (ptr) ::flyteidl::admin::ExecutionStateChangeDetails(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ExecutionStateChangeDetails::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<1> scc_info_ExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto}, { + &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}}; + +static void InitDefaultsExecutionUpdateResponse_flyteidl_2fadmin_2fexecution_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ExecutionUpdateResponse_default_instance_; + new (ptr) ::flyteidl::admin::ExecutionUpdateResponse(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ExecutionUpdateResponse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_ExecutionUpdateResponse_flyteidl_2fadmin_2fexecution_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsExecutionUpdateResponse_flyteidl_2fadmin_2fexecution_2eproto}, {}}; + void InitDefaults_flyteidl_2fadmin_2fexecution_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_ExecutionCreateRequest_flyteidl_2fadmin_2fexecution_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_ExecutionRelaunchRequest_flyteidl_2fadmin_2fexecution_2eproto.base); @@ -432,10 +490,13 @@ void InitDefaults_flyteidl_2fadmin_2fexecution_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_ExecutionTerminateResponse_flyteidl_2fadmin_2fexecution_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_WorkflowExecutionGetDataRequest_flyteidl_2fadmin_2fexecution_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_WorkflowExecutionGetDataResponse_flyteidl_2fadmin_2fexecution_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ExecutionUpdateRequest_flyteidl_2fadmin_2fexecution_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ExecutionUpdateResponse_flyteidl_2fadmin_2fexecution_2eproto.base); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fexecution_2eproto[18]; -const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fadmin_2fexecution_2eproto[1]; +::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fexecution_2eproto[21]; +const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fadmin_2fexecution_2eproto[2]; constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fadmin_2fexecution_2eproto = nullptr; const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fexecution_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { @@ -524,6 +585,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fexecution_2eprot PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionClosure, updated_at_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionClosure, notifications_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionClosure, workflow_id_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionClosure, state_change_details_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionClosure, output_result_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::SystemMetadata, _internal_metadata_), @@ -593,6 +655,26 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fexecution_2eprot PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowExecutionGetDataResponse, inputs_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowExecutionGetDataResponse, full_inputs_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::WorkflowExecutionGetDataResponse, full_outputs_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionUpdateRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionUpdateRequest, id_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionUpdateRequest, state_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionStateChangeDetails, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionStateChangeDetails, state_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionStateChangeDetails, occurred_at_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionStateChangeDetails, principal_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ExecutionUpdateResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::ExecutionCreateRequest)}, @@ -605,14 +687,17 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 52, -1, sizeof(::flyteidl::admin::LiteralMapBlob)}, { 60, -1, sizeof(::flyteidl::admin::AbortMetadata)}, { 67, -1, sizeof(::flyteidl::admin::ExecutionClosure)}, - { 86, -1, sizeof(::flyteidl::admin::SystemMetadata)}, - { 92, -1, sizeof(::flyteidl::admin::ExecutionMetadata)}, - { 104, -1, sizeof(::flyteidl::admin::NotificationList)}, - { 110, -1, sizeof(::flyteidl::admin::ExecutionSpec)}, - { 127, -1, sizeof(::flyteidl::admin::ExecutionTerminateRequest)}, - { 134, -1, sizeof(::flyteidl::admin::ExecutionTerminateResponse)}, - { 139, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataRequest)}, - { 145, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataResponse)}, + { 87, -1, sizeof(::flyteidl::admin::SystemMetadata)}, + { 93, -1, sizeof(::flyteidl::admin::ExecutionMetadata)}, + { 105, -1, sizeof(::flyteidl::admin::NotificationList)}, + { 111, -1, sizeof(::flyteidl::admin::ExecutionSpec)}, + { 128, -1, sizeof(::flyteidl::admin::ExecutionTerminateRequest)}, + { 135, -1, sizeof(::flyteidl::admin::ExecutionTerminateResponse)}, + { 140, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataRequest)}, + { 146, -1, sizeof(::flyteidl::admin::WorkflowExecutionGetDataResponse)}, + { 155, -1, sizeof(::flyteidl::admin::ExecutionUpdateRequest)}, + { 162, -1, sizeof(::flyteidl::admin::ExecutionStateChangeDetails)}, + { 170, -1, sizeof(::flyteidl::admin::ExecutionUpdateResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -634,12 +719,15 @@ static ::google::protobuf::Message const * const file_default_instances[] = { reinterpret_cast(&::flyteidl::admin::_ExecutionTerminateResponse_default_instance_), reinterpret_cast(&::flyteidl::admin::_WorkflowExecutionGetDataRequest_default_instance_), reinterpret_cast(&::flyteidl::admin::_WorkflowExecutionGetDataResponse_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ExecutionUpdateRequest_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ExecutionStateChangeDetails_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ExecutionUpdateResponse_default_instance_), }; ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto = { {}, AddDescriptors_flyteidl_2fadmin_2fexecution_2eproto, "flyteidl/admin/execution.proto", schemas, file_default_instances, TableStruct_flyteidl_2fadmin_2fexecution_2eproto::offsets, - file_level_metadata_flyteidl_2fadmin_2fexecution_2eproto, 18, file_level_enum_descriptors_flyteidl_2fadmin_2fexecution_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fexecution_2eproto, + file_level_metadata_flyteidl_2fadmin_2fexecution_2eproto, 21, file_level_enum_descriptors_flyteidl_2fadmin_2fexecution_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fexecution_2eproto, }; const char descriptor_table_protodef_flyteidl_2fadmin_2fexecution_2eproto[] = @@ -673,7 +761,7 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fexecution_2eproto[] = "token\030\002 \001(\t\"X\n\016LiteralMapBlob\022/\n\006values\030" "\001 \001(\0132\031.flyteidl.core.LiteralMapB\002\030\001H\000\022\r" "\n\003uri\030\002 \001(\tH\000B\006\n\004data\"1\n\rAbortMetadata\022\r" - "\n\005cause\030\001 \001(\t\022\021\n\tprincipal\030\002 \001(\t\"\245\005\n\020Exe" + "\n\005cause\030\001 \001(\t\022\021\n\tprincipal\030\002 \001(\t\"\360\005\n\020Exe" "cutionClosure\0225\n\007outputs\030\001 \001(\0132\036.flyteid" "l.admin.LiteralMapBlobB\002\030\001H\000\022.\n\005error\030\002 " "\001(\0132\035.flyteidl.core.ExecutionErrorH\000\022\031\n\013" @@ -690,54 +778,65 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fexecution_2eproto[] = "\030\010 \001(\0132\032.google.protobuf.Timestamp\0223\n\rno" "tifications\030\t \003(\0132\034.flyteidl.admin.Notif" "ication\022.\n\013workflow_id\030\013 \001(\0132\031.flyteidl." - "core.IdentifierB\017\n\routput_result\"+\n\016Syst" - "emMetadata\022\031\n\021execution_cluster\030\001 \001(\t\"\332\003" - "\n\021ExecutionMetadata\022=\n\004mode\030\001 \001(\0162/.flyt" - "eidl.admin.ExecutionMetadata.ExecutionMo" - "de\022\021\n\tprincipal\030\002 \001(\t\022\017\n\007nesting\030\003 \001(\r\0220" - "\n\014scheduled_at\030\004 \001(\0132\032.google.protobuf.T" - "imestamp\022E\n\025parent_node_execution\030\005 \001(\0132" - "&.flyteidl.core.NodeExecutionIdentifier\022" - "G\n\023reference_execution\030\020 \001(\0132*.flyteidl." - "core.WorkflowExecutionIdentifier\0227\n\017syst" - "em_metadata\030\021 \001(\0132\036.flyteidl.admin.Syste" - "mMetadata\"g\n\rExecutionMode\022\n\n\006MANUAL\020\000\022\r" - "\n\tSCHEDULED\020\001\022\n\n\006SYSTEM\020\002\022\014\n\010RELAUNCH\020\003\022" - "\022\n\016CHILD_WORKFLOW\020\004\022\r\n\tRECOVERED\020\005\"G\n\020No" - "tificationList\0223\n\rnotifications\030\001 \003(\0132\034." - "flyteidl.admin.Notification\"\260\004\n\rExecutio" - "nSpec\022.\n\013launch_plan\030\001 \001(\0132\031.flyteidl.co" - "re.Identifier\022-\n\006inputs\030\002 \001(\0132\031.flyteidl" - ".core.LiteralMapB\002\030\001\0223\n\010metadata\030\003 \001(\0132!" - ".flyteidl.admin.ExecutionMetadata\0229\n\rnot" - "ifications\030\005 \001(\0132 .flyteidl.admin.Notifi" - "cationListH\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n\006l" - "abels\030\007 \001(\0132\026.flyteidl.admin.Labels\0220\n\013a" - "nnotations\030\010 \001(\0132\033.flyteidl.admin.Annota" - "tions\0228\n\020security_context\030\n \001(\0132\036.flytei" - "dl.core.SecurityContext\022/\n\tauth_role\030\020 \001" - "(\0132\030.flyteidl.admin.AuthRoleB\002\030\001\022;\n\022qual" - "ity_of_service\030\021 \001(\0132\037.flyteidl.core.Qua" - "lityOfService\022\027\n\017max_parallelism\030\022 \001(\005B\030" - "\n\026notification_overridesJ\004\010\004\020\005\"b\n\031Execut" - "ionTerminateRequest\0226\n\002id\030\001 \001(\0132*.flytei" - "dl.core.WorkflowExecutionIdentifier\022\r\n\005c" - "ause\030\002 \001(\t\"\034\n\032ExecutionTerminateResponse" - "\"Y\n\037WorkflowExecutionGetDataRequest\0226\n\002i" - "d\030\001 \001(\0132*.flyteidl.core.WorkflowExecutio" - "nIdentifier\"\336\001\n WorkflowExecutionGetData" - "Response\022,\n\007outputs\030\001 \001(\0132\027.flyteidl.adm" - "in.UrlBlobB\002\030\001\022+\n\006inputs\030\002 \001(\0132\027.flyteid" - "l.admin.UrlBlobB\002\030\001\022.\n\013full_inputs\030\003 \001(\013" - "2\031.flyteidl.core.LiteralMap\022/\n\014full_outp" - "uts\030\004 \001(\0132\031.flyteidl.core.LiteralMapB7Z5" - "github.com/flyteorg/flyteidl/gen/pb-go/f" - "lyteidl/adminb\006proto3" + "core.Identifier\022I\n\024state_change_details\030" + "\016 \001(\0132+.flyteidl.admin.ExecutionStateCha" + "ngeDetailsB\017\n\routput_result\"+\n\016SystemMet" + "adata\022\031\n\021execution_cluster\030\001 \001(\t\"\332\003\n\021Exe" + "cutionMetadata\022=\n\004mode\030\001 \001(\0162/.flyteidl." + "admin.ExecutionMetadata.ExecutionMode\022\021\n" + "\tprincipal\030\002 \001(\t\022\017\n\007nesting\030\003 \001(\r\0220\n\014sch" + "eduled_at\030\004 \001(\0132\032.google.protobuf.Timest" + "amp\022E\n\025parent_node_execution\030\005 \001(\0132&.fly" + "teidl.core.NodeExecutionIdentifier\022G\n\023re" + "ference_execution\030\020 \001(\0132*.flyteidl.core." + "WorkflowExecutionIdentifier\0227\n\017system_me" + "tadata\030\021 \001(\0132\036.flyteidl.admin.SystemMeta" + "data\"g\n\rExecutionMode\022\n\n\006MANUAL\020\000\022\r\n\tSCH" + "EDULED\020\001\022\n\n\006SYSTEM\020\002\022\014\n\010RELAUNCH\020\003\022\022\n\016CH" + "ILD_WORKFLOW\020\004\022\r\n\tRECOVERED\020\005\"G\n\020Notific" + "ationList\0223\n\rnotifications\030\001 \003(\0132\034.flyte" + "idl.admin.Notification\"\260\004\n\rExecutionSpec" + "\022.\n\013launch_plan\030\001 \001(\0132\031.flyteidl.core.Id" + "entifier\022-\n\006inputs\030\002 \001(\0132\031.flyteidl.core" + ".LiteralMapB\002\030\001\0223\n\010metadata\030\003 \001(\0132!.flyt" + "eidl.admin.ExecutionMetadata\0229\n\rnotifica" + "tions\030\005 \001(\0132 .flyteidl.admin.Notificatio" + "nListH\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n\006labels" + "\030\007 \001(\0132\026.flyteidl.admin.Labels\0220\n\013annota" + "tions\030\010 \001(\0132\033.flyteidl.admin.Annotations" + "\0228\n\020security_context\030\n \001(\0132\036.flyteidl.co" + "re.SecurityContext\022/\n\tauth_role\030\020 \001(\0132\030." + "flyteidl.admin.AuthRoleB\002\030\001\022;\n\022quality_o" + "f_service\030\021 \001(\0132\037.flyteidl.core.QualityO" + "fService\022\027\n\017max_parallelism\030\022 \001(\005B\030\n\026not" + "ification_overridesJ\004\010\004\020\005\"b\n\031ExecutionTe" + "rminateRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.co" + "re.WorkflowExecutionIdentifier\022\r\n\005cause\030" + "\002 \001(\t\"\034\n\032ExecutionTerminateResponse\"Y\n\037W" + "orkflowExecutionGetDataRequest\0226\n\002id\030\001 \001" + "(\0132*.flyteidl.core.WorkflowExecutionIden" + "tifier\"\336\001\n WorkflowExecutionGetDataRespo" + "nse\022,\n\007outputs\030\001 \001(\0132\027.flyteidl.admin.Ur" + "lBlobB\002\030\001\022+\n\006inputs\030\002 \001(\0132\027.flyteidl.adm" + "in.UrlBlobB\002\030\001\022.\n\013full_inputs\030\003 \001(\0132\031.fl" + "yteidl.core.LiteralMap\022/\n\014full_outputs\030\004" + " \001(\0132\031.flyteidl.core.LiteralMap\"\177\n\026Execu" + "tionUpdateRequest\0226\n\002id\030\001 \001(\0132*.flyteidl" + ".core.WorkflowExecutionIdentifier\022-\n\005sta" + "te\030\002 \001(\0162\036.flyteidl.admin.ExecutionState" + "\"\220\001\n\033ExecutionStateChangeDetails\022-\n\005stat" + "e\030\001 \001(\0162\036.flyteidl.admin.ExecutionState\022" + "/\n\013occurred_at\030\002 \001(\0132\032.google.protobuf.T" + "imestamp\022\021\n\tprincipal\030\003 \001(\t\"\031\n\027Execution" + "UpdateResponse*>\n\016ExecutionState\022\024\n\020EXEC" + "UTION_ACTIVE\020\000\022\026\n\022EXECUTION_ARCHIVED\020\001B7" + "Z5github.com/flyteorg/flyteidl/gen/pb-go" + "/flyteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fexecution_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fexecution_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fexecution_2eproto, - "flyteidl/admin/execution.proto", &assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto, 3581, + "flyteidl/admin/execution.proto", &assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto, 4023, }; void AddDescriptors_flyteidl_2fadmin_2fexecution_2eproto() { @@ -787,6 +886,20 @@ const ExecutionMetadata_ExecutionMode ExecutionMetadata::ExecutionMode_MIN; const ExecutionMetadata_ExecutionMode ExecutionMetadata::ExecutionMode_MAX; const int ExecutionMetadata::ExecutionMode_ARRAYSIZE; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 +const ::google::protobuf::EnumDescriptor* ExecutionState_descriptor() { + ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto); + return file_level_enum_descriptors_flyteidl_2fadmin_2fexecution_2eproto[1]; +} +bool ExecutionState_IsValid(int value) { + switch (value) { + case 0: + case 1: + return true; + default: + return false; + } +} + // =================================================================== @@ -4361,6 +4474,8 @@ void ExecutionClosure::InitAsDefaultInstance() { ::google::protobuf::Timestamp::internal_default_instance()); ::flyteidl::admin::_ExecutionClosure_default_instance_._instance.get_mutable()->workflow_id_ = const_cast< ::flyteidl::core::Identifier*>( ::flyteidl::core::Identifier::internal_default_instance()); + ::flyteidl::admin::_ExecutionClosure_default_instance_._instance.get_mutable()->state_change_details_ = const_cast< ::flyteidl::admin::ExecutionStateChangeDetails*>( + ::flyteidl::admin::ExecutionStateChangeDetails::internal_default_instance()); } class ExecutionClosure::HasBitSetters { public: @@ -4374,6 +4489,7 @@ class ExecutionClosure::HasBitSetters { static const ::google::protobuf::Timestamp& created_at(const ExecutionClosure* msg); static const ::google::protobuf::Timestamp& updated_at(const ExecutionClosure* msg); static const ::flyteidl::core::Identifier& workflow_id(const ExecutionClosure* msg); + static const ::flyteidl::admin::ExecutionStateChangeDetails& state_change_details(const ExecutionClosure* msg); }; const ::flyteidl::admin::LiteralMapBlob& @@ -4416,6 +4532,10 @@ const ::flyteidl::core::Identifier& ExecutionClosure::HasBitSetters::workflow_id(const ExecutionClosure* msg) { return *msg->workflow_id_; } +const ::flyteidl::admin::ExecutionStateChangeDetails& +ExecutionClosure::HasBitSetters::state_change_details(const ExecutionClosure* msg) { + return *msg->state_change_details_; +} void ExecutionClosure::set_allocated_outputs(::flyteidl::admin::LiteralMapBlob* outputs) { ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); clear_output_result(); @@ -4537,6 +4657,7 @@ const int ExecutionClosure::kCreatedAtFieldNumber; const int ExecutionClosure::kUpdatedAtFieldNumber; const int ExecutionClosure::kNotificationsFieldNumber; const int ExecutionClosure::kWorkflowIdFieldNumber; +const int ExecutionClosure::kStateChangeDetailsFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ExecutionClosure::ExecutionClosure() @@ -4579,6 +4700,11 @@ ExecutionClosure::ExecutionClosure(const ExecutionClosure& from) } else { workflow_id_ = nullptr; } + if (from.has_state_change_details()) { + state_change_details_ = new ::flyteidl::admin::ExecutionStateChangeDetails(*from.state_change_details_); + } else { + state_change_details_ = nullptr; + } phase_ = from.phase_; clear_has_output_result(); switch (from.output_result_case()) { @@ -4630,6 +4756,7 @@ void ExecutionClosure::SharedDtor() { if (this != internal_default_instance()) delete created_at_; if (this != internal_default_instance()) delete updated_at_; if (this != internal_default_instance()) delete workflow_id_; + if (this != internal_default_instance()) delete state_change_details_; if (has_output_result()) { clear_output_result(); } @@ -4706,6 +4833,10 @@ void ExecutionClosure::Clear() { delete workflow_id_; } workflow_id_ = nullptr; + if (GetArenaNoVirtual() == nullptr && state_change_details_ != nullptr) { + delete state_change_details_; + } + state_change_details_ = nullptr; phase_ = 0; clear_output_result(); _internal_metadata_.Clear(); @@ -4894,6 +5025,19 @@ const char* ExecutionClosure::_InternalParse(const char* begin, const char* end, {parser_till_end, object}, ptr - size, ptr)); break; } + // .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + case 14: { + if (static_cast<::google::protobuf::uint8>(tag) != 114) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::ExecutionStateChangeDetails::_InternalParse; + object = msg->mutable_state_change_details(); + 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) { @@ -5078,6 +5222,17 @@ bool ExecutionClosure::MergePartialFromCodedStream( break; } + // .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + case 14: { + if (static_cast< ::google::protobuf::uint8>(tag) == (114 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_state_change_details())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -5190,6 +5345,12 @@ void ExecutionClosure::SerializeWithCachedSizes( 13, HasBitSetters::output_data(this), output); } + // .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + if (this->has_state_change_details()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 14, HasBitSetters::state_change_details(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -5298,6 +5459,13 @@ ::google::protobuf::uint8* ExecutionClosure::InternalSerializeWithCachedSizesToA 13, HasBitSetters::output_data(this), target); } + // .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + if (this->has_state_change_details()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 14, HasBitSetters::state_change_details(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -5372,6 +5540,13 @@ size_t ExecutionClosure::ByteSizeLong() const { *workflow_id_); } + // .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + if (this->has_state_change_details()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *state_change_details_); + } + // .flyteidl.core.WorkflowExecution.Phase phase = 4; if (this->phase() != 0) { total_size += 1 + @@ -5464,6 +5639,9 @@ void ExecutionClosure::MergeFrom(const ExecutionClosure& from) { if (from.has_workflow_id()) { mutable_workflow_id()->::flyteidl::core::Identifier::MergeFrom(from.workflow_id()); } + if (from.has_state_change_details()) { + mutable_state_change_details()->::flyteidl::admin::ExecutionStateChangeDetails::MergeFrom(from.state_change_details()); + } if (from.phase() != 0) { set_phase(from.phase()); } @@ -5526,6 +5704,7 @@ void ExecutionClosure::InternalSwap(ExecutionClosure* other) { swap(created_at_, other->created_at_); swap(updated_at_, other->updated_at_); swap(workflow_id_, other->workflow_id_); + swap(state_change_details_, other->state_change_details_); swap(phase_, other->phase_); swap(output_result_, other->output_result_); swap(_oneof_case_[0], other->_oneof_case_[0]); @@ -9174,49 +9353,1019 @@ ::google::protobuf::Metadata WorkflowExecutionGetDataResponse::GetMetadata() con } -// @@protoc_insertion_point(namespace_scope) -} // namespace admin -} // namespace flyteidl -namespace google { -namespace protobuf { -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionCreateRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionCreateRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ExecutionCreateRequest >(arena); +// =================================================================== + +void ExecutionUpdateRequest::InitAsDefaultInstance() { + ::flyteidl::admin::_ExecutionUpdateRequest_default_instance_._instance.get_mutable()->id_ = const_cast< ::flyteidl::core::WorkflowExecutionIdentifier*>( + ::flyteidl::core::WorkflowExecutionIdentifier::internal_default_instance()); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionRelaunchRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionRelaunchRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ExecutionRelaunchRequest >(arena); +class ExecutionUpdateRequest::HasBitSetters { + public: + static const ::flyteidl::core::WorkflowExecutionIdentifier& id(const ExecutionUpdateRequest* msg); +}; + +const ::flyteidl::core::WorkflowExecutionIdentifier& +ExecutionUpdateRequest::HasBitSetters::id(const ExecutionUpdateRequest* msg) { + return *msg->id_; } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionRecoverRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionRecoverRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ExecutionRecoverRequest >(arena); +void ExecutionUpdateRequest::clear_id() { + if (GetArenaNoVirtual() == nullptr && id_ != nullptr) { + delete id_; + } + id_ = nullptr; } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionCreateResponse* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionCreateResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ExecutionCreateResponse >(arena); +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ExecutionUpdateRequest::kIdFieldNumber; +const int ExecutionUpdateRequest::kStateFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ExecutionUpdateRequest::ExecutionUpdateRequest() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ExecutionUpdateRequest) } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::WorkflowExecutionGetRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::WorkflowExecutionGetRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::WorkflowExecutionGetRequest >(arena); +ExecutionUpdateRequest::ExecutionUpdateRequest(const ExecutionUpdateRequest& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + if (from.has_id()) { + id_ = new ::flyteidl::core::WorkflowExecutionIdentifier(*from.id_); + } else { + id_ = nullptr; + } + state_ = from.state_; + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ExecutionUpdateRequest) } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::Execution* Arena::CreateMaybeMessage< ::flyteidl::admin::Execution >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::Execution >(arena); + +void ExecutionUpdateRequest::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ExecutionUpdateRequest_flyteidl_2fadmin_2fexecution_2eproto.base); + ::memset(&id_, 0, static_cast( + reinterpret_cast(&state_) - + reinterpret_cast(&id_)) + sizeof(state_)); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionList* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionList >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ExecutionList >(arena); + +ExecutionUpdateRequest::~ExecutionUpdateRequest() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ExecutionUpdateRequest) + SharedDtor(); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::LiteralMapBlob* Arena::CreateMaybeMessage< ::flyteidl::admin::LiteralMapBlob >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::LiteralMapBlob >(arena); + +void ExecutionUpdateRequest::SharedDtor() { + if (this != internal_default_instance()) delete id_; } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::AbortMetadata* Arena::CreateMaybeMessage< ::flyteidl::admin::AbortMetadata >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::AbortMetadata >(arena); + +void ExecutionUpdateRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionClosure* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionClosure >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ExecutionClosure >(arena); +const ExecutionUpdateRequest& ExecutionUpdateRequest::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ExecutionUpdateRequest_flyteidl_2fadmin_2fexecution_2eproto.base); + return *internal_default_instance(); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::SystemMetadata* Arena::CreateMaybeMessage< ::flyteidl::admin::SystemMetadata >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::SystemMetadata >(arena); + + +void ExecutionUpdateRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ExecutionUpdateRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaNoVirtual() == nullptr && id_ != nullptr) { + delete id_; + } + id_ = nullptr; + state_ = 0; + _internal_metadata_.Clear(); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionMetadata* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionMetadata >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::ExecutionMetadata >(arena); + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ExecutionUpdateRequest::_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.WorkflowExecutionIdentifier 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::WorkflowExecutionIdentifier::_InternalParse; + object = msg->mutable_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; + } + // .flyteidl.admin.ExecutionState state = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual; + ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr); + msg->set_state(static_cast<::flyteidl::admin::ExecutionState>(val)); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + 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; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); } -template<> PROTOBUF_NOINLINE ::flyteidl::admin::NotificationList* Arena::CreateMaybeMessage< ::flyteidl::admin::NotificationList >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::admin::NotificationList >(arena); +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ExecutionUpdateRequest::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.ExecutionUpdateRequest) + 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.WorkflowExecutionIdentifier id = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_id())); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.admin.ExecutionState state = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) { + int value = 0; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + set_state(static_cast< ::flyteidl::admin::ExecutionState >(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.ExecutionUpdateRequest) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ExecutionUpdateRequest) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ExecutionUpdateRequest::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ExecutionUpdateRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.core.WorkflowExecutionIdentifier id = 1; + if (this->has_id()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 1, HasBitSetters::id(this), output); + } + + // .flyteidl.admin.ExecutionState state = 2; + if (this->state() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 2, this->state(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ExecutionUpdateRequest) +} + +::google::protobuf::uint8* ExecutionUpdateRequest::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ExecutionUpdateRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.core.WorkflowExecutionIdentifier id = 1; + if (this->has_id()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 1, HasBitSetters::id(this), target); + } + + // .flyteidl.admin.ExecutionState state = 2; + if (this->state() != 0) { + target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( + 2, this->state(), target); + } + + 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.ExecutionUpdateRequest) + return target; +} + +size_t ExecutionUpdateRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ExecutionUpdateRequest) + 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; + + // .flyteidl.core.WorkflowExecutionIdentifier id = 1; + if (this->has_id()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *id_); + } + + // .flyteidl.admin.ExecutionState state = 2; + if (this->state() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->state()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ExecutionUpdateRequest::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ExecutionUpdateRequest) + GOOGLE_DCHECK_NE(&from, this); + const ExecutionUpdateRequest* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ExecutionUpdateRequest) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ExecutionUpdateRequest) + MergeFrom(*source); + } +} + +void ExecutionUpdateRequest::MergeFrom(const ExecutionUpdateRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ExecutionUpdateRequest) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.has_id()) { + mutable_id()->::flyteidl::core::WorkflowExecutionIdentifier::MergeFrom(from.id()); + } + if (from.state() != 0) { + set_state(from.state()); + } +} + +void ExecutionUpdateRequest::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ExecutionUpdateRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ExecutionUpdateRequest::CopyFrom(const ExecutionUpdateRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ExecutionUpdateRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ExecutionUpdateRequest::IsInitialized() const { + return true; +} + +void ExecutionUpdateRequest::Swap(ExecutionUpdateRequest* other) { + if (other == this) return; + InternalSwap(other); +} +void ExecutionUpdateRequest::InternalSwap(ExecutionUpdateRequest* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(id_, other->id_); + swap(state_, other->state_); +} + +::google::protobuf::Metadata ExecutionUpdateRequest::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fexecution_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ExecutionStateChangeDetails::InitAsDefaultInstance() { + ::flyteidl::admin::_ExecutionStateChangeDetails_default_instance_._instance.get_mutable()->occurred_at_ = const_cast< ::google::protobuf::Timestamp*>( + ::google::protobuf::Timestamp::internal_default_instance()); +} +class ExecutionStateChangeDetails::HasBitSetters { + public: + static const ::google::protobuf::Timestamp& occurred_at(const ExecutionStateChangeDetails* msg); +}; + +const ::google::protobuf::Timestamp& +ExecutionStateChangeDetails::HasBitSetters::occurred_at(const ExecutionStateChangeDetails* msg) { + return *msg->occurred_at_; +} +void ExecutionStateChangeDetails::clear_occurred_at() { + if (GetArenaNoVirtual() == nullptr && occurred_at_ != nullptr) { + delete occurred_at_; + } + occurred_at_ = nullptr; +} +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ExecutionStateChangeDetails::kStateFieldNumber; +const int ExecutionStateChangeDetails::kOccurredAtFieldNumber; +const int ExecutionStateChangeDetails::kPrincipalFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ExecutionStateChangeDetails::ExecutionStateChangeDetails() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ExecutionStateChangeDetails) +} +ExecutionStateChangeDetails::ExecutionStateChangeDetails(const ExecutionStateChangeDetails& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + principal_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.principal().size() > 0) { + principal_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.principal_); + } + if (from.has_occurred_at()) { + occurred_at_ = new ::google::protobuf::Timestamp(*from.occurred_at_); + } else { + occurred_at_ = nullptr; + } + state_ = from.state_; + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ExecutionStateChangeDetails) +} + +void ExecutionStateChangeDetails::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto.base); + principal_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + ::memset(&occurred_at_, 0, static_cast( + reinterpret_cast(&state_) - + reinterpret_cast(&occurred_at_)) + sizeof(state_)); +} + +ExecutionStateChangeDetails::~ExecutionStateChangeDetails() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ExecutionStateChangeDetails) + SharedDtor(); +} + +void ExecutionStateChangeDetails::SharedDtor() { + principal_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (this != internal_default_instance()) delete occurred_at_; +} + +void ExecutionStateChangeDetails::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ExecutionStateChangeDetails& ExecutionStateChangeDetails::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ExecutionStateChangeDetails_flyteidl_2fadmin_2fexecution_2eproto.base); + return *internal_default_instance(); +} + + +void ExecutionStateChangeDetails::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ExecutionStateChangeDetails) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + principal_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (GetArenaNoVirtual() == nullptr && occurred_at_ != nullptr) { + delete occurred_at_; + } + occurred_at_ = nullptr; + state_ = 0; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ExecutionStateChangeDetails::_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.admin.ExecutionState state = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual; + ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr); + msg->set_state(static_cast<::flyteidl::admin::ExecutionState>(val)); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + break; + } + // .google.protobuf.Timestamp occurred_at = 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); + parser_till_end = ::google::protobuf::Timestamp::_InternalParse; + object = msg->mutable_occurred_at(); + 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 principal = 3; + case 3: { + if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ExecutionStateChangeDetails.principal"); + object = msg->mutable_principal(); + 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; + } + 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 ExecutionStateChangeDetails::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.ExecutionStateChangeDetails) + 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.admin.ExecutionState state = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) { + int value = 0; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + set_state(static_cast< ::flyteidl::admin::ExecutionState >(value)); + } else { + goto handle_unusual; + } + break; + } + + // .google.protobuf.Timestamp occurred_at = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_occurred_at())); + } else { + goto handle_unusual; + } + break; + } + + // string principal = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_principal())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->principal().data(), static_cast(this->principal().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ExecutionStateChangeDetails.principal")); + } 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.ExecutionStateChangeDetails) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ExecutionStateChangeDetails) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ExecutionStateChangeDetails::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ExecutionStateChangeDetails) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.admin.ExecutionState state = 1; + if (this->state() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 1, this->state(), output); + } + + // .google.protobuf.Timestamp occurred_at = 2; + if (this->has_occurred_at()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 2, HasBitSetters::occurred_at(this), output); + } + + // string principal = 3; + if (this->principal().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->principal().data(), static_cast(this->principal().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ExecutionStateChangeDetails.principal"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 3, this->principal(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ExecutionStateChangeDetails) +} + +::google::protobuf::uint8* ExecutionStateChangeDetails::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ExecutionStateChangeDetails) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.admin.ExecutionState state = 1; + if (this->state() != 0) { + target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( + 1, this->state(), target); + } + + // .google.protobuf.Timestamp occurred_at = 2; + if (this->has_occurred_at()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 2, HasBitSetters::occurred_at(this), target); + } + + // string principal = 3; + if (this->principal().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->principal().data(), static_cast(this->principal().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ExecutionStateChangeDetails.principal"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 3, this->principal(), target); + } + + 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.ExecutionStateChangeDetails) + return target; +} + +size_t ExecutionStateChangeDetails::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ExecutionStateChangeDetails) + 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; + + // string principal = 3; + if (this->principal().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->principal()); + } + + // .google.protobuf.Timestamp occurred_at = 2; + if (this->has_occurred_at()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *occurred_at_); + } + + // .flyteidl.admin.ExecutionState state = 1; + if (this->state() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->state()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ExecutionStateChangeDetails::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ExecutionStateChangeDetails) + GOOGLE_DCHECK_NE(&from, this); + const ExecutionStateChangeDetails* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ExecutionStateChangeDetails) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ExecutionStateChangeDetails) + MergeFrom(*source); + } +} + +void ExecutionStateChangeDetails::MergeFrom(const ExecutionStateChangeDetails& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ExecutionStateChangeDetails) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.principal().size() > 0) { + + principal_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.principal_); + } + if (from.has_occurred_at()) { + mutable_occurred_at()->::google::protobuf::Timestamp::MergeFrom(from.occurred_at()); + } + if (from.state() != 0) { + set_state(from.state()); + } +} + +void ExecutionStateChangeDetails::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ExecutionStateChangeDetails) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ExecutionStateChangeDetails::CopyFrom(const ExecutionStateChangeDetails& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ExecutionStateChangeDetails) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ExecutionStateChangeDetails::IsInitialized() const { + return true; +} + +void ExecutionStateChangeDetails::Swap(ExecutionStateChangeDetails* other) { + if (other == this) return; + InternalSwap(other); +} +void ExecutionStateChangeDetails::InternalSwap(ExecutionStateChangeDetails* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + principal_.Swap(&other->principal_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(occurred_at_, other->occurred_at_); + swap(state_, other->state_); +} + +::google::protobuf::Metadata ExecutionStateChangeDetails::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fexecution_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ExecutionUpdateResponse::InitAsDefaultInstance() { +} +class ExecutionUpdateResponse::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ExecutionUpdateResponse::ExecutionUpdateResponse() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ExecutionUpdateResponse) +} +ExecutionUpdateResponse::ExecutionUpdateResponse(const ExecutionUpdateResponse& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ExecutionUpdateResponse) +} + +void ExecutionUpdateResponse::SharedCtor() { +} + +ExecutionUpdateResponse::~ExecutionUpdateResponse() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ExecutionUpdateResponse) + SharedDtor(); +} + +void ExecutionUpdateResponse::SharedDtor() { +} + +void ExecutionUpdateResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ExecutionUpdateResponse& ExecutionUpdateResponse::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ExecutionUpdateResponse_flyteidl_2fadmin_2fexecution_2eproto.base); + return *internal_default_instance(); +} + + +void ExecutionUpdateResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ExecutionUpdateResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ExecutionUpdateResponse::_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) { + default: { + 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; +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ExecutionUpdateResponse::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.ExecutionUpdateResponse) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ExecutionUpdateResponse) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ExecutionUpdateResponse) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ExecutionUpdateResponse::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ExecutionUpdateResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ExecutionUpdateResponse) +} + +::google::protobuf::uint8* ExecutionUpdateResponse::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ExecutionUpdateResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + 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.ExecutionUpdateResponse) + return target; +} + +size_t ExecutionUpdateResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ExecutionUpdateResponse) + 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; + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ExecutionUpdateResponse::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ExecutionUpdateResponse) + GOOGLE_DCHECK_NE(&from, this); + const ExecutionUpdateResponse* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ExecutionUpdateResponse) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ExecutionUpdateResponse) + MergeFrom(*source); + } +} + +void ExecutionUpdateResponse::MergeFrom(const ExecutionUpdateResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ExecutionUpdateResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void ExecutionUpdateResponse::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ExecutionUpdateResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ExecutionUpdateResponse::CopyFrom(const ExecutionUpdateResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ExecutionUpdateResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ExecutionUpdateResponse::IsInitialized() const { + return true; +} + +void ExecutionUpdateResponse::Swap(ExecutionUpdateResponse* other) { + if (other == this) return; + InternalSwap(other); +} +void ExecutionUpdateResponse::InternalSwap(ExecutionUpdateResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::google::protobuf::Metadata ExecutionUpdateResponse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fexecution_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fexecution_2eproto[kIndexInFileMessages]; +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace admin +} // namespace flyteidl +namespace google { +namespace protobuf { +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionCreateRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionCreateRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionCreateRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionRelaunchRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionRelaunchRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionRelaunchRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionRecoverRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionRecoverRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionRecoverRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionCreateResponse* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionCreateResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionCreateResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::WorkflowExecutionGetRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::WorkflowExecutionGetRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::WorkflowExecutionGetRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::Execution* Arena::CreateMaybeMessage< ::flyteidl::admin::Execution >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::Execution >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionList* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionList >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionList >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::LiteralMapBlob* Arena::CreateMaybeMessage< ::flyteidl::admin::LiteralMapBlob >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::LiteralMapBlob >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::AbortMetadata* Arena::CreateMaybeMessage< ::flyteidl::admin::AbortMetadata >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::AbortMetadata >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionClosure* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionClosure >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionClosure >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::SystemMetadata* Arena::CreateMaybeMessage< ::flyteidl::admin::SystemMetadata >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::SystemMetadata >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionMetadata* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionMetadata >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionMetadata >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::NotificationList* Arena::CreateMaybeMessage< ::flyteidl::admin::NotificationList >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::NotificationList >(arena); } template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionSpec* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionSpec >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::ExecutionSpec >(arena); @@ -9233,6 +10382,15 @@ template<> PROTOBUF_NOINLINE ::flyteidl::admin::WorkflowExecutionGetDataRequest* template<> PROTOBUF_NOINLINE ::flyteidl::admin::WorkflowExecutionGetDataResponse* Arena::CreateMaybeMessage< ::flyteidl::admin::WorkflowExecutionGetDataResponse >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::WorkflowExecutionGetDataResponse >(arena); } +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionUpdateRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionUpdateRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionUpdateRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionStateChangeDetails* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionStateChangeDetails >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionStateChangeDetails >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ExecutionUpdateResponse* Arena::CreateMaybeMessage< ::flyteidl::admin::ExecutionUpdateResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ExecutionUpdateResponse >(arena); +} } // namespace protobuf } // namespace google diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h index e08345e8a8..0ea032bef3 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/execution.pb.h @@ -49,7 +49,7 @@ struct TableStruct_flyteidl_2fadmin_2fexecution_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[18] + static const ::google::protobuf::internal::ParseTable schema[21] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::FieldMetadata field_metadata[]; static const ::google::protobuf::internal::SerializationTable serialization_table[]; @@ -88,12 +88,21 @@ extern ExecutionRelaunchRequestDefaultTypeInternal _ExecutionRelaunchRequest_def class ExecutionSpec; class ExecutionSpecDefaultTypeInternal; extern ExecutionSpecDefaultTypeInternal _ExecutionSpec_default_instance_; +class ExecutionStateChangeDetails; +class ExecutionStateChangeDetailsDefaultTypeInternal; +extern ExecutionStateChangeDetailsDefaultTypeInternal _ExecutionStateChangeDetails_default_instance_; class ExecutionTerminateRequest; class ExecutionTerminateRequestDefaultTypeInternal; extern ExecutionTerminateRequestDefaultTypeInternal _ExecutionTerminateRequest_default_instance_; class ExecutionTerminateResponse; class ExecutionTerminateResponseDefaultTypeInternal; extern ExecutionTerminateResponseDefaultTypeInternal _ExecutionTerminateResponse_default_instance_; +class ExecutionUpdateRequest; +class ExecutionUpdateRequestDefaultTypeInternal; +extern ExecutionUpdateRequestDefaultTypeInternal _ExecutionUpdateRequest_default_instance_; +class ExecutionUpdateResponse; +class ExecutionUpdateResponseDefaultTypeInternal; +extern ExecutionUpdateResponseDefaultTypeInternal _ExecutionUpdateResponse_default_instance_; class LiteralMapBlob; class LiteralMapBlobDefaultTypeInternal; extern LiteralMapBlobDefaultTypeInternal _LiteralMapBlob_default_instance_; @@ -126,8 +135,11 @@ template<> ::flyteidl::admin::ExecutionMetadata* Arena::CreateMaybeMessage<::fly template<> ::flyteidl::admin::ExecutionRecoverRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionRecoverRequest>(Arena*); template<> ::flyteidl::admin::ExecutionRelaunchRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionRelaunchRequest>(Arena*); template<> ::flyteidl::admin::ExecutionSpec* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionSpec>(Arena*); +template<> ::flyteidl::admin::ExecutionStateChangeDetails* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionStateChangeDetails>(Arena*); template<> ::flyteidl::admin::ExecutionTerminateRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionTerminateRequest>(Arena*); template<> ::flyteidl::admin::ExecutionTerminateResponse* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionTerminateResponse>(Arena*); +template<> ::flyteidl::admin::ExecutionUpdateRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionUpdateRequest>(Arena*); +template<> ::flyteidl::admin::ExecutionUpdateResponse* Arena::CreateMaybeMessage<::flyteidl::admin::ExecutionUpdateResponse>(Arena*); template<> ::flyteidl::admin::LiteralMapBlob* Arena::CreateMaybeMessage<::flyteidl::admin::LiteralMapBlob>(Arena*); template<> ::flyteidl::admin::NotificationList* Arena::CreateMaybeMessage<::flyteidl::admin::NotificationList>(Arena*); template<> ::flyteidl::admin::SystemMetadata* Arena::CreateMaybeMessage<::flyteidl::admin::SystemMetadata>(Arena*); @@ -164,6 +176,27 @@ inline bool ExecutionMetadata_ExecutionMode_Parse( return ::google::protobuf::internal::ParseNamedEnum( ExecutionMetadata_ExecutionMode_descriptor(), name, value); } +enum ExecutionState { + EXECUTION_ACTIVE = 0, + EXECUTION_ARCHIVED = 1, + ExecutionState_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(), + ExecutionState_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max() +}; +bool ExecutionState_IsValid(int value); +const ExecutionState ExecutionState_MIN = EXECUTION_ACTIVE; +const ExecutionState ExecutionState_MAX = EXECUTION_ARCHIVED; +const int ExecutionState_ARRAYSIZE = ExecutionState_MAX + 1; + +const ::google::protobuf::EnumDescriptor* ExecutionState_descriptor(); +inline const ::std::string& ExecutionState_Name(ExecutionState value) { + return ::google::protobuf::internal::NameOfEnum( + ExecutionState_descriptor(), value); +} +inline bool ExecutionState_Parse( + const ::std::string& name, ExecutionState* value) { + return ::google::protobuf::internal::ParseNamedEnum( + ExecutionState_descriptor(), name, value); +} // =================================================================== class ExecutionCreateRequest final : @@ -1560,6 +1593,15 @@ class ExecutionClosure final : ::flyteidl::core::Identifier* mutable_workflow_id(); void set_allocated_workflow_id(::flyteidl::core::Identifier* workflow_id); + // .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + bool has_state_change_details() const; + void clear_state_change_details(); + static const int kStateChangeDetailsFieldNumber = 14; + const ::flyteidl::admin::ExecutionStateChangeDetails& state_change_details() const; + ::flyteidl::admin::ExecutionStateChangeDetails* release_state_change_details(); + ::flyteidl::admin::ExecutionStateChangeDetails* mutable_state_change_details(); + void set_allocated_state_change_details(::flyteidl::admin::ExecutionStateChangeDetails* state_change_details); + // .flyteidl.core.WorkflowExecution.Phase phase = 4; void clear_phase(); static const int kPhaseFieldNumber = 4; @@ -1641,6 +1683,7 @@ class ExecutionClosure final : ::google::protobuf::Timestamp* created_at_; ::google::protobuf::Timestamp* updated_at_; ::flyteidl::core::Identifier* workflow_id_; + ::flyteidl::admin::ExecutionStateChangeDetails* state_change_details_; int phase_; union OutputResultUnion { OutputResultUnion() {} @@ -2826,6 +2869,370 @@ class WorkflowExecutionGetDataResponse final : mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fexecution_2eproto; }; +// ------------------------------------------------------------------- + +class ExecutionUpdateRequest final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ExecutionUpdateRequest) */ { + public: + ExecutionUpdateRequest(); + virtual ~ExecutionUpdateRequest(); + + ExecutionUpdateRequest(const ExecutionUpdateRequest& from); + + inline ExecutionUpdateRequest& operator=(const ExecutionUpdateRequest& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ExecutionUpdateRequest(ExecutionUpdateRequest&& from) noexcept + : ExecutionUpdateRequest() { + *this = ::std::move(from); + } + + inline ExecutionUpdateRequest& operator=(ExecutionUpdateRequest&& 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 ExecutionUpdateRequest& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ExecutionUpdateRequest* internal_default_instance() { + return reinterpret_cast( + &_ExecutionUpdateRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 18; + + void Swap(ExecutionUpdateRequest* other); + friend void swap(ExecutionUpdateRequest& a, ExecutionUpdateRequest& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ExecutionUpdateRequest* New() const final { + return CreateMaybeMessage(nullptr); + } + + ExecutionUpdateRequest* 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 ExecutionUpdateRequest& from); + void MergeFrom(const ExecutionUpdateRequest& 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(ExecutionUpdateRequest* 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 ------------------------------------------------------- + + // .flyteidl.core.WorkflowExecutionIdentifier id = 1; + bool has_id() const; + void clear_id(); + static const int kIdFieldNumber = 1; + const ::flyteidl::core::WorkflowExecutionIdentifier& id() const; + ::flyteidl::core::WorkflowExecutionIdentifier* release_id(); + ::flyteidl::core::WorkflowExecutionIdentifier* mutable_id(); + void set_allocated_id(::flyteidl::core::WorkflowExecutionIdentifier* id); + + // .flyteidl.admin.ExecutionState state = 2; + void clear_state(); + static const int kStateFieldNumber = 2; + ::flyteidl::admin::ExecutionState state() const; + void set_state(::flyteidl::admin::ExecutionState value); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionUpdateRequest) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::flyteidl::core::WorkflowExecutionIdentifier* id_; + int state_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fexecution_2eproto; +}; +// ------------------------------------------------------------------- + +class ExecutionStateChangeDetails final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ExecutionStateChangeDetails) */ { + public: + ExecutionStateChangeDetails(); + virtual ~ExecutionStateChangeDetails(); + + ExecutionStateChangeDetails(const ExecutionStateChangeDetails& from); + + inline ExecutionStateChangeDetails& operator=(const ExecutionStateChangeDetails& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ExecutionStateChangeDetails(ExecutionStateChangeDetails&& from) noexcept + : ExecutionStateChangeDetails() { + *this = ::std::move(from); + } + + inline ExecutionStateChangeDetails& operator=(ExecutionStateChangeDetails&& 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 ExecutionStateChangeDetails& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ExecutionStateChangeDetails* internal_default_instance() { + return reinterpret_cast( + &_ExecutionStateChangeDetails_default_instance_); + } + static constexpr int kIndexInFileMessages = + 19; + + void Swap(ExecutionStateChangeDetails* other); + friend void swap(ExecutionStateChangeDetails& a, ExecutionStateChangeDetails& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ExecutionStateChangeDetails* New() const final { + return CreateMaybeMessage(nullptr); + } + + ExecutionStateChangeDetails* 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 ExecutionStateChangeDetails& from); + void MergeFrom(const ExecutionStateChangeDetails& 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(ExecutionStateChangeDetails* 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 ------------------------------------------------------- + + // string principal = 3; + void clear_principal(); + static const int kPrincipalFieldNumber = 3; + const ::std::string& principal() const; + void set_principal(const ::std::string& value); + #if LANG_CXX11 + void set_principal(::std::string&& value); + #endif + void set_principal(const char* value); + void set_principal(const char* value, size_t size); + ::std::string* mutable_principal(); + ::std::string* release_principal(); + void set_allocated_principal(::std::string* principal); + + // .google.protobuf.Timestamp occurred_at = 2; + bool has_occurred_at() const; + void clear_occurred_at(); + static const int kOccurredAtFieldNumber = 2; + const ::google::protobuf::Timestamp& occurred_at() const; + ::google::protobuf::Timestamp* release_occurred_at(); + ::google::protobuf::Timestamp* mutable_occurred_at(); + void set_allocated_occurred_at(::google::protobuf::Timestamp* occurred_at); + + // .flyteidl.admin.ExecutionState state = 1; + void clear_state(); + static const int kStateFieldNumber = 1; + ::flyteidl::admin::ExecutionState state() const; + void set_state(::flyteidl::admin::ExecutionState value); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionStateChangeDetails) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr principal_; + ::google::protobuf::Timestamp* occurred_at_; + int state_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fexecution_2eproto; +}; +// ------------------------------------------------------------------- + +class ExecutionUpdateResponse final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ExecutionUpdateResponse) */ { + public: + ExecutionUpdateResponse(); + virtual ~ExecutionUpdateResponse(); + + ExecutionUpdateResponse(const ExecutionUpdateResponse& from); + + inline ExecutionUpdateResponse& operator=(const ExecutionUpdateResponse& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ExecutionUpdateResponse(ExecutionUpdateResponse&& from) noexcept + : ExecutionUpdateResponse() { + *this = ::std::move(from); + } + + inline ExecutionUpdateResponse& operator=(ExecutionUpdateResponse&& 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 ExecutionUpdateResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ExecutionUpdateResponse* internal_default_instance() { + return reinterpret_cast( + &_ExecutionUpdateResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 20; + + void Swap(ExecutionUpdateResponse* other); + friend void swap(ExecutionUpdateResponse& a, ExecutionUpdateResponse& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ExecutionUpdateResponse* New() const final { + return CreateMaybeMessage(nullptr); + } + + ExecutionUpdateResponse* 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 ExecutionUpdateResponse& from); + void MergeFrom(const ExecutionUpdateResponse& 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(ExecutionUpdateResponse* 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 ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionUpdateResponse) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fexecution_2eproto; +}; // =================================================================== @@ -4496,6 +4903,57 @@ inline void ExecutionClosure::set_allocated_workflow_id(::flyteidl::core::Identi // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ExecutionClosure.workflow_id) } +// .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; +inline bool ExecutionClosure::has_state_change_details() const { + return this != internal_default_instance() && state_change_details_ != nullptr; +} +inline void ExecutionClosure::clear_state_change_details() { + if (GetArenaNoVirtual() == nullptr && state_change_details_ != nullptr) { + delete state_change_details_; + } + state_change_details_ = nullptr; +} +inline const ::flyteidl::admin::ExecutionStateChangeDetails& ExecutionClosure::state_change_details() const { + const ::flyteidl::admin::ExecutionStateChangeDetails* p = state_change_details_; + // @@protoc_insertion_point(field_get:flyteidl.admin.ExecutionClosure.state_change_details) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_ExecutionStateChangeDetails_default_instance_); +} +inline ::flyteidl::admin::ExecutionStateChangeDetails* ExecutionClosure::release_state_change_details() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ExecutionClosure.state_change_details) + + ::flyteidl::admin::ExecutionStateChangeDetails* temp = state_change_details_; + state_change_details_ = nullptr; + return temp; +} +inline ::flyteidl::admin::ExecutionStateChangeDetails* ExecutionClosure::mutable_state_change_details() { + + if (state_change_details_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::ExecutionStateChangeDetails>(GetArenaNoVirtual()); + state_change_details_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ExecutionClosure.state_change_details) + return state_change_details_; +} +inline void ExecutionClosure::set_allocated_state_change_details(::flyteidl::admin::ExecutionStateChangeDetails* state_change_details) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete state_change_details_; + } + if (state_change_details) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + state_change_details = ::google::protobuf::internal::GetOwnedMessage( + message_arena, state_change_details, submessage_arena); + } + + } else { + + } + state_change_details_ = state_change_details; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ExecutionClosure.state_change_details) +} + inline bool ExecutionClosure::has_output_result() const { return output_result_case() != OUTPUT_RESULT_NOT_SET; } @@ -5667,6 +6125,190 @@ inline void WorkflowExecutionGetDataResponse::set_allocated_full_outputs(::flyte // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.WorkflowExecutionGetDataResponse.full_outputs) } +// ------------------------------------------------------------------- + +// ExecutionUpdateRequest + +// .flyteidl.core.WorkflowExecutionIdentifier id = 1; +inline bool ExecutionUpdateRequest::has_id() const { + return this != internal_default_instance() && id_ != nullptr; +} +inline const ::flyteidl::core::WorkflowExecutionIdentifier& ExecutionUpdateRequest::id() const { + const ::flyteidl::core::WorkflowExecutionIdentifier* p = id_; + // @@protoc_insertion_point(field_get:flyteidl.admin.ExecutionUpdateRequest.id) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::core::_WorkflowExecutionIdentifier_default_instance_); +} +inline ::flyteidl::core::WorkflowExecutionIdentifier* ExecutionUpdateRequest::release_id() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ExecutionUpdateRequest.id) + + ::flyteidl::core::WorkflowExecutionIdentifier* temp = id_; + id_ = nullptr; + return temp; +} +inline ::flyteidl::core::WorkflowExecutionIdentifier* ExecutionUpdateRequest::mutable_id() { + + if (id_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::core::WorkflowExecutionIdentifier>(GetArenaNoVirtual()); + id_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ExecutionUpdateRequest.id) + return id_; +} +inline void ExecutionUpdateRequest::set_allocated_id(::flyteidl::core::WorkflowExecutionIdentifier* id) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(id_); + } + if (id) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + id = ::google::protobuf::internal::GetOwnedMessage( + message_arena, id, submessage_arena); + } + + } else { + + } + id_ = id; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ExecutionUpdateRequest.id) +} + +// .flyteidl.admin.ExecutionState state = 2; +inline void ExecutionUpdateRequest::clear_state() { + state_ = 0; +} +inline ::flyteidl::admin::ExecutionState ExecutionUpdateRequest::state() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ExecutionUpdateRequest.state) + return static_cast< ::flyteidl::admin::ExecutionState >(state_); +} +inline void ExecutionUpdateRequest::set_state(::flyteidl::admin::ExecutionState value) { + + state_ = value; + // @@protoc_insertion_point(field_set:flyteidl.admin.ExecutionUpdateRequest.state) +} + +// ------------------------------------------------------------------- + +// ExecutionStateChangeDetails + +// .flyteidl.admin.ExecutionState state = 1; +inline void ExecutionStateChangeDetails::clear_state() { + state_ = 0; +} +inline ::flyteidl::admin::ExecutionState ExecutionStateChangeDetails::state() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ExecutionStateChangeDetails.state) + return static_cast< ::flyteidl::admin::ExecutionState >(state_); +} +inline void ExecutionStateChangeDetails::set_state(::flyteidl::admin::ExecutionState value) { + + state_ = value; + // @@protoc_insertion_point(field_set:flyteidl.admin.ExecutionStateChangeDetails.state) +} + +// .google.protobuf.Timestamp occurred_at = 2; +inline bool ExecutionStateChangeDetails::has_occurred_at() const { + return this != internal_default_instance() && occurred_at_ != nullptr; +} +inline const ::google::protobuf::Timestamp& ExecutionStateChangeDetails::occurred_at() const { + const ::google::protobuf::Timestamp* p = occurred_at_; + // @@protoc_insertion_point(field_get:flyteidl.admin.ExecutionStateChangeDetails.occurred_at) + return p != nullptr ? *p : *reinterpret_cast( + &::google::protobuf::_Timestamp_default_instance_); +} +inline ::google::protobuf::Timestamp* ExecutionStateChangeDetails::release_occurred_at() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ExecutionStateChangeDetails.occurred_at) + + ::google::protobuf::Timestamp* temp = occurred_at_; + occurred_at_ = nullptr; + return temp; +} +inline ::google::protobuf::Timestamp* ExecutionStateChangeDetails::mutable_occurred_at() { + + if (occurred_at_ == nullptr) { + auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual()); + occurred_at_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ExecutionStateChangeDetails.occurred_at) + return occurred_at_; +} +inline void ExecutionStateChangeDetails::set_allocated_occurred_at(::google::protobuf::Timestamp* occurred_at) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(occurred_at_); + } + if (occurred_at) { + ::google::protobuf::Arena* submessage_arena = + reinterpret_cast<::google::protobuf::MessageLite*>(occurred_at)->GetArena(); + if (message_arena != submessage_arena) { + occurred_at = ::google::protobuf::internal::GetOwnedMessage( + message_arena, occurred_at, submessage_arena); + } + + } else { + + } + occurred_at_ = occurred_at; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ExecutionStateChangeDetails.occurred_at) +} + +// string principal = 3; +inline void ExecutionStateChangeDetails::clear_principal() { + principal_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ExecutionStateChangeDetails::principal() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ExecutionStateChangeDetails.principal) + return principal_.GetNoArena(); +} +inline void ExecutionStateChangeDetails::set_principal(const ::std::string& value) { + + principal_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ExecutionStateChangeDetails.principal) +} +#if LANG_CXX11 +inline void ExecutionStateChangeDetails::set_principal(::std::string&& value) { + + principal_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ExecutionStateChangeDetails.principal) +} +#endif +inline void ExecutionStateChangeDetails::set_principal(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + principal_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ExecutionStateChangeDetails.principal) +} +inline void ExecutionStateChangeDetails::set_principal(const char* value, size_t size) { + + principal_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ExecutionStateChangeDetails.principal) +} +inline ::std::string* ExecutionStateChangeDetails::mutable_principal() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ExecutionStateChangeDetails.principal) + return principal_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ExecutionStateChangeDetails::release_principal() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ExecutionStateChangeDetails.principal) + + return principal_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ExecutionStateChangeDetails::set_allocated_principal(::std::string* principal) { + if (principal != nullptr) { + + } else { + + } + principal_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), principal); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ExecutionStateChangeDetails.principal) +} + +// ------------------------------------------------------------------- + +// ExecutionUpdateResponse + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ @@ -5704,6 +6346,12 @@ inline void WorkflowExecutionGetDataResponse::set_allocated_full_outputs(::flyte // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) @@ -5718,6 +6366,11 @@ template <> inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::admin::ExecutionMetadata_ExecutionMode>() { return ::flyteidl::admin::ExecutionMetadata_ExecutionMode_descriptor(); } +template <> struct is_proto_enum< ::flyteidl::admin::ExecutionState> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::flyteidl::admin::ExecutionState>() { + return ::flyteidl::admin::ExecutionState_descriptor(); +} } // namespace protobuf } // namespace google diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc index 087df9e7b6..6c0368c5c9 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc @@ -39,6 +39,7 @@ static const char* AdminService_method_names[] = { "/flyteidl.service.AdminService/RelaunchExecution", "/flyteidl.service.AdminService/RecoverExecution", "/flyteidl.service.AdminService/GetExecution", + "/flyteidl.service.AdminService/UpdateExecution", "/flyteidl.service.AdminService/GetExecutionData", "/flyteidl.service.AdminService/ListExecutions", "/flyteidl.service.AdminService/TerminateExecution", @@ -94,33 +95,34 @@ AdminService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& chann , rpcmethod_RelaunchExecution_(AdminService_method_names[16], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_RecoverExecution_(AdminService_method_names[17], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_GetExecution_(AdminService_method_names[18], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetExecutionData_(AdminService_method_names[19], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListExecutions_(AdminService_method_names[20], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_TerminateExecution_(AdminService_method_names[21], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetNodeExecution_(AdminService_method_names[22], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListNodeExecutions_(AdminService_method_names[23], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListNodeExecutionsForTask_(AdminService_method_names[24], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetNodeExecutionData_(AdminService_method_names[25], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_RegisterProject_(AdminService_method_names[26], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_UpdateProject_(AdminService_method_names[27], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListProjects_(AdminService_method_names[28], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_CreateWorkflowEvent_(AdminService_method_names[29], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_CreateNodeEvent_(AdminService_method_names[30], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_CreateTaskEvent_(AdminService_method_names[31], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetTaskExecution_(AdminService_method_names[32], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListTaskExecutions_(AdminService_method_names[33], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetTaskExecutionData_(AdminService_method_names[34], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_UpdateProjectDomainAttributes_(AdminService_method_names[35], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetProjectDomainAttributes_(AdminService_method_names[36], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_DeleteProjectDomainAttributes_(AdminService_method_names[37], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_UpdateWorkflowAttributes_(AdminService_method_names[38], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetWorkflowAttributes_(AdminService_method_names[39], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_DeleteWorkflowAttributes_(AdminService_method_names[40], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListMatchableAttributes_(AdminService_method_names[41], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListNamedEntities_(AdminService_method_names[42], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetNamedEntity_(AdminService_method_names[43], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_UpdateNamedEntity_(AdminService_method_names[44], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetVersion_(AdminService_method_names[45], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateExecution_(AdminService_method_names[19], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetExecutionData_(AdminService_method_names[20], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListExecutions_(AdminService_method_names[21], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_TerminateExecution_(AdminService_method_names[22], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetNodeExecution_(AdminService_method_names[23], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListNodeExecutions_(AdminService_method_names[24], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListNodeExecutionsForTask_(AdminService_method_names[25], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetNodeExecutionData_(AdminService_method_names[26], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_RegisterProject_(AdminService_method_names[27], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateProject_(AdminService_method_names[28], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListProjects_(AdminService_method_names[29], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_CreateWorkflowEvent_(AdminService_method_names[30], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_CreateNodeEvent_(AdminService_method_names[31], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_CreateTaskEvent_(AdminService_method_names[32], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetTaskExecution_(AdminService_method_names[33], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListTaskExecutions_(AdminService_method_names[34], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetTaskExecutionData_(AdminService_method_names[35], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateProjectDomainAttributes_(AdminService_method_names[36], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetProjectDomainAttributes_(AdminService_method_names[37], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DeleteProjectDomainAttributes_(AdminService_method_names[38], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateWorkflowAttributes_(AdminService_method_names[39], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetWorkflowAttributes_(AdminService_method_names[40], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DeleteWorkflowAttributes_(AdminService_method_names[41], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListMatchableAttributes_(AdminService_method_names[42], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListNamedEntities_(AdminService_method_names[43], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetNamedEntity_(AdminService_method_names[44], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateNamedEntity_(AdminService_method_names[45], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetVersion_(AdminService_method_names[46], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) {} ::grpc::Status AdminService::Stub::CreateTask(::grpc::ClientContext* context, const ::flyteidl::admin::TaskCreateRequest& request, ::flyteidl::admin::TaskCreateResponse* response) { @@ -655,6 +657,34 @@ ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::Execution>* AdminService:: return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::Execution>::Create(channel_.get(), cq, rpcmethod_GetExecution_, context, request, false); } +::grpc::Status AdminService::Stub::UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::flyteidl::admin::ExecutionUpdateResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_UpdateExecution_, context, request, response); +} + +void AdminService::Stub::experimental_async::UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_UpdateExecution_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::UpdateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionUpdateResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_UpdateExecution_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_UpdateExecution_, context, request, response, reactor); +} + +void AdminService::Stub::experimental_async::UpdateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_UpdateExecution_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>* AdminService::Stub::AsyncUpdateExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ExecutionUpdateResponse>::Create(channel_.get(), cq, rpcmethod_UpdateExecution_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>* AdminService::Stub::PrepareAsyncUpdateExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ExecutionUpdateResponse>::Create(channel_.get(), cq, rpcmethod_UpdateExecution_, context, request, false); +} + ::grpc::Status AdminService::Stub::GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response) { return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_GetExecutionData_, context, request, response); } @@ -1510,135 +1540,140 @@ AdminService::Service::Service() { AddMethod(new ::grpc::internal::RpcServiceMethod( AdminService_method_names[19], ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ExecutionUpdateRequest, ::flyteidl::admin::ExecutionUpdateResponse>( + std::mem_fn(&AdminService::Service::UpdateExecution), this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AdminService_method_names[20], + ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowExecutionGetDataRequest, ::flyteidl::admin::WorkflowExecutionGetDataResponse>( std::mem_fn(&AdminService::Service::GetExecutionData), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[20], + AdminService_method_names[21], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ResourceListRequest, ::flyteidl::admin::ExecutionList>( std::mem_fn(&AdminService::Service::ListExecutions), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[21], + AdminService_method_names[22], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ExecutionTerminateRequest, ::flyteidl::admin::ExecutionTerminateResponse>( std::mem_fn(&AdminService::Service::TerminateExecution), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[22], + AdminService_method_names[23], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NodeExecutionGetRequest, ::flyteidl::admin::NodeExecution>( std::mem_fn(&AdminService::Service::GetNodeExecution), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[23], + AdminService_method_names[24], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NodeExecutionListRequest, ::flyteidl::admin::NodeExecutionList>( std::mem_fn(&AdminService::Service::ListNodeExecutions), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[24], + AdminService_method_names[25], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NodeExecutionForTaskListRequest, ::flyteidl::admin::NodeExecutionList>( std::mem_fn(&AdminService::Service::ListNodeExecutionsForTask), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[25], + AdminService_method_names[26], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NodeExecutionGetDataRequest, ::flyteidl::admin::NodeExecutionGetDataResponse>( std::mem_fn(&AdminService::Service::GetNodeExecutionData), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[26], + AdminService_method_names[27], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectRegisterRequest, ::flyteidl::admin::ProjectRegisterResponse>( std::mem_fn(&AdminService::Service::RegisterProject), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[27], + AdminService_method_names[28], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::Project, ::flyteidl::admin::ProjectUpdateResponse>( std::mem_fn(&AdminService::Service::UpdateProject), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[28], + AdminService_method_names[29], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectListRequest, ::flyteidl::admin::Projects>( std::mem_fn(&AdminService::Service::ListProjects), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[29], + AdminService_method_names[30], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowExecutionEventRequest, ::flyteidl::admin::WorkflowExecutionEventResponse>( std::mem_fn(&AdminService::Service::CreateWorkflowEvent), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[30], + AdminService_method_names[31], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NodeExecutionEventRequest, ::flyteidl::admin::NodeExecutionEventResponse>( std::mem_fn(&AdminService::Service::CreateNodeEvent), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[31], + AdminService_method_names[32], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::TaskExecutionEventRequest, ::flyteidl::admin::TaskExecutionEventResponse>( std::mem_fn(&AdminService::Service::CreateTaskEvent), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[32], + AdminService_method_names[33], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::TaskExecutionGetRequest, ::flyteidl::admin::TaskExecution>( std::mem_fn(&AdminService::Service::GetTaskExecution), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[33], + AdminService_method_names[34], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::TaskExecutionListRequest, ::flyteidl::admin::TaskExecutionList>( std::mem_fn(&AdminService::Service::ListTaskExecutions), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[34], + AdminService_method_names[35], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::TaskExecutionGetDataRequest, ::flyteidl::admin::TaskExecutionGetDataResponse>( std::mem_fn(&AdminService::Service::GetTaskExecutionData), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[35], + AdminService_method_names[36], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectDomainAttributesUpdateRequest, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>( std::mem_fn(&AdminService::Service::UpdateProjectDomainAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[36], + AdminService_method_names[37], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectDomainAttributesGetRequest, ::flyteidl::admin::ProjectDomainAttributesGetResponse>( std::mem_fn(&AdminService::Service::GetProjectDomainAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[37], + AdminService_method_names[38], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectDomainAttributesDeleteRequest, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>( std::mem_fn(&AdminService::Service::DeleteProjectDomainAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[38], + AdminService_method_names[39], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>( std::mem_fn(&AdminService::Service::UpdateWorkflowAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[39], + AdminService_method_names[40], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>( std::mem_fn(&AdminService::Service::GetWorkflowAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[40], + AdminService_method_names[41], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>( std::mem_fn(&AdminService::Service::DeleteWorkflowAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[41], + AdminService_method_names[42], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>( std::mem_fn(&AdminService::Service::ListMatchableAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[42], + AdminService_method_names[43], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>( std::mem_fn(&AdminService::Service::ListNamedEntities), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[43], + AdminService_method_names[44], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>( std::mem_fn(&AdminService::Service::GetNamedEntity), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[44], + AdminService_method_names[45], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>( std::mem_fn(&AdminService::Service::UpdateNamedEntity), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[45], + AdminService_method_names[46], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>( std::mem_fn(&AdminService::Service::GetVersion), this))); @@ -1780,6 +1815,13 @@ ::grpc::Status AdminService::Service::GetExecution(::grpc::ServerContext* contex return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } +::grpc::Status AdminService::Service::UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + ::grpc::Status AdminService::Service::GetExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response) { (void) context; (void) request; diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h index e601c31314..d30d96362c 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h @@ -206,6 +206,14 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>> PrepareAsyncGetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>>(PrepareAsyncGetExecutionRaw(context, request, cq)); } + // Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. + virtual ::grpc::Status UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::flyteidl::admin::ExecutionUpdateResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionUpdateResponse>> AsyncUpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionUpdateResponse>>(AsyncUpdateExecutionRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionUpdateResponse>> PrepareAsyncUpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionUpdateResponse>>(PrepareAsyncUpdateExecutionRaw(context, request, cq)); + } // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionGetDataResponse>> AsyncGetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { @@ -525,6 +533,11 @@ class AdminService final { virtual void GetExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Execution* response, std::function) = 0; virtual void GetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest* request, ::flyteidl::admin::Execution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Execution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. + virtual void UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response, std::function) = 0; + virtual void UpdateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionUpdateResponse* response, std::function) = 0; + virtual void UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + virtual void UpdateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. virtual void GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, std::function) = 0; virtual void GetExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, std::function) = 0; @@ -702,6 +715,8 @@ class AdminService final { virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>* PrepareAsyncRecoverExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionRecoverRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>* AsyncGetExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>* PrepareAsyncGetExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionUpdateResponse>* AsyncUpdateExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionUpdateResponse>* PrepareAsyncUpdateExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionGetDataResponse>* AsyncGetExecutionDataRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionGetDataResponse>* PrepareAsyncGetExecutionDataRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionList>* AsyncListExecutionsRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) = 0; @@ -893,6 +908,13 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::Execution>> PrepareAsyncGetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::Execution>>(PrepareAsyncGetExecutionRaw(context, request, cq)); } + ::grpc::Status UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::flyteidl::admin::ExecutionUpdateResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>> AsyncUpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>>(AsyncUpdateExecutionRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>> PrepareAsyncUpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>>(PrepareAsyncUpdateExecutionRaw(context, request, cq)); + } ::grpc::Status GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response) override; std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowExecutionGetDataResponse>> AsyncGetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowExecutionGetDataResponse>>(AsyncGetExecutionDataRaw(context, request, cq)); @@ -1161,6 +1183,10 @@ class AdminService final { void GetExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Execution* response, std::function) override; void GetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest* request, ::flyteidl::admin::Execution* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; void GetExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Execution* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response, std::function) override; + void UpdateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionUpdateResponse* response, std::function) override; + void UpdateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void UpdateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; void GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, std::function) override; void GetExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, std::function) override; void GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; @@ -1318,6 +1344,8 @@ class AdminService final { ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionCreateResponse>* PrepareAsyncRecoverExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionRecoverRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::Execution>* AsyncGetExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::Execution>* PrepareAsyncGetExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>* AsyncUpdateExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionUpdateResponse>* PrepareAsyncUpdateExecutionRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionUpdateRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowExecutionGetDataResponse>* AsyncGetExecutionDataRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowExecutionGetDataResponse>* PrepareAsyncGetExecutionDataRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ExecutionList>* AsyncListExecutionsRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) override; @@ -1391,6 +1419,7 @@ class AdminService final { const ::grpc::internal::RpcMethod rpcmethod_RelaunchExecution_; const ::grpc::internal::RpcMethod rpcmethod_RecoverExecution_; const ::grpc::internal::RpcMethod rpcmethod_GetExecution_; + const ::grpc::internal::RpcMethod rpcmethod_UpdateExecution_; const ::grpc::internal::RpcMethod rpcmethod_GetExecutionData_; const ::grpc::internal::RpcMethod rpcmethod_ListExecutions_; const ::grpc::internal::RpcMethod rpcmethod_TerminateExecution_; @@ -1467,6 +1496,8 @@ class AdminService final { virtual ::grpc::Status RecoverExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionRecoverRequest* request, ::flyteidl::admin::ExecutionCreateResponse* response); // Fetches a :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status GetExecution(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest* request, ::flyteidl::admin::Execution* response); + // Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. + virtual ::grpc::Status UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response); // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status GetExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response); // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. @@ -1904,12 +1935,32 @@ class AdminService final { } }; template + class WithAsyncMethod_UpdateExecution : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_UpdateExecution() { + ::grpc::Service::MarkMethodAsync(19); + } + ~WithAsyncMethod_UpdateExecution() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestUpdateExecution(::grpc::ServerContext* context, ::flyteidl::admin::ExecutionUpdateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ExecutionUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(19, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithAsyncMethod_GetExecutionData : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetExecutionData() { - ::grpc::Service::MarkMethodAsync(19); + ::grpc::Service::MarkMethodAsync(20); } ~WithAsyncMethod_GetExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -1920,7 +1971,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetExecutionData(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowExecutionGetDataResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(19, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(20, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1929,7 +1980,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListExecutions() { - ::grpc::Service::MarkMethodAsync(20); + ::grpc::Service::MarkMethodAsync(21); } ~WithAsyncMethod_ListExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -1940,7 +1991,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListExecutions(::grpc::ServerContext* context, ::flyteidl::admin::ResourceListRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ExecutionList>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(20, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(21, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1949,7 +2000,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_TerminateExecution() { - ::grpc::Service::MarkMethodAsync(21); + ::grpc::Service::MarkMethodAsync(22); } ~WithAsyncMethod_TerminateExecution() override { BaseClassMustBeDerivedFromService(this); @@ -1960,7 +2011,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestTerminateExecution(::grpc::ServerContext* context, ::flyteidl::admin::ExecutionTerminateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ExecutionTerminateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(21, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(22, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1969,7 +2020,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetNodeExecution() { - ::grpc::Service::MarkMethodAsync(22); + ::grpc::Service::MarkMethodAsync(23); } ~WithAsyncMethod_GetNodeExecution() override { BaseClassMustBeDerivedFromService(this); @@ -1980,7 +2031,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNodeExecution(::grpc::ServerContext* context, ::flyteidl::admin::NodeExecutionGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NodeExecution>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(22, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -1989,7 +2040,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListNodeExecutions() { - ::grpc::Service::MarkMethodAsync(23); + ::grpc::Service::MarkMethodAsync(24); } ~WithAsyncMethod_ListNodeExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -2000,7 +2051,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNodeExecutions(::grpc::ServerContext* context, ::flyteidl::admin::NodeExecutionListRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NodeExecutionList>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2009,7 +2060,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListNodeExecutionsForTask() { - ::grpc::Service::MarkMethodAsync(24); + ::grpc::Service::MarkMethodAsync(25); } ~WithAsyncMethod_ListNodeExecutionsForTask() override { BaseClassMustBeDerivedFromService(this); @@ -2020,7 +2071,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNodeExecutionsForTask(::grpc::ServerContext* context, ::flyteidl::admin::NodeExecutionForTaskListRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NodeExecutionList>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2029,7 +2080,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetNodeExecutionData() { - ::grpc::Service::MarkMethodAsync(25); + ::grpc::Service::MarkMethodAsync(26); } ~WithAsyncMethod_GetNodeExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -2040,7 +2091,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNodeExecutionData(::grpc::ServerContext* context, ::flyteidl::admin::NodeExecutionGetDataRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NodeExecutionGetDataResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2049,7 +2100,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_RegisterProject() { - ::grpc::Service::MarkMethodAsync(26); + ::grpc::Service::MarkMethodAsync(27); } ~WithAsyncMethod_RegisterProject() override { BaseClassMustBeDerivedFromService(this); @@ -2060,7 +2111,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRegisterProject(::grpc::ServerContext* context, ::flyteidl::admin::ProjectRegisterRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectRegisterResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2069,7 +2120,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_UpdateProject() { - ::grpc::Service::MarkMethodAsync(27); + ::grpc::Service::MarkMethodAsync(28); } ~WithAsyncMethod_UpdateProject() override { BaseClassMustBeDerivedFromService(this); @@ -2080,7 +2131,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateProject(::grpc::ServerContext* context, ::flyteidl::admin::Project* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2089,7 +2140,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListProjects() { - ::grpc::Service::MarkMethodAsync(28); + ::grpc::Service::MarkMethodAsync(29); } ~WithAsyncMethod_ListProjects() override { BaseClassMustBeDerivedFromService(this); @@ -2100,7 +2151,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListProjects(::grpc::ServerContext* context, ::flyteidl::admin::ProjectListRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::Projects>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2109,7 +2160,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_CreateWorkflowEvent() { - ::grpc::Service::MarkMethodAsync(29); + ::grpc::Service::MarkMethodAsync(30); } ~WithAsyncMethod_CreateWorkflowEvent() override { BaseClassMustBeDerivedFromService(this); @@ -2120,7 +2171,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateWorkflowEvent(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowExecutionEventRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowExecutionEventResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2129,7 +2180,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_CreateNodeEvent() { - ::grpc::Service::MarkMethodAsync(30); + ::grpc::Service::MarkMethodAsync(31); } ~WithAsyncMethod_CreateNodeEvent() override { BaseClassMustBeDerivedFromService(this); @@ -2140,7 +2191,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateNodeEvent(::grpc::ServerContext* context, ::flyteidl::admin::NodeExecutionEventRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NodeExecutionEventResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2149,7 +2200,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_CreateTaskEvent() { - ::grpc::Service::MarkMethodAsync(31); + ::grpc::Service::MarkMethodAsync(32); } ~WithAsyncMethod_CreateTaskEvent() override { BaseClassMustBeDerivedFromService(this); @@ -2160,7 +2211,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateTaskEvent(::grpc::ServerContext* context, ::flyteidl::admin::TaskExecutionEventRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::TaskExecutionEventResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2169,7 +2220,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetTaskExecution() { - ::grpc::Service::MarkMethodAsync(32); + ::grpc::Service::MarkMethodAsync(33); } ~WithAsyncMethod_GetTaskExecution() override { BaseClassMustBeDerivedFromService(this); @@ -2180,7 +2231,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetTaskExecution(::grpc::ServerContext* context, ::flyteidl::admin::TaskExecutionGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::TaskExecution>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2189,7 +2240,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListTaskExecutions() { - ::grpc::Service::MarkMethodAsync(33); + ::grpc::Service::MarkMethodAsync(34); } ~WithAsyncMethod_ListTaskExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -2200,7 +2251,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListTaskExecutions(::grpc::ServerContext* context, ::flyteidl::admin::TaskExecutionListRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::TaskExecutionList>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2209,7 +2260,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetTaskExecutionData() { - ::grpc::Service::MarkMethodAsync(34); + ::grpc::Service::MarkMethodAsync(35); } ~WithAsyncMethod_GetTaskExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -2220,7 +2271,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetTaskExecutionData(::grpc::ServerContext* context, ::flyteidl::admin::TaskExecutionGetDataRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::TaskExecutionGetDataResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2229,7 +2280,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_UpdateProjectDomainAttributes() { - ::grpc::Service::MarkMethodAsync(35); + ::grpc::Service::MarkMethodAsync(36); } ~WithAsyncMethod_UpdateProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2240,7 +2291,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateProjectDomainAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ProjectDomainAttributesUpdateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2249,7 +2300,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetProjectDomainAttributes() { - ::grpc::Service::MarkMethodAsync(36); + ::grpc::Service::MarkMethodAsync(37); } ~WithAsyncMethod_GetProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2260,7 +2311,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetProjectDomainAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ProjectDomainAttributesGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectDomainAttributesGetResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2269,7 +2320,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_DeleteProjectDomainAttributes() { - ::grpc::Service::MarkMethodAsync(37); + ::grpc::Service::MarkMethodAsync(38); } ~WithAsyncMethod_DeleteProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2280,7 +2331,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteProjectDomainAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ProjectDomainAttributesDeleteRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2289,7 +2340,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodAsync(38); + ::grpc::Service::MarkMethodAsync(39); } ~WithAsyncMethod_UpdateWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2300,7 +2351,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateWorkflowAttributes(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowAttributesUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2309,7 +2360,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodAsync(39); + ::grpc::Service::MarkMethodAsync(40); } ~WithAsyncMethod_GetWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2320,7 +2371,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetWorkflowAttributes(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowAttributesGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowAttributesGetResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2329,7 +2380,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodAsync(40); + ::grpc::Service::MarkMethodAsync(41); } ~WithAsyncMethod_DeleteWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2340,7 +2391,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteWorkflowAttributes(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowAttributesDeleteRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowAttributesDeleteResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2349,7 +2400,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodAsync(41); + ::grpc::Service::MarkMethodAsync(42); } ~WithAsyncMethod_ListMatchableAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2360,7 +2411,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListMatchableAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ListMatchableAttributesRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ListMatchableAttributesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2369,7 +2420,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodAsync(42); + ::grpc::Service::MarkMethodAsync(43); } ~WithAsyncMethod_ListNamedEntities() override { BaseClassMustBeDerivedFromService(this); @@ -2380,7 +2431,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNamedEntities(::grpc::ServerContext* context, ::flyteidl::admin::NamedEntityListRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NamedEntityList>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2389,7 +2440,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodAsync(43); + ::grpc::Service::MarkMethodAsync(44); } ~WithAsyncMethod_GetNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -2400,7 +2451,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNamedEntity(::grpc::ServerContext* context, ::flyteidl::admin::NamedEntityGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NamedEntity>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2409,7 +2460,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodAsync(44); + ::grpc::Service::MarkMethodAsync(45); } ~WithAsyncMethod_UpdateNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -2420,7 +2471,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateNamedEntity(::grpc::ServerContext* context, ::flyteidl::admin::NamedEntityUpdateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NamedEntityUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2429,7 +2480,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetVersion() { - ::grpc::Service::MarkMethodAsync(45); + ::grpc::Service::MarkMethodAsync(46); } ~WithAsyncMethod_GetVersion() override { BaseClassMustBeDerivedFromService(this); @@ -2440,10 +2491,10 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetVersion(::grpc::ServerContext* context, ::flyteidl::admin::GetVersionRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::GetVersionResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); } }; - typedef WithAsyncMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > AsyncService; + typedef WithAsyncMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > AsyncService; template class ExperimentalWithCallbackMethod_CreateTask : public BaseClass { private: @@ -3034,12 +3085,43 @@ class AdminService final { virtual void GetExecution(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest* request, ::flyteidl::admin::Execution* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; template + class ExperimentalWithCallbackMethod_UpdateExecution : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithCallbackMethod_UpdateExecution() { + ::grpc::Service::experimental().MarkMethodCallback(19, + new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ExecutionUpdateRequest, ::flyteidl::admin::ExecutionUpdateResponse>( + [this](::grpc::ServerContext* context, + const ::flyteidl::admin::ExecutionUpdateRequest* request, + ::flyteidl::admin::ExecutionUpdateResponse* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + return this->UpdateExecution(context, request, response, controller); + })); + } + void SetMessageAllocatorFor_UpdateExecution( + ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ExecutionUpdateRequest, ::flyteidl::admin::ExecutionUpdateResponse>* allocator) { + static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ExecutionUpdateRequest, ::flyteidl::admin::ExecutionUpdateResponse>*>( + ::grpc::Service::experimental().GetHandler(19)) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_UpdateExecution() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template class ExperimentalWithCallbackMethod_GetExecutionData : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetExecutionData() { - ::grpc::Service::experimental().MarkMethodCallback(19, + ::grpc::Service::experimental().MarkMethodCallback(20, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowExecutionGetDataRequest, ::flyteidl::admin::WorkflowExecutionGetDataResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, @@ -3051,7 +3133,7 @@ class AdminService final { void SetMessageAllocatorFor_GetExecutionData( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowExecutionGetDataRequest, ::flyteidl::admin::WorkflowExecutionGetDataResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowExecutionGetDataRequest, ::flyteidl::admin::WorkflowExecutionGetDataResponse>*>( - ::grpc::Service::experimental().GetHandler(19)) + ::grpc::Service::experimental().GetHandler(20)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetExecutionData() override { @@ -3070,7 +3152,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListExecutions() { - ::grpc::Service::experimental().MarkMethodCallback(20, + ::grpc::Service::experimental().MarkMethodCallback(21, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ResourceListRequest, ::flyteidl::admin::ExecutionList>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ResourceListRequest* request, @@ -3082,7 +3164,7 @@ class AdminService final { void SetMessageAllocatorFor_ListExecutions( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ResourceListRequest, ::flyteidl::admin::ExecutionList>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ResourceListRequest, ::flyteidl::admin::ExecutionList>*>( - ::grpc::Service::experimental().GetHandler(20)) + ::grpc::Service::experimental().GetHandler(21)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListExecutions() override { @@ -3101,7 +3183,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_TerminateExecution() { - ::grpc::Service::experimental().MarkMethodCallback(21, + ::grpc::Service::experimental().MarkMethodCallback(22, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ExecutionTerminateRequest, ::flyteidl::admin::ExecutionTerminateResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionTerminateRequest* request, @@ -3113,7 +3195,7 @@ class AdminService final { void SetMessageAllocatorFor_TerminateExecution( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ExecutionTerminateRequest, ::flyteidl::admin::ExecutionTerminateResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ExecutionTerminateRequest, ::flyteidl::admin::ExecutionTerminateResponse>*>( - ::grpc::Service::experimental().GetHandler(21)) + ::grpc::Service::experimental().GetHandler(22)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_TerminateExecution() override { @@ -3132,7 +3214,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetNodeExecution() { - ::grpc::Service::experimental().MarkMethodCallback(22, + ::grpc::Service::experimental().MarkMethodCallback(23, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionGetRequest, ::flyteidl::admin::NodeExecution>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionGetRequest* request, @@ -3144,7 +3226,7 @@ class AdminService final { void SetMessageAllocatorFor_GetNodeExecution( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NodeExecutionGetRequest, ::flyteidl::admin::NodeExecution>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionGetRequest, ::flyteidl::admin::NodeExecution>*>( - ::grpc::Service::experimental().GetHandler(22)) + ::grpc::Service::experimental().GetHandler(23)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetNodeExecution() override { @@ -3163,7 +3245,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListNodeExecutions() { - ::grpc::Service::experimental().MarkMethodCallback(23, + ::grpc::Service::experimental().MarkMethodCallback(24, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionListRequest, ::flyteidl::admin::NodeExecutionList>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionListRequest* request, @@ -3175,7 +3257,7 @@ class AdminService final { void SetMessageAllocatorFor_ListNodeExecutions( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NodeExecutionListRequest, ::flyteidl::admin::NodeExecutionList>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionListRequest, ::flyteidl::admin::NodeExecutionList>*>( - ::grpc::Service::experimental().GetHandler(23)) + ::grpc::Service::experimental().GetHandler(24)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListNodeExecutions() override { @@ -3194,7 +3276,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListNodeExecutionsForTask() { - ::grpc::Service::experimental().MarkMethodCallback(24, + ::grpc::Service::experimental().MarkMethodCallback(25, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionForTaskListRequest, ::flyteidl::admin::NodeExecutionList>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionForTaskListRequest* request, @@ -3206,7 +3288,7 @@ class AdminService final { void SetMessageAllocatorFor_ListNodeExecutionsForTask( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NodeExecutionForTaskListRequest, ::flyteidl::admin::NodeExecutionList>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionForTaskListRequest, ::flyteidl::admin::NodeExecutionList>*>( - ::grpc::Service::experimental().GetHandler(24)) + ::grpc::Service::experimental().GetHandler(25)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListNodeExecutionsForTask() override { @@ -3225,7 +3307,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetNodeExecutionData() { - ::grpc::Service::experimental().MarkMethodCallback(25, + ::grpc::Service::experimental().MarkMethodCallback(26, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionGetDataRequest, ::flyteidl::admin::NodeExecutionGetDataResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest* request, @@ -3237,7 +3319,7 @@ class AdminService final { void SetMessageAllocatorFor_GetNodeExecutionData( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NodeExecutionGetDataRequest, ::flyteidl::admin::NodeExecutionGetDataResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionGetDataRequest, ::flyteidl::admin::NodeExecutionGetDataResponse>*>( - ::grpc::Service::experimental().GetHandler(25)) + ::grpc::Service::experimental().GetHandler(26)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetNodeExecutionData() override { @@ -3256,7 +3338,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_RegisterProject() { - ::grpc::Service::experimental().MarkMethodCallback(26, + ::grpc::Service::experimental().MarkMethodCallback(27, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectRegisterRequest, ::flyteidl::admin::ProjectRegisterResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ProjectRegisterRequest* request, @@ -3268,7 +3350,7 @@ class AdminService final { void SetMessageAllocatorFor_RegisterProject( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectRegisterRequest, ::flyteidl::admin::ProjectRegisterResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectRegisterRequest, ::flyteidl::admin::ProjectRegisterResponse>*>( - ::grpc::Service::experimental().GetHandler(26)) + ::grpc::Service::experimental().GetHandler(27)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_RegisterProject() override { @@ -3287,7 +3369,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_UpdateProject() { - ::grpc::Service::experimental().MarkMethodCallback(27, + ::grpc::Service::experimental().MarkMethodCallback(28, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::Project, ::flyteidl::admin::ProjectUpdateResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::Project* request, @@ -3299,7 +3381,7 @@ class AdminService final { void SetMessageAllocatorFor_UpdateProject( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::Project, ::flyteidl::admin::ProjectUpdateResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::Project, ::flyteidl::admin::ProjectUpdateResponse>*>( - ::grpc::Service::experimental().GetHandler(27)) + ::grpc::Service::experimental().GetHandler(28)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_UpdateProject() override { @@ -3318,7 +3400,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListProjects() { - ::grpc::Service::experimental().MarkMethodCallback(28, + ::grpc::Service::experimental().MarkMethodCallback(29, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectListRequest, ::flyteidl::admin::Projects>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ProjectListRequest* request, @@ -3330,7 +3412,7 @@ class AdminService final { void SetMessageAllocatorFor_ListProjects( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectListRequest, ::flyteidl::admin::Projects>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectListRequest, ::flyteidl::admin::Projects>*>( - ::grpc::Service::experimental().GetHandler(28)) + ::grpc::Service::experimental().GetHandler(29)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListProjects() override { @@ -3349,7 +3431,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_CreateWorkflowEvent() { - ::grpc::Service::experimental().MarkMethodCallback(29, + ::grpc::Service::experimental().MarkMethodCallback(30, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowExecutionEventRequest, ::flyteidl::admin::WorkflowExecutionEventResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest* request, @@ -3361,7 +3443,7 @@ class AdminService final { void SetMessageAllocatorFor_CreateWorkflowEvent( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowExecutionEventRequest, ::flyteidl::admin::WorkflowExecutionEventResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowExecutionEventRequest, ::flyteidl::admin::WorkflowExecutionEventResponse>*>( - ::grpc::Service::experimental().GetHandler(29)) + ::grpc::Service::experimental().GetHandler(30)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_CreateWorkflowEvent() override { @@ -3380,7 +3462,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_CreateNodeEvent() { - ::grpc::Service::experimental().MarkMethodCallback(30, + ::grpc::Service::experimental().MarkMethodCallback(31, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionEventRequest, ::flyteidl::admin::NodeExecutionEventResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionEventRequest* request, @@ -3392,7 +3474,7 @@ class AdminService final { void SetMessageAllocatorFor_CreateNodeEvent( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NodeExecutionEventRequest, ::flyteidl::admin::NodeExecutionEventResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NodeExecutionEventRequest, ::flyteidl::admin::NodeExecutionEventResponse>*>( - ::grpc::Service::experimental().GetHandler(30)) + ::grpc::Service::experimental().GetHandler(31)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_CreateNodeEvent() override { @@ -3411,7 +3493,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_CreateTaskEvent() { - ::grpc::Service::experimental().MarkMethodCallback(31, + ::grpc::Service::experimental().MarkMethodCallback(32, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionEventRequest, ::flyteidl::admin::TaskExecutionEventResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionEventRequest* request, @@ -3423,7 +3505,7 @@ class AdminService final { void SetMessageAllocatorFor_CreateTaskEvent( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::TaskExecutionEventRequest, ::flyteidl::admin::TaskExecutionEventResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionEventRequest, ::flyteidl::admin::TaskExecutionEventResponse>*>( - ::grpc::Service::experimental().GetHandler(31)) + ::grpc::Service::experimental().GetHandler(32)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_CreateTaskEvent() override { @@ -3442,7 +3524,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetTaskExecution() { - ::grpc::Service::experimental().MarkMethodCallback(32, + ::grpc::Service::experimental().MarkMethodCallback(33, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionGetRequest, ::flyteidl::admin::TaskExecution>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionGetRequest* request, @@ -3454,7 +3536,7 @@ class AdminService final { void SetMessageAllocatorFor_GetTaskExecution( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::TaskExecutionGetRequest, ::flyteidl::admin::TaskExecution>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionGetRequest, ::flyteidl::admin::TaskExecution>*>( - ::grpc::Service::experimental().GetHandler(32)) + ::grpc::Service::experimental().GetHandler(33)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetTaskExecution() override { @@ -3473,7 +3555,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListTaskExecutions() { - ::grpc::Service::experimental().MarkMethodCallback(33, + ::grpc::Service::experimental().MarkMethodCallback(34, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionListRequest, ::flyteidl::admin::TaskExecutionList>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionListRequest* request, @@ -3485,7 +3567,7 @@ class AdminService final { void SetMessageAllocatorFor_ListTaskExecutions( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::TaskExecutionListRequest, ::flyteidl::admin::TaskExecutionList>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionListRequest, ::flyteidl::admin::TaskExecutionList>*>( - ::grpc::Service::experimental().GetHandler(33)) + ::grpc::Service::experimental().GetHandler(34)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListTaskExecutions() override { @@ -3504,7 +3586,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetTaskExecutionData() { - ::grpc::Service::experimental().MarkMethodCallback(34, + ::grpc::Service::experimental().MarkMethodCallback(35, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionGetDataRequest, ::flyteidl::admin::TaskExecutionGetDataResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionGetDataRequest* request, @@ -3516,7 +3598,7 @@ class AdminService final { void SetMessageAllocatorFor_GetTaskExecutionData( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::TaskExecutionGetDataRequest, ::flyteidl::admin::TaskExecutionGetDataResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::TaskExecutionGetDataRequest, ::flyteidl::admin::TaskExecutionGetDataResponse>*>( - ::grpc::Service::experimental().GetHandler(34)) + ::grpc::Service::experimental().GetHandler(35)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetTaskExecutionData() override { @@ -3535,7 +3617,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_UpdateProjectDomainAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(35, + ::grpc::Service::experimental().MarkMethodCallback(36, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesUpdateRequest, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ProjectDomainAttributesUpdateRequest* request, @@ -3547,7 +3629,7 @@ class AdminService final { void SetMessageAllocatorFor_UpdateProjectDomainAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectDomainAttributesUpdateRequest, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesUpdateRequest, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>*>( - ::grpc::Service::experimental().GetHandler(35)) + ::grpc::Service::experimental().GetHandler(36)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_UpdateProjectDomainAttributes() override { @@ -3566,7 +3648,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetProjectDomainAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(36, + ::grpc::Service::experimental().MarkMethodCallback(37, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesGetRequest, ::flyteidl::admin::ProjectDomainAttributesGetResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest* request, @@ -3578,7 +3660,7 @@ class AdminService final { void SetMessageAllocatorFor_GetProjectDomainAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectDomainAttributesGetRequest, ::flyteidl::admin::ProjectDomainAttributesGetResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesGetRequest, ::flyteidl::admin::ProjectDomainAttributesGetResponse>*>( - ::grpc::Service::experimental().GetHandler(36)) + ::grpc::Service::experimental().GetHandler(37)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetProjectDomainAttributes() override { @@ -3597,7 +3679,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_DeleteProjectDomainAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(37, + ::grpc::Service::experimental().MarkMethodCallback(38, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesDeleteRequest, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest* request, @@ -3609,7 +3691,7 @@ class AdminService final { void SetMessageAllocatorFor_DeleteProjectDomainAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectDomainAttributesDeleteRequest, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesDeleteRequest, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>*>( - ::grpc::Service::experimental().GetHandler(37)) + ::grpc::Service::experimental().GetHandler(38)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_DeleteProjectDomainAttributes() override { @@ -3628,7 +3710,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_UpdateWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(38, + ::grpc::Service::experimental().MarkMethodCallback(39, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, @@ -3640,7 +3722,7 @@ class AdminService final { void SetMessageAllocatorFor_UpdateWorkflowAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>*>( - ::grpc::Service::experimental().GetHandler(38)) + ::grpc::Service::experimental().GetHandler(39)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_UpdateWorkflowAttributes() override { @@ -3659,7 +3741,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(39, + ::grpc::Service::experimental().MarkMethodCallback(40, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest* request, @@ -3671,7 +3753,7 @@ class AdminService final { void SetMessageAllocatorFor_GetWorkflowAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>*>( - ::grpc::Service::experimental().GetHandler(39)) + ::grpc::Service::experimental().GetHandler(40)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetWorkflowAttributes() override { @@ -3690,7 +3772,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_DeleteWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(40, + ::grpc::Service::experimental().MarkMethodCallback(41, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest* request, @@ -3702,7 +3784,7 @@ class AdminService final { void SetMessageAllocatorFor_DeleteWorkflowAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>*>( - ::grpc::Service::experimental().GetHandler(40)) + ::grpc::Service::experimental().GetHandler(41)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_DeleteWorkflowAttributes() override { @@ -3721,7 +3803,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListMatchableAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(41, + ::grpc::Service::experimental().MarkMethodCallback(42, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest* request, @@ -3733,7 +3815,7 @@ class AdminService final { void SetMessageAllocatorFor_ListMatchableAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>*>( - ::grpc::Service::experimental().GetHandler(41)) + ::grpc::Service::experimental().GetHandler(42)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListMatchableAttributes() override { @@ -3752,7 +3834,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListNamedEntities() { - ::grpc::Service::experimental().MarkMethodCallback(42, + ::grpc::Service::experimental().MarkMethodCallback(43, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityListRequest* request, @@ -3764,7 +3846,7 @@ class AdminService final { void SetMessageAllocatorFor_ListNamedEntities( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>*>( - ::grpc::Service::experimental().GetHandler(42)) + ::grpc::Service::experimental().GetHandler(43)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListNamedEntities() override { @@ -3783,7 +3865,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetNamedEntity() { - ::grpc::Service::experimental().MarkMethodCallback(43, + ::grpc::Service::experimental().MarkMethodCallback(44, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityGetRequest* request, @@ -3795,7 +3877,7 @@ class AdminService final { void SetMessageAllocatorFor_GetNamedEntity( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>*>( - ::grpc::Service::experimental().GetHandler(43)) + ::grpc::Service::experimental().GetHandler(44)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetNamedEntity() override { @@ -3814,7 +3896,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_UpdateNamedEntity() { - ::grpc::Service::experimental().MarkMethodCallback(44, + ::grpc::Service::experimental().MarkMethodCallback(45, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityUpdateRequest* request, @@ -3826,7 +3908,7 @@ class AdminService final { void SetMessageAllocatorFor_UpdateNamedEntity( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>*>( - ::grpc::Service::experimental().GetHandler(44)) + ::grpc::Service::experimental().GetHandler(45)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_UpdateNamedEntity() override { @@ -3845,7 +3927,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetVersion() { - ::grpc::Service::experimental().MarkMethodCallback(45, + ::grpc::Service::experimental().MarkMethodCallback(46, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::GetVersionRequest* request, @@ -3857,7 +3939,7 @@ class AdminService final { void SetMessageAllocatorFor_GetVersion( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>*>( - ::grpc::Service::experimental().GetHandler(45)) + ::grpc::Service::experimental().GetHandler(46)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetVersion() override { @@ -3870,7 +3952,7 @@ class AdminService final { } virtual void GetVersion(::grpc::ServerContext* context, const ::flyteidl::admin::GetVersionRequest* request, ::flyteidl::admin::GetVersionResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; - typedef ExperimentalWithCallbackMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ExperimentalCallbackService; + typedef ExperimentalWithCallbackMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ExperimentalCallbackService; template class WithGenericMethod_CreateTask : public BaseClass { private: @@ -4195,30 +4277,47 @@ class AdminService final { } }; template - class WithGenericMethod_GetExecutionData : public BaseClass { + class WithGenericMethod_UpdateExecution : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: - WithGenericMethod_GetExecutionData() { + WithGenericMethod_UpdateExecution() { ::grpc::Service::MarkMethodGeneric(19); } - ~WithGenericMethod_GetExecutionData() override { + ~WithGenericMethod_UpdateExecution() override { BaseClassMustBeDerivedFromService(this); } // disable synchronous version of this method - ::grpc::Status GetExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response) override { + ::grpc::Status UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response) override { abort(); return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } }; template - class WithGenericMethod_ListExecutions : public BaseClass { + class WithGenericMethod_GetExecutionData : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: - WithGenericMethod_ListExecutions() { + WithGenericMethod_GetExecutionData() { ::grpc::Service::MarkMethodGeneric(20); } + ~WithGenericMethod_GetExecutionData() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_ListExecutions : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_ListExecutions() { + ::grpc::Service::MarkMethodGeneric(21); + } ~WithGenericMethod_ListExecutions() override { BaseClassMustBeDerivedFromService(this); } @@ -4234,7 +4333,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_TerminateExecution() { - ::grpc::Service::MarkMethodGeneric(21); + ::grpc::Service::MarkMethodGeneric(22); } ~WithGenericMethod_TerminateExecution() override { BaseClassMustBeDerivedFromService(this); @@ -4251,7 +4350,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetNodeExecution() { - ::grpc::Service::MarkMethodGeneric(22); + ::grpc::Service::MarkMethodGeneric(23); } ~WithGenericMethod_GetNodeExecution() override { BaseClassMustBeDerivedFromService(this); @@ -4268,7 +4367,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListNodeExecutions() { - ::grpc::Service::MarkMethodGeneric(23); + ::grpc::Service::MarkMethodGeneric(24); } ~WithGenericMethod_ListNodeExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -4285,7 +4384,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListNodeExecutionsForTask() { - ::grpc::Service::MarkMethodGeneric(24); + ::grpc::Service::MarkMethodGeneric(25); } ~WithGenericMethod_ListNodeExecutionsForTask() override { BaseClassMustBeDerivedFromService(this); @@ -4302,7 +4401,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetNodeExecutionData() { - ::grpc::Service::MarkMethodGeneric(25); + ::grpc::Service::MarkMethodGeneric(26); } ~WithGenericMethod_GetNodeExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -4319,7 +4418,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_RegisterProject() { - ::grpc::Service::MarkMethodGeneric(26); + ::grpc::Service::MarkMethodGeneric(27); } ~WithGenericMethod_RegisterProject() override { BaseClassMustBeDerivedFromService(this); @@ -4336,7 +4435,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_UpdateProject() { - ::grpc::Service::MarkMethodGeneric(27); + ::grpc::Service::MarkMethodGeneric(28); } ~WithGenericMethod_UpdateProject() override { BaseClassMustBeDerivedFromService(this); @@ -4353,7 +4452,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListProjects() { - ::grpc::Service::MarkMethodGeneric(28); + ::grpc::Service::MarkMethodGeneric(29); } ~WithGenericMethod_ListProjects() override { BaseClassMustBeDerivedFromService(this); @@ -4370,7 +4469,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_CreateWorkflowEvent() { - ::grpc::Service::MarkMethodGeneric(29); + ::grpc::Service::MarkMethodGeneric(30); } ~WithGenericMethod_CreateWorkflowEvent() override { BaseClassMustBeDerivedFromService(this); @@ -4387,7 +4486,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_CreateNodeEvent() { - ::grpc::Service::MarkMethodGeneric(30); + ::grpc::Service::MarkMethodGeneric(31); } ~WithGenericMethod_CreateNodeEvent() override { BaseClassMustBeDerivedFromService(this); @@ -4404,7 +4503,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_CreateTaskEvent() { - ::grpc::Service::MarkMethodGeneric(31); + ::grpc::Service::MarkMethodGeneric(32); } ~WithGenericMethod_CreateTaskEvent() override { BaseClassMustBeDerivedFromService(this); @@ -4421,7 +4520,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetTaskExecution() { - ::grpc::Service::MarkMethodGeneric(32); + ::grpc::Service::MarkMethodGeneric(33); } ~WithGenericMethod_GetTaskExecution() override { BaseClassMustBeDerivedFromService(this); @@ -4438,7 +4537,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListTaskExecutions() { - ::grpc::Service::MarkMethodGeneric(33); + ::grpc::Service::MarkMethodGeneric(34); } ~WithGenericMethod_ListTaskExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -4455,7 +4554,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetTaskExecutionData() { - ::grpc::Service::MarkMethodGeneric(34); + ::grpc::Service::MarkMethodGeneric(35); } ~WithGenericMethod_GetTaskExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -4472,7 +4571,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_UpdateProjectDomainAttributes() { - ::grpc::Service::MarkMethodGeneric(35); + ::grpc::Service::MarkMethodGeneric(36); } ~WithGenericMethod_UpdateProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4489,7 +4588,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetProjectDomainAttributes() { - ::grpc::Service::MarkMethodGeneric(36); + ::grpc::Service::MarkMethodGeneric(37); } ~WithGenericMethod_GetProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4506,7 +4605,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_DeleteProjectDomainAttributes() { - ::grpc::Service::MarkMethodGeneric(37); + ::grpc::Service::MarkMethodGeneric(38); } ~WithGenericMethod_DeleteProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4523,7 +4622,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodGeneric(38); + ::grpc::Service::MarkMethodGeneric(39); } ~WithGenericMethod_UpdateWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4540,7 +4639,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodGeneric(39); + ::grpc::Service::MarkMethodGeneric(40); } ~WithGenericMethod_GetWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4557,7 +4656,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodGeneric(40); + ::grpc::Service::MarkMethodGeneric(41); } ~WithGenericMethod_DeleteWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4574,7 +4673,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodGeneric(41); + ::grpc::Service::MarkMethodGeneric(42); } ~WithGenericMethod_ListMatchableAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4591,7 +4690,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodGeneric(42); + ::grpc::Service::MarkMethodGeneric(43); } ~WithGenericMethod_ListNamedEntities() override { BaseClassMustBeDerivedFromService(this); @@ -4608,7 +4707,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodGeneric(43); + ::grpc::Service::MarkMethodGeneric(44); } ~WithGenericMethod_GetNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -4625,7 +4724,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodGeneric(44); + ::grpc::Service::MarkMethodGeneric(45); } ~WithGenericMethod_UpdateNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -4642,7 +4741,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetVersion() { - ::grpc::Service::MarkMethodGeneric(45); + ::grpc::Service::MarkMethodGeneric(46); } ~WithGenericMethod_GetVersion() override { BaseClassMustBeDerivedFromService(this); @@ -5034,12 +5133,32 @@ class AdminService final { } }; template + class WithRawMethod_UpdateExecution : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithRawMethod_UpdateExecution() { + ::grpc::Service::MarkMethodRaw(19); + } + ~WithRawMethod_UpdateExecution() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestUpdateExecution(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(19, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithRawMethod_GetExecutionData : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetExecutionData() { - ::grpc::Service::MarkMethodRaw(19); + ::grpc::Service::MarkMethodRaw(20); } ~WithRawMethod_GetExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -5050,7 +5169,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetExecutionData(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(19, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(20, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5059,7 +5178,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListExecutions() { - ::grpc::Service::MarkMethodRaw(20); + ::grpc::Service::MarkMethodRaw(21); } ~WithRawMethod_ListExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -5070,7 +5189,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListExecutions(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(20, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(21, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5079,7 +5198,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_TerminateExecution() { - ::grpc::Service::MarkMethodRaw(21); + ::grpc::Service::MarkMethodRaw(22); } ~WithRawMethod_TerminateExecution() override { BaseClassMustBeDerivedFromService(this); @@ -5090,7 +5209,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestTerminateExecution(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(21, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(22, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5099,7 +5218,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetNodeExecution() { - ::grpc::Service::MarkMethodRaw(22); + ::grpc::Service::MarkMethodRaw(23); } ~WithRawMethod_GetNodeExecution() override { BaseClassMustBeDerivedFromService(this); @@ -5110,7 +5229,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNodeExecution(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(22, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5119,7 +5238,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListNodeExecutions() { - ::grpc::Service::MarkMethodRaw(23); + ::grpc::Service::MarkMethodRaw(24); } ~WithRawMethod_ListNodeExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -5130,7 +5249,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNodeExecutions(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(23, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5139,7 +5258,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListNodeExecutionsForTask() { - ::grpc::Service::MarkMethodRaw(24); + ::grpc::Service::MarkMethodRaw(25); } ~WithRawMethod_ListNodeExecutionsForTask() override { BaseClassMustBeDerivedFromService(this); @@ -5150,7 +5269,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNodeExecutionsForTask(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(24, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5159,7 +5278,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetNodeExecutionData() { - ::grpc::Service::MarkMethodRaw(25); + ::grpc::Service::MarkMethodRaw(26); } ~WithRawMethod_GetNodeExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -5170,7 +5289,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNodeExecutionData(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(25, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5179,7 +5298,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_RegisterProject() { - ::grpc::Service::MarkMethodRaw(26); + ::grpc::Service::MarkMethodRaw(27); } ~WithRawMethod_RegisterProject() override { BaseClassMustBeDerivedFromService(this); @@ -5190,7 +5309,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestRegisterProject(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(26, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5199,7 +5318,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_UpdateProject() { - ::grpc::Service::MarkMethodRaw(27); + ::grpc::Service::MarkMethodRaw(28); } ~WithRawMethod_UpdateProject() override { BaseClassMustBeDerivedFromService(this); @@ -5210,7 +5329,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateProject(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(27, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5219,7 +5338,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListProjects() { - ::grpc::Service::MarkMethodRaw(28); + ::grpc::Service::MarkMethodRaw(29); } ~WithRawMethod_ListProjects() override { BaseClassMustBeDerivedFromService(this); @@ -5230,7 +5349,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListProjects(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(28, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5239,7 +5358,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_CreateWorkflowEvent() { - ::grpc::Service::MarkMethodRaw(29); + ::grpc::Service::MarkMethodRaw(30); } ~WithRawMethod_CreateWorkflowEvent() override { BaseClassMustBeDerivedFromService(this); @@ -5250,7 +5369,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateWorkflowEvent(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(29, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5259,7 +5378,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_CreateNodeEvent() { - ::grpc::Service::MarkMethodRaw(30); + ::grpc::Service::MarkMethodRaw(31); } ~WithRawMethod_CreateNodeEvent() override { BaseClassMustBeDerivedFromService(this); @@ -5270,7 +5389,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateNodeEvent(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(30, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5279,7 +5398,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_CreateTaskEvent() { - ::grpc::Service::MarkMethodRaw(31); + ::grpc::Service::MarkMethodRaw(32); } ~WithRawMethod_CreateTaskEvent() override { BaseClassMustBeDerivedFromService(this); @@ -5290,7 +5409,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestCreateTaskEvent(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(31, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5299,7 +5418,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetTaskExecution() { - ::grpc::Service::MarkMethodRaw(32); + ::grpc::Service::MarkMethodRaw(33); } ~WithRawMethod_GetTaskExecution() override { BaseClassMustBeDerivedFromService(this); @@ -5310,7 +5429,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetTaskExecution(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(32, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5319,7 +5438,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListTaskExecutions() { - ::grpc::Service::MarkMethodRaw(33); + ::grpc::Service::MarkMethodRaw(34); } ~WithRawMethod_ListTaskExecutions() override { BaseClassMustBeDerivedFromService(this); @@ -5330,7 +5449,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListTaskExecutions(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(33, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5339,7 +5458,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetTaskExecutionData() { - ::grpc::Service::MarkMethodRaw(34); + ::grpc::Service::MarkMethodRaw(35); } ~WithRawMethod_GetTaskExecutionData() override { BaseClassMustBeDerivedFromService(this); @@ -5350,7 +5469,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetTaskExecutionData(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(34, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5359,7 +5478,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_UpdateProjectDomainAttributes() { - ::grpc::Service::MarkMethodRaw(35); + ::grpc::Service::MarkMethodRaw(36); } ~WithRawMethod_UpdateProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5370,7 +5489,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateProjectDomainAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(35, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5379,7 +5498,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetProjectDomainAttributes() { - ::grpc::Service::MarkMethodRaw(36); + ::grpc::Service::MarkMethodRaw(37); } ~WithRawMethod_GetProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5390,7 +5509,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetProjectDomainAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(36, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5399,7 +5518,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_DeleteProjectDomainAttributes() { - ::grpc::Service::MarkMethodRaw(37); + ::grpc::Service::MarkMethodRaw(38); } ~WithRawMethod_DeleteProjectDomainAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5410,7 +5529,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteProjectDomainAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(37, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5419,7 +5538,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodRaw(38); + ::grpc::Service::MarkMethodRaw(39); } ~WithRawMethod_UpdateWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5430,7 +5549,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateWorkflowAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(38, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5439,7 +5558,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodRaw(39); + ::grpc::Service::MarkMethodRaw(40); } ~WithRawMethod_GetWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5450,7 +5569,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetWorkflowAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5459,7 +5578,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodRaw(40); + ::grpc::Service::MarkMethodRaw(41); } ~WithRawMethod_DeleteWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5470,7 +5589,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteWorkflowAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5479,7 +5598,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodRaw(41); + ::grpc::Service::MarkMethodRaw(42); } ~WithRawMethod_ListMatchableAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5490,7 +5609,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListMatchableAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5499,7 +5618,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodRaw(42); + ::grpc::Service::MarkMethodRaw(43); } ~WithRawMethod_ListNamedEntities() override { BaseClassMustBeDerivedFromService(this); @@ -5510,7 +5629,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNamedEntities(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5519,7 +5638,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodRaw(43); + ::grpc::Service::MarkMethodRaw(44); } ~WithRawMethod_GetNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -5530,7 +5649,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNamedEntity(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5539,7 +5658,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodRaw(44); + ::grpc::Service::MarkMethodRaw(45); } ~WithRawMethod_UpdateNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -5550,7 +5669,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateNamedEntity(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5559,7 +5678,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetVersion() { - ::grpc::Service::MarkMethodRaw(45); + ::grpc::Service::MarkMethodRaw(46); } ~WithRawMethod_GetVersion() override { BaseClassMustBeDerivedFromService(this); @@ -5570,7 +5689,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetVersion(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -6049,12 +6168,37 @@ class AdminService final { virtual void GetExecution(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; template + class ExperimentalWithRawCallbackMethod_UpdateExecution : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithRawCallbackMethod_UpdateExecution() { + ::grpc::Service::experimental().MarkMethodRawCallback(19, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this](::grpc::ServerContext* context, + const ::grpc::ByteBuffer* request, + ::grpc::ByteBuffer* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + this->UpdateExecution(context, request, response, controller); + })); + } + ~ExperimentalWithRawCallbackMethod_UpdateExecution() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void UpdateExecution(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template class ExperimentalWithRawCallbackMethod_GetExecutionData : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetExecutionData() { - ::grpc::Service::experimental().MarkMethodRawCallback(19, + ::grpc::Service::experimental().MarkMethodRawCallback(20, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6079,7 +6223,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListExecutions() { - ::grpc::Service::experimental().MarkMethodRawCallback(20, + ::grpc::Service::experimental().MarkMethodRawCallback(21, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6104,7 +6248,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_TerminateExecution() { - ::grpc::Service::experimental().MarkMethodRawCallback(21, + ::grpc::Service::experimental().MarkMethodRawCallback(22, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6129,7 +6273,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetNodeExecution() { - ::grpc::Service::experimental().MarkMethodRawCallback(22, + ::grpc::Service::experimental().MarkMethodRawCallback(23, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6154,7 +6298,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListNodeExecutions() { - ::grpc::Service::experimental().MarkMethodRawCallback(23, + ::grpc::Service::experimental().MarkMethodRawCallback(24, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6179,7 +6323,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListNodeExecutionsForTask() { - ::grpc::Service::experimental().MarkMethodRawCallback(24, + ::grpc::Service::experimental().MarkMethodRawCallback(25, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6204,7 +6348,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetNodeExecutionData() { - ::grpc::Service::experimental().MarkMethodRawCallback(25, + ::grpc::Service::experimental().MarkMethodRawCallback(26, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6229,7 +6373,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_RegisterProject() { - ::grpc::Service::experimental().MarkMethodRawCallback(26, + ::grpc::Service::experimental().MarkMethodRawCallback(27, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6254,7 +6398,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_UpdateProject() { - ::grpc::Service::experimental().MarkMethodRawCallback(27, + ::grpc::Service::experimental().MarkMethodRawCallback(28, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6279,7 +6423,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListProjects() { - ::grpc::Service::experimental().MarkMethodRawCallback(28, + ::grpc::Service::experimental().MarkMethodRawCallback(29, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6304,7 +6448,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_CreateWorkflowEvent() { - ::grpc::Service::experimental().MarkMethodRawCallback(29, + ::grpc::Service::experimental().MarkMethodRawCallback(30, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6329,7 +6473,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_CreateNodeEvent() { - ::grpc::Service::experimental().MarkMethodRawCallback(30, + ::grpc::Service::experimental().MarkMethodRawCallback(31, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6354,7 +6498,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_CreateTaskEvent() { - ::grpc::Service::experimental().MarkMethodRawCallback(31, + ::grpc::Service::experimental().MarkMethodRawCallback(32, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6379,7 +6523,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetTaskExecution() { - ::grpc::Service::experimental().MarkMethodRawCallback(32, + ::grpc::Service::experimental().MarkMethodRawCallback(33, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6404,7 +6548,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListTaskExecutions() { - ::grpc::Service::experimental().MarkMethodRawCallback(33, + ::grpc::Service::experimental().MarkMethodRawCallback(34, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6429,7 +6573,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetTaskExecutionData() { - ::grpc::Service::experimental().MarkMethodRawCallback(34, + ::grpc::Service::experimental().MarkMethodRawCallback(35, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6454,7 +6598,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_UpdateProjectDomainAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(35, + ::grpc::Service::experimental().MarkMethodRawCallback(36, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6479,7 +6623,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetProjectDomainAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(36, + ::grpc::Service::experimental().MarkMethodRawCallback(37, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6504,7 +6648,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_DeleteProjectDomainAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(37, + ::grpc::Service::experimental().MarkMethodRawCallback(38, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6529,7 +6673,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_UpdateWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(38, + ::grpc::Service::experimental().MarkMethodRawCallback(39, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6554,7 +6698,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(39, + ::grpc::Service::experimental().MarkMethodRawCallback(40, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6579,7 +6723,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_DeleteWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(40, + ::grpc::Service::experimental().MarkMethodRawCallback(41, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6604,7 +6748,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListMatchableAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(41, + ::grpc::Service::experimental().MarkMethodRawCallback(42, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6629,7 +6773,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListNamedEntities() { - ::grpc::Service::experimental().MarkMethodRawCallback(42, + ::grpc::Service::experimental().MarkMethodRawCallback(43, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6654,7 +6798,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetNamedEntity() { - ::grpc::Service::experimental().MarkMethodRawCallback(43, + ::grpc::Service::experimental().MarkMethodRawCallback(44, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6679,7 +6823,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_UpdateNamedEntity() { - ::grpc::Service::experimental().MarkMethodRawCallback(44, + ::grpc::Service::experimental().MarkMethodRawCallback(45, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6704,7 +6848,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetVersion() { - ::grpc::Service::experimental().MarkMethodRawCallback(45, + ::grpc::Service::experimental().MarkMethodRawCallback(46, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -7104,12 +7248,32 @@ class AdminService final { virtual ::grpc::Status StreamedGetExecution(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::WorkflowExecutionGetRequest,::flyteidl::admin::Execution>* server_unary_streamer) = 0; }; template + class WithStreamedUnaryMethod_UpdateExecution : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithStreamedUnaryMethod_UpdateExecution() { + ::grpc::Service::MarkMethodStreamed(19, + new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ExecutionUpdateRequest, ::flyteidl::admin::ExecutionUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateExecution::StreamedUpdateExecution, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_UpdateExecution() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status UpdateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionUpdateRequest* request, ::flyteidl::admin::ExecutionUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedUpdateExecution(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::ExecutionUpdateRequest,::flyteidl::admin::ExecutionUpdateResponse>* server_unary_streamer) = 0; + }; + template class WithStreamedUnaryMethod_GetExecutionData : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetExecutionData() { - ::grpc::Service::MarkMethodStreamed(19, + ::grpc::Service::MarkMethodStreamed(20, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowExecutionGetDataRequest, ::flyteidl::admin::WorkflowExecutionGetDataResponse>(std::bind(&WithStreamedUnaryMethod_GetExecutionData::StreamedGetExecutionData, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetExecutionData() override { @@ -7129,7 +7293,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListExecutions() { - ::grpc::Service::MarkMethodStreamed(20, + ::grpc::Service::MarkMethodStreamed(21, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ResourceListRequest, ::flyteidl::admin::ExecutionList>(std::bind(&WithStreamedUnaryMethod_ListExecutions::StreamedListExecutions, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListExecutions() override { @@ -7149,7 +7313,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_TerminateExecution() { - ::grpc::Service::MarkMethodStreamed(21, + ::grpc::Service::MarkMethodStreamed(22, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ExecutionTerminateRequest, ::flyteidl::admin::ExecutionTerminateResponse>(std::bind(&WithStreamedUnaryMethod_TerminateExecution::StreamedTerminateExecution, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_TerminateExecution() override { @@ -7169,7 +7333,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetNodeExecution() { - ::grpc::Service::MarkMethodStreamed(22, + ::grpc::Service::MarkMethodStreamed(23, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NodeExecutionGetRequest, ::flyteidl::admin::NodeExecution>(std::bind(&WithStreamedUnaryMethod_GetNodeExecution::StreamedGetNodeExecution, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetNodeExecution() override { @@ -7189,7 +7353,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListNodeExecutions() { - ::grpc::Service::MarkMethodStreamed(23, + ::grpc::Service::MarkMethodStreamed(24, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NodeExecutionListRequest, ::flyteidl::admin::NodeExecutionList>(std::bind(&WithStreamedUnaryMethod_ListNodeExecutions::StreamedListNodeExecutions, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListNodeExecutions() override { @@ -7209,7 +7373,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListNodeExecutionsForTask() { - ::grpc::Service::MarkMethodStreamed(24, + ::grpc::Service::MarkMethodStreamed(25, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NodeExecutionForTaskListRequest, ::flyteidl::admin::NodeExecutionList>(std::bind(&WithStreamedUnaryMethod_ListNodeExecutionsForTask::StreamedListNodeExecutionsForTask, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListNodeExecutionsForTask() override { @@ -7229,7 +7393,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetNodeExecutionData() { - ::grpc::Service::MarkMethodStreamed(25, + ::grpc::Service::MarkMethodStreamed(26, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NodeExecutionGetDataRequest, ::flyteidl::admin::NodeExecutionGetDataResponse>(std::bind(&WithStreamedUnaryMethod_GetNodeExecutionData::StreamedGetNodeExecutionData, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetNodeExecutionData() override { @@ -7249,7 +7413,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_RegisterProject() { - ::grpc::Service::MarkMethodStreamed(26, + ::grpc::Service::MarkMethodStreamed(27, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectRegisterRequest, ::flyteidl::admin::ProjectRegisterResponse>(std::bind(&WithStreamedUnaryMethod_RegisterProject::StreamedRegisterProject, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_RegisterProject() override { @@ -7269,7 +7433,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_UpdateProject() { - ::grpc::Service::MarkMethodStreamed(27, + ::grpc::Service::MarkMethodStreamed(28, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::Project, ::flyteidl::admin::ProjectUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateProject::StreamedUpdateProject, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_UpdateProject() override { @@ -7289,7 +7453,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListProjects() { - ::grpc::Service::MarkMethodStreamed(28, + ::grpc::Service::MarkMethodStreamed(29, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectListRequest, ::flyteidl::admin::Projects>(std::bind(&WithStreamedUnaryMethod_ListProjects::StreamedListProjects, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListProjects() override { @@ -7309,7 +7473,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_CreateWorkflowEvent() { - ::grpc::Service::MarkMethodStreamed(29, + ::grpc::Service::MarkMethodStreamed(30, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowExecutionEventRequest, ::flyteidl::admin::WorkflowExecutionEventResponse>(std::bind(&WithStreamedUnaryMethod_CreateWorkflowEvent::StreamedCreateWorkflowEvent, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_CreateWorkflowEvent() override { @@ -7329,7 +7493,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_CreateNodeEvent() { - ::grpc::Service::MarkMethodStreamed(30, + ::grpc::Service::MarkMethodStreamed(31, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NodeExecutionEventRequest, ::flyteidl::admin::NodeExecutionEventResponse>(std::bind(&WithStreamedUnaryMethod_CreateNodeEvent::StreamedCreateNodeEvent, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_CreateNodeEvent() override { @@ -7349,7 +7513,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_CreateTaskEvent() { - ::grpc::Service::MarkMethodStreamed(31, + ::grpc::Service::MarkMethodStreamed(32, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::TaskExecutionEventRequest, ::flyteidl::admin::TaskExecutionEventResponse>(std::bind(&WithStreamedUnaryMethod_CreateTaskEvent::StreamedCreateTaskEvent, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_CreateTaskEvent() override { @@ -7369,7 +7533,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetTaskExecution() { - ::grpc::Service::MarkMethodStreamed(32, + ::grpc::Service::MarkMethodStreamed(33, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::TaskExecutionGetRequest, ::flyteidl::admin::TaskExecution>(std::bind(&WithStreamedUnaryMethod_GetTaskExecution::StreamedGetTaskExecution, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetTaskExecution() override { @@ -7389,7 +7553,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListTaskExecutions() { - ::grpc::Service::MarkMethodStreamed(33, + ::grpc::Service::MarkMethodStreamed(34, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::TaskExecutionListRequest, ::flyteidl::admin::TaskExecutionList>(std::bind(&WithStreamedUnaryMethod_ListTaskExecutions::StreamedListTaskExecutions, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListTaskExecutions() override { @@ -7409,7 +7573,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetTaskExecutionData() { - ::grpc::Service::MarkMethodStreamed(34, + ::grpc::Service::MarkMethodStreamed(35, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::TaskExecutionGetDataRequest, ::flyteidl::admin::TaskExecutionGetDataResponse>(std::bind(&WithStreamedUnaryMethod_GetTaskExecutionData::StreamedGetTaskExecutionData, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetTaskExecutionData() override { @@ -7429,7 +7593,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_UpdateProjectDomainAttributes() { - ::grpc::Service::MarkMethodStreamed(35, + ::grpc::Service::MarkMethodStreamed(36, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesUpdateRequest, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateProjectDomainAttributes::StreamedUpdateProjectDomainAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_UpdateProjectDomainAttributes() override { @@ -7449,7 +7613,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetProjectDomainAttributes() { - ::grpc::Service::MarkMethodStreamed(36, + ::grpc::Service::MarkMethodStreamed(37, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesGetRequest, ::flyteidl::admin::ProjectDomainAttributesGetResponse>(std::bind(&WithStreamedUnaryMethod_GetProjectDomainAttributes::StreamedGetProjectDomainAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetProjectDomainAttributes() override { @@ -7469,7 +7633,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_DeleteProjectDomainAttributes() { - ::grpc::Service::MarkMethodStreamed(37, + ::grpc::Service::MarkMethodStreamed(38, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectDomainAttributesDeleteRequest, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>(std::bind(&WithStreamedUnaryMethod_DeleteProjectDomainAttributes::StreamedDeleteProjectDomainAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_DeleteProjectDomainAttributes() override { @@ -7489,7 +7653,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodStreamed(38, + ::grpc::Service::MarkMethodStreamed(39, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateWorkflowAttributes::StreamedUpdateWorkflowAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_UpdateWorkflowAttributes() override { @@ -7509,7 +7673,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodStreamed(39, + ::grpc::Service::MarkMethodStreamed(40, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>(std::bind(&WithStreamedUnaryMethod_GetWorkflowAttributes::StreamedGetWorkflowAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetWorkflowAttributes() override { @@ -7529,7 +7693,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodStreamed(40, + ::grpc::Service::MarkMethodStreamed(41, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>(std::bind(&WithStreamedUnaryMethod_DeleteWorkflowAttributes::StreamedDeleteWorkflowAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_DeleteWorkflowAttributes() override { @@ -7549,7 +7713,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodStreamed(41, + ::grpc::Service::MarkMethodStreamed(42, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>(std::bind(&WithStreamedUnaryMethod_ListMatchableAttributes::StreamedListMatchableAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListMatchableAttributes() override { @@ -7569,7 +7733,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodStreamed(42, + ::grpc::Service::MarkMethodStreamed(43, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>(std::bind(&WithStreamedUnaryMethod_ListNamedEntities::StreamedListNamedEntities, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListNamedEntities() override { @@ -7589,7 +7753,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodStreamed(43, + ::grpc::Service::MarkMethodStreamed(44, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>(std::bind(&WithStreamedUnaryMethod_GetNamedEntity::StreamedGetNamedEntity, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetNamedEntity() override { @@ -7609,7 +7773,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodStreamed(44, + ::grpc::Service::MarkMethodStreamed(45, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateNamedEntity::StreamedUpdateNamedEntity, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_UpdateNamedEntity() override { @@ -7629,7 +7793,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetVersion() { - ::grpc::Service::MarkMethodStreamed(45, + ::grpc::Service::MarkMethodStreamed(46, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>(std::bind(&WithStreamedUnaryMethod_GetVersion::StreamedGetVersion, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetVersion() override { @@ -7643,9 +7807,9 @@ class AdminService final { // replace default version of method with streamed unary virtual ::grpc::Status StreamedGetVersion(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::GetVersionRequest,::flyteidl::admin::GetVersionResponse>* server_unary_streamer) = 0; }; - typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedUnaryService; + typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedUnaryService; typedef Service SplitStreamedService; - typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService; + typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService; }; } // namespace service diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index 7efee4d43b..c3187aba9a 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -51,7 +51,7 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "dmin/task_execution.proto\032\034flyteidl/admi" "n/version.proto\032\033flyteidl/admin/common.p" "roto\032,protoc-gen-swagger/options/annotat" - "ions.proto2\305f\n\014AdminService\022\305\002\n\nCreateTa" + "ions.proto2\236h\n\014AdminService\022\305\002\n\nCreateTa" "sk\022!.flyteidl.admin.TaskCreateRequest\032\"." "flyteidl.admin.TaskCreateResponse\"\357\001\202\323\344\223" "\002\022\"\r/api/v1/tasks:\001*\222A\323\001\032&Create and reg" @@ -192,201 +192,206 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "uest\032\031.flyteidl.admin.Execution\"j\202\323\344\223\0027\022" "5/api/v1/executions/{id.project}/{id.dom" "ain}/{id.name}\222A*\032(Retrieve an existing " - "workflow execution.\022\202\002\n\020GetExecutionData" - "\022/.flyteidl.admin.WorkflowExecutionGetDa" - "taRequest\0320.flyteidl.admin.WorkflowExecu" - "tionGetDataResponse\"\212\001\202\323\344\223\002<\022:/api/v1/da" - "ta/executions/{id.project}/{id.domain}/{" - "id.name}\222AE\032CRetrieve input and output d" - "ata from an existing workflow execution." - "\022\310\001\n\016ListExecutions\022#.flyteidl.admin.Res" - "ourceListRequest\032\035.flyteidl.admin.Execut" - "ionList\"r\202\323\344\223\002-\022+/api/v1/executions/{id." - "project}/{id.domain}\222A<\032:Fetch existing " - "workflow executions matching input filte" - "rs.\022\364\001\n\022TerminateExecution\022).flyteidl.ad" - "min.ExecutionTerminateRequest\032*.flyteidl" - ".admin.ExecutionTerminateResponse\"\206\001\202\323\344\223" - "\002:*5/api/v1/executions/{id.project}/{id." - "domain}/{id.name}:\001*\222AC\032ATerminate the a" - "ctive workflow execution specified in th" - "e request.\022\374\001\n\020GetNodeExecution\022\'.flytei" - "dl.admin.NodeExecutionGetRequest\032\035.flyte" - "idl.admin.NodeExecution\"\237\001\202\323\344\223\002p\022n/api/v" - "1/node_executions/{id.execution_id.proje" - "ct}/{id.execution_id.domain}/{id.executi" - "on_id.name}/{id.node_id}\222A&\032$Retrieve an" - " existing node execution.\022\232\002\n\022ListNodeEx" - "ecutions\022(.flyteidl.admin.NodeExecutionL" - "istRequest\032!.flyteidl.admin.NodeExecutio" - "nList\"\266\001\202\323\344\223\002u\022s/api/v1/node_executions/" - "{workflow_execution_id.project}/{workflo" - "w_execution_id.domain}/{workflow_executi" - "on_id.name}\222A8\0326Fetch existing node exec" - "utions matching input filters.\022\357\004\n\031ListN" - "odeExecutionsForTask\022/.flyteidl.admin.No" - "deExecutionForTaskListRequest\032!.flyteidl" - ".admin.NodeExecutionList\"\375\003\202\323\344\223\002\254\003\022\251\003/ap" - "i/v1/children/task_executions/{task_exec" - "ution_id.node_execution_id.execution_id." - "project}/{task_execution_id.node_executi" - "on_id.execution_id.domain}/{task_executi" - "on_id.node_execution_id.execution_id.nam" - "e}/{task_execution_id.node_execution_id." - "node_id}/{task_execution_id.task_id.proj" - "ect}/{task_execution_id.task_id.domain}/" - "{task_execution_id.task_id.name}/{task_e" - "xecution_id.task_id.version}/{task_execu" - "tion_id.retry_attempt}\222AG\032EFetch child n" - "ode executions launched by the specified" - " task execution.\022\263\002\n\024GetNodeExecutionDat" - "a\022+.flyteidl.admin.NodeExecutionGetDataR" - "equest\032,.flyteidl.admin.NodeExecutionGet" - "DataResponse\"\277\001\202\323\344\223\002u\022s/api/v1/data/node" - "_executions/{id.execution_id.project}/{i" - "d.execution_id.domain}/{id.execution_id." - "name}/{id.node_id}\222AA\032\?Retrieve input an" - "d output data from an existing node exec" - "ution.\022\227\001\n\017RegisterProject\022&.flyteidl.ad" - "min.ProjectRegisterRequest\032\'.flyteidl.ad" - "min.ProjectRegisterResponse\"3\202\323\344\223\002\025\"\020/ap" - "i/v1/projects:\001*\222A\025\032\023Register a project." - "\022\207\001\n\rUpdateProject\022\027.flyteidl.admin.Proj" - "ect\032%.flyteidl.admin.ProjectUpdateRespon" - "se\"6\202\323\344\223\002\032\032\025/api/v1/projects/{id}:\001*\222A\023\032" - "\021Update a project.\022\205\001\n\014ListProjects\022\".fl" - "yteidl.admin.ProjectListRequest\032\030.flytei" - "dl.admin.Projects\"7\202\323\344\223\002\022\022\020/api/v1/proje" - "cts\222A\034\032\032Fetch registered projects.\022\335\001\n\023C" - "reateWorkflowEvent\022-.flyteidl.admin.Work" - "flowExecutionEventRequest\032..flyteidl.adm" - "in.WorkflowExecutionEventResponse\"g\202\323\344\223\002" - "\035\"\030/api/v1/events/workflows:\001*\222AA\032\?Creat" - "e a workflow execution event recording a" - " phase transition.\022\311\001\n\017CreateNodeEvent\022)" - ".flyteidl.admin.NodeExecutionEventReques" - "t\032*.flyteidl.admin.NodeExecutionEventRes" - "ponse\"_\202\323\344\223\002\031\"\024/api/v1/events/nodes:\001*\222A" - "=\032;Create a node execution event recordi" - "ng a phase transition.\022\311\001\n\017CreateTaskEve" - "nt\022).flyteidl.admin.TaskExecutionEventRe" - "quest\032*.flyteidl.admin.TaskExecutionEven" - "tResponse\"_\202\323\344\223\002\031\"\024/api/v1/events/tasks:" - "\001*\222A=\032;Create a task execution event rec" - "ording a phase transition.\022\251\003\n\020GetTaskEx" - "ecution\022\'.flyteidl.admin.TaskExecutionGe" - "tRequest\032\035.flyteidl.admin.TaskExecution\"" - "\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{id." - "node_execution_id.execution_id.project}/" - "{id.node_execution_id.execution_id.domai" - "n}/{id.node_execution_id.execution_id.na" - "me}/{id.node_execution_id.node_id}/{id.t" - "ask_id.project}/{id.task_id.domain}/{id." - "task_id.name}/{id.task_id.version}/{id.r" - "etry_attempt}\222A&\032$Retrieve an existing t" - "ask execution.\022\323\002\n\022ListTaskExecutions\022(." - "flyteidl.admin.TaskExecutionListRequest\032" - "!.flyteidl.admin.TaskExecutionList\"\357\001\202\323\344" - "\223\002\255\001\022\252\001/api/v1/task_executions/{node_exe" - "cution_id.execution_id.project}/{node_ex" - "ecution_id.execution_id.domain}/{node_ex" - "ecution_id.execution_id.name}/{node_exec" - "ution_id.node_id}\222A8\0326Fetch existing tas" - "k executions matching input filters.\022\340\003\n" - "\024GetTaskExecutionData\022+.flyteidl.admin.T" - "askExecutionGetDataRequest\032,.flyteidl.ad" - "min.TaskExecutionGetDataResponse\"\354\002\202\323\344\223\002" - "\241\002\022\236\002/api/v1/data/task_executions/{id.no" - "de_execution_id.execution_id.project}/{i" - "d.node_execution_id.execution_id.domain}" - "/{id.node_execution_id.execution_id.name" - "}/{id.node_execution_id.node_id}/{id.tas" - "k_id.project}/{id.task_id.domain}/{id.ta" - "sk_id.name}/{id.task_id.version}/{id.ret" - "ry_attempt}\222AA\032\?Retrieve input and outpu" - "t data from an existing task execution.\022" - "\277\002\n\035UpdateProjectDomainAttributes\0224.flyt" - "eidl.admin.ProjectDomainAttributesUpdate" - "Request\0325.flyteidl.admin.ProjectDomainAt" - "tributesUpdateResponse\"\260\001\202\323\344\223\002O\032J/api/v1" - "/project_domain_attributes/{attributes.p" - "roject}/{attributes.domain}:\001*\222AX\032VUpdat" - "e the customized resource attributes ass" - "ociated with a project-domain combinatio" - "n\022\237\002\n\032GetProjectDomainAttributes\0221.flyte" - "idl.admin.ProjectDomainAttributesGetRequ" - "est\0322.flyteidl.admin.ProjectDomainAttrib" - "utesGetResponse\"\231\001\202\323\344\223\0026\0224/api/v1/projec" - "t_domain_attributes/{project}/{domain}\222A" - "Z\032XRetrieve the customized resource attr" - "ibutes associated with a project-domain " - "combination\022\251\002\n\035DeleteProjectDomainAttri" - "butes\0224.flyteidl.admin.ProjectDomainAttr" - "ibutesDeleteRequest\0325.flyteidl.admin.Pro" - "jectDomainAttributesDeleteResponse\"\232\001\202\323\344" - "\223\0029*4/api/v1/project_domain_attributes/{" - "project}/{domain}:\001*\222AX\032VDelete the cust" - "omized resource attributes associated wi" - "th a project-domain combination\022\316\002\n\030Upda" - "teWorkflowAttributes\022/.flyteidl.admin.Wo" - "rkflowAttributesUpdateRequest\0320.flyteidl" - ".admin.WorkflowAttributesUpdateResponse\"" - "\316\001\202\323\344\223\002_\032Z/api/v1/workflow_attributes/{a" - "ttributes.project}/{attributes.domain}/{" - "attributes.workflow}:\001*\222Af\032dUpdate the c" - "ustomized resource attributes associated" - " with a project, domain and workflow com" - "bination\022\243\002\n\025GetWorkflowAttributes\022,.fly" - "teidl.admin.WorkflowAttributesGetRequest" - "\032-.flyteidl.admin.WorkflowAttributesGetR" - "esponse\"\254\001\202\323\344\223\002;\0229/api/v1/workflow_attri" - "butes/{project}/{domain}/{workflow}\222Ah\032f" - "Retrieve the customized resource attribu" - "tes associated with a project, domain an" - "d workflow combination\022\255\002\n\030DeleteWorkflo" - "wAttributes\022/.flyteidl.admin.WorkflowAtt" - "ributesDeleteRequest\0320.flyteidl.admin.Wo" - "rkflowAttributesDeleteResponse\"\255\001\202\323\344\223\002>*" - "9/api/v1/workflow_attributes/{project}/{" - "domain}/{workflow}:\001*\222Af\032dDelete the cus" - "tomized resource attributes associated w" - "ith a project, domain and workflow combi" - "nation\022\341\001\n\027ListMatchableAttributes\022..fly" - "teidl.admin.ListMatchableAttributesReque" - "st\032/.flyteidl.admin.ListMatchableAttribu" - "tesResponse\"e\202\323\344\223\002\036\022\034/api/v1/matchable_a" - "ttributes\222A>\032*9/api/v1/workflow_attri" + "butes/{project}/{domain}/{workflow}:\001*\222A" + "f\032dDelete the customized resource attrib" + "utes associated with a project, domain a" + "nd workflow combination\022\341\001\n\027ListMatchabl" + "eAttributes\022..flyteidl.admin.ListMatchab" + "leAttributesRequest\032/.flyteidl.admin.Lis" + "tMatchableAttributesResponse\"e\202\323\344\223\002\036\022\034/a" + "pi/v1/matchable_attributes\222A>\032= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminExecutionUpdateResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + /* AdminServiceApiService Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_closure.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_closure.go index 377e5d0b17..831dcb9d02 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_closure.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_closure.go @@ -39,4 +39,5 @@ type AdminExecutionClosure struct { Notifications []AdminNotification `json:"notifications,omitempty"` // Identifies the workflow definition for this execution. WorkflowId *CoreIdentifier `json:"workflow_id,omitempty"` + StateChangeDetails *AdminExecutionStateChangeDetails `json:"state_change_details,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_state.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_state.go new file mode 100644 index 0000000000..c67d546f89 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_state.go @@ -0,0 +1,18 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin +// AdminExecutionState : The state of the execution is used to control its visibility in the UI/CLI. - EXECUTION_ACTIVE: By default, all executions are considered active. - EXECUTION_ARCHIVED: Archived executions are no longer visible in the UI. +type AdminExecutionState string + +// List of adminExecutionState +const ( + AdminExecutionStateACTIVE AdminExecutionState = "EXECUTION_ACTIVE" + AdminExecutionStateARCHIVED AdminExecutionState = "EXECUTION_ARCHIVED" +) diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_state_change_details.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_state_change_details.go new file mode 100644 index 0000000000..44e3d275a0 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_state_change_details.go @@ -0,0 +1,22 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +import ( + "time" +) + +type AdminExecutionStateChangeDetails struct { + // The state of the execution is used to control its visibility in the UI/CLI. + State *AdminExecutionState `json:"state,omitempty"` + // This timestamp represents when the state changed. + OccurredAt time.Time `json:"occurred_at,omitempty"` + Principal string `json:"principal,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_update_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_update_request.go new file mode 100644 index 0000000000..681eb05ed9 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_update_request.go @@ -0,0 +1,15 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +type AdminExecutionUpdateRequest struct { + Id *CoreWorkflowExecutionIdentifier `json:"id,omitempty"` + State *AdminExecutionState `json:"state,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_update_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_update_response.go new file mode 100644 index 0000000000..34de2f4ce0 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_update_response.go @@ -0,0 +1,13 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +type AdminExecutionUpdateResponse struct { +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index fce8c02adc..b55d75e048 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/openapi.go +++ b/flyteidl/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\xfb\x73\x23\xb7\x95\x37\x8c\xff\xbe\x7f\x05\x9e\xc9\x53\x65\x3b\xa1\x24\xdb\xd9\xcd\x37\xab\xad\xa7\xbe\x2f\x47\xe2\x8c\xf9\x58\x23\x29\xba\xd8\xeb\x77\x99\xa2\xc1\x6e\x90\x44\xd4\x04\x18\x00\x2d\x0d\x93\xca\xff\xfe\x16\x0e\x2e\x0d\xf4\x85\x6c\x5e\x24\x51\x63\xee\x56\x39\x1a\x76\x37\xae\x07\x07\xe7\xfa\x39\xff\xfc\x37\x84\xde\xc9\x27\x3c\x99\x10\xf1\xee\x14\xbd\xfb\xfe\xf8\xdb\x77\x1d\xfd\x1b\x65\x63\xfe\xee\x14\xe9\xe7\x08\xbd\x53\x54\x65\x44\x3f\x1f\x67\x0b\x45\x68\x9a\x9d\x48\x22\x1e\x69\x42\x4e\x70\x3a\xa3\xec\x78\x2e\xb8\xe2\xf0\x21\x42\xef\x1e\x89\x90\x94\x33\xfd\xba\xfd\x13\x31\xae\x90\x24\xea\xdd\xbf\x21\xf4\x2f\x68\x5e\x26\x53\x32\x23\xf2\xdd\x29\xfa\x1f\xf3\xd1\x54\xa9\xb9\x6b\x40\xff\x2d\xf5\xbb\x7f\x85\x77\x13\xce\x64\x1e\xbd\x8c\xe7\xf3\x8c\x26\x58\x51\xce\x4e\xfe\x26\x39\x2b\xde\x9d\x0b\x9e\xe6\x49\xcb\x77\xb1\x9a\xca\x62\x8e\x27\x78\x4e\x4f\x1e\xbf\x3b\xc1\x89\xa2\x8f\x64\x98\xe1\x9c\x25\xd3\xe1\x3c\xc3\x4c\x9e\xfc\x93\xa6\x7a\x8e\x7f\x23\x89\xfa\x17\xfc\x23\xe5\x33\x4c\x99\xf9\x9b\xe1\x19\xf9\x97\x6f\x07\xa1\x77\x13\xa2\x82\x7f\xea\xd9\xe6\xb3\x19\x16\x0b\xbd\x22\x1f\x88\x4a\xa6\x48\x4d\x09\x32\xfd\x20\xb7\x44\x7c\x8c\x30\x3a\x15\x64\x7c\xfa\xab\x20\xe3\xa1\x5b\xe8\x63\xb3\xc0\x17\x30\x9a\xeb\x0c\xb3\x5f\x8f\xed\x32\x41\xcb\x29\x91\x89\xa0\x73\x65\xd7\xfb\x86\x28\x41\xc9\x23\x09\x3b\x30\x13\x41\x7a\x22\xbe\x33\x39\x27\x09\x1d\x53\x92\xa2\xd1\x02\x51\x36\xcf\x15\x12\xe4\xef\x39\x91\x0a\x8d\x69\xa6\x88\x90\x51\x2f\x7c\x4e\x04\xac\x60\x3f\xd5\xbd\x7c\x24\xaa\x0b\x6d\x17\xa3\x0a\xdf\x16\x44\xce\x39\x93\x44\x46\x8b\x80\xd0\xbb\xef\xbf\xfd\xb6\xf4\x53\x75\x06\x5d\x24\xf3\x24\x21\x52\x8e\xf3\x0c\xb9\x96\xc2\xc1\x98\x05\xd5\xe4\x83\x2b\x8d\x21\xf4\xee\x7f\x0b\x32\xd6\xed\xfc\xee\x24\x25\x63\xca\xa8\x6e\x57\x1a\x2a\x0d\x46\x1b\x7d\xf5\xaf\x7f\xab\xfb\xfb\x5f\xc1\x8c\xe6\x58\xe0\x19\xd1\xcb\xe2\xe9\xca\xfc\x5f\x69\x2e\x9a\x12\x74\xe7\x05\xb5\x94\x07\x5e\x9a\xed\x25\x9e\x11\xbd\xf3\x7a\xbb\xec\x17\xf0\xb7\x20\x92\xe7\x22\x21\x68\x44\x32\xce\x26\x12\x29\x5e\x59\x03\x0a\x2d\x68\x22\x2e\x3f\xd1\x5b\x49\x05\xd1\x7b\xa5\x44\x4e\x4a\x4f\xd5\x62\x0e\x83\x94\x4a\x50\x36\x09\x97\xe2\x5f\x9d\x56\x53\x33\xb4\xbf\xc6\xcc\xcc\x07\x8d\x13\x1b\xb0\xae\x7b\x25\xc1\x0c\x8d\x08\xd2\x27\x9e\xa6\x44\x90\x14\x61\x89\x30\x92\xf9\x48\x12\x85\x9e\xa8\x9a\x52\xa6\xff\x6d\xc8\x37\x71\x6b\xb6\x3f\x6b\x03\x7f\x2e\x5f\x99\x7b\x49\x84\x1e\xf8\x23\x4d\x49\x8a\x1e\x71\x96\x13\x34\xe6\x22\x5a\x9e\xe3\x01\xbb\x9b\xea\x75\x98\x8d\x28\x83\x93\xa7\xd7\xd2\x51\xc8\x1f\xdc\x72\xfd\x01\xe9\xfe\x50\xce\xe8\xdf\x73\x92\x2d\x10\x4d\x09\x53\xfa\x5c\xcb\x72\x6b\x7f\xe0\xd0\x3f\xce\xd0\x11\xd2\xeb\x4c\x84\x82\xf5\xe6\x4c\x91\xcf\x4a\xa2\x23\x94\xd1\x07\x82\xbe\xba\xa0\x52\xa1\xee\x75\xff\xab\x0e\xfa\xea\xa2\x60\x1c\xf2\xab\x17\x58\x61\xff\xf7\x5f\x83\xa3\xa7\xf0\xa4\x7c\xe8\xde\x75\xf5\x69\xbe\x35\x17\x50\xd1\xc2\x5f\xff\x2d\x6c\xc7\xee\xd7\x72\xae\x5e\xb0\x74\xcb\xcf\xdb\x72\x71\x58\xa6\x98\x81\x4b\xbd\x43\xdb\xf2\xef\xca\xed\x50\xc3\xbc\xe5\x96\xdc\x5b\x8f\xbd\xcc\xbe\xe5\xdb\xe2\xdf\x7a\x0a\xcf\xcd\xc3\xb7\x61\xe0\x58\xc1\xc9\xc2\x94\x99\x83\xe8\xcf\xa5\x90\xfa\x2c\xba\x13\xb2\x27\x6c\x6b\x1b\x7e\x1e\xcc\x2c\x60\xe9\x8e\x53\x07\xab\xb2\x87\xf3\xce\xe8\x8c\xae\xda\xdf\x3e\x4b\xb5\xf0\x68\x19\x2a\xcb\x67\x23\x22\xf4\x32\x38\xd6\x0a\xb3\x1d\x69\x56\xab\x72\xc1\x48\xda\x62\x9a\x7f\xcf\x89\x58\x2c\x99\xe7\x18\x67\xb2\x69\xa2\x94\x29\xa2\x25\xf5\xd2\xe3\x31\x17\x33\xac\xec\x0b\x7f\xfa\xf7\x75\x17\x42\xf1\x07\xb2\x6a\xff\xfb\x66\x37\x13\x2c\x81\x0c\x66\x79\xa6\xe8\x3c\x23\x68\x8e\x27\x44\xda\x15\xc9\x33\x25\x3b\xf0\x9a\xd6\x0e\x88\x38\xf2\xb7\x1c\xf4\xe0\x6e\xf7\x5c\xc2\x2f\x68\xec\x99\x1d\x23\x9f\x15\xb4\x34\x60\x70\xbf\xc3\x12\x85\xb7\xd6\x33\x2c\xe5\x66\x34\x23\xb9\x50\xc3\xd1\xe2\xf8\x81\x54\xfa\x6d\xa4\x1c\xcc\x10\x56\x4a\xd0\x51\xae\x88\x9e\xb7\x6e\xc3\xdd\xcf\xc0\x1e\x8d\x10\xd0\x86\x35\xbc\xde\x84\x53\x2a\x48\x02\x73\x5b\xe7\xc0\xf8\xaf\xf4\xbc\xb5\x26\xb6\x30\xb3\x7f\x20\x0b\x90\x79\x6a\x56\xc0\x6f\xf9\x80\x0d\x18\x3a\x42\xe7\xbd\xdb\xb3\xde\xe5\x79\xff\xf2\xe3\x29\x7a\xbf\x40\x29\x19\xe3\x3c\x53\x1d\x34\xa6\x24\x4b\x25\xc2\x82\x40\x93\x24\xd5\x72\x8d\x1e\x0c\x61\x29\x65\x13\xc4\x45\x4a\xc4\xf3\x2d\x63\xe9\x29\x61\xf9\xac\x74\xaf\xc0\xef\xc5\xe8\x4b\x5f\x68\x31\xc6\x3f\x8a\x9e\xfc\xb5\xb2\xc0\x30\x63\xdd\x77\xd0\xda\x8b\x09\x4e\xc9\x94\x66\xa9\x20\xec\x44\x61\xf9\x30\x24\x9f\x49\x92\x9b\x3b\xf9\x9f\xf1\x0f\x43\x2d\xfd\xf2\x94\xc4\xbf\x44\xff\x28\xc4\xad\xb5\x3f\xf5\xfa\xf6\xda\x5f\x82\x76\xde\xee\x3b\xf8\x85\xa6\xb5\x6f\xc3\x2f\x2b\xe6\xe0\xde\x59\x32\x58\xf7\x4a\xe3\xa8\xdc\x0b\x56\xd8\xab\x7d\x47\x10\x25\x16\x43\xac\x14\x99\xcd\xd5\x9a\x96\x07\x8c\x32\x2d\xbb\x2e\x93\x55\x2f\x79\x4a\x7a\xae\xbf\x5f\xad\x08\x6a\x84\x4d\xc3\xb5\xc6\x44\x10\x96\x90\xe6\x16\xee\xb0\x7c\x28\x5a\x58\x2d\xf0\x02\x8d\x21\xbd\xfc\xa8\x20\xb0\x4a\xc7\x85\xd8\xab\x97\xa4\x78\x73\x95\xb0\x1b\xcd\x47\x7e\xe0\x42\x0f\xef\x2d\x08\xbc\xd1\xc0\x5f\x42\xe6\xdd\xf4\x44\x7f\x71\x56\x8e\x0d\xf9\xd3\xc1\x26\xb2\xfd\x4a\xb6\xb5\xa0\x70\x81\xe4\x42\x2a\x32\x5b\x69\x4b\x79\x3b\x0b\x61\x2f\xa0\x7d\x1d\x70\xe9\x0e\xfc\x0d\x9c\xfa\xf8\x46\x3f\x1c\xef\x35\x96\x6c\x57\x96\xd0\x7d\x9f\xa7\xf3\x76\x2d\x9f\xea\xad\xdb\xbe\xc0\xdd\xf3\x26\xa6\x19\xc9\x9a\xbb\x1e\xe4\x33\x99\x33\x1a\xf7\xca\xad\xf6\x10\x06\xb0\x42\x91\x8d\x6d\xe9\xfe\xfc\xe9\x4f\x43\x0b\x90\x31\xf7\xa9\x29\x95\x81\x31\x0c\x25\x5c\x18\x59\x30\xb5\xe7\xdd\xe8\xb2\xdd\xbb\xee\x6d\xef\xee\x14\x75\x51\x8a\x15\xd6\x07\x5c\x90\xb9\x20\x92\x30\x05\x76\x02\xfd\xbd\x5a\xa0\x19\x4f\x49\x66\x34\xda\x0f\x5a\xb2\x46\xe7\x58\xe1\x33\xac\x70\xc6\x27\xc7\xa8\x0b\xff\xd4\x1f\x53\x89\x70\x26\x39\xc2\x8e\xac\x48\xea\x9a\xc0\x2c\x75\xac\x05\xa3\x84\xcf\xe6\x34\xf3\x7e\x04\x6f\xbc\xa1\x2c\xa5\x8f\x34\xcd\x71\x86\xf8\x48\x73\x15\xad\x81\xf7\x1e\x09\x53\x39\xce\xb2\x05\xc2\x59\x86\x6c\xb7\xee\x05\x24\xa7\x3c\xcf\x52\xdd\xae\x1b\xa5\xa4\x33\x9a\x61\xa1\x55\x7c\x33\xda\x2b\xdb\x16\xba\x9b\x12\x3f\x56\x18\x97\x5e\xcd\x19\x7e\x20\x12\x51\x85\xe6\x5c\x4a\x3a\xca\x8a\x33\x7f\xdf\x47\x30\xee\xb3\x8b\x3e\xd8\x0b\x12\x85\xb8\xe1\xa1\xae\x73\x6b\x1f\x72\x3d\xce\x30\x63\x04\x3a\xe6\x6a\x4a\x84\xed\xde\xbe\xfc\xda\xaa\xff\xfd\xe5\xed\x75\xef\xac\xff\xa1\xdf\x3b\xaf\xea\xfe\x77\xdd\xdb\x1f\xab\xbf\xfe\x7c\x75\xf3\xe3\x87\x8b\xab\x9f\xab\x4f\x2e\xba\xf7\x97\x67\x3f\x0c\xaf\x2f\xba\x97\xd5\x87\x96\xac\x5a\x9b\x11\xc2\x91\xad\x79\xb6\x0e\x36\xd3\xe7\xb2\x99\x76\xbe\x5c\xa3\xa9\x75\x4a\xb5\x37\x98\x7a\x1b\x85\xfd\x12\xcd\xb1\x94\x46\x32\x32\x23\x38\x1e\xb0\x4f\x5c\x68\x06\x36\xe6\x9a\x47\x68\xe9\x49\x89\x3c\x51\x94\x4d\xfc\x47\xa7\x68\x90\x7f\xfb\xed\x1f\x93\x0b\xca\x1e\xe0\x2f\xb2\x8f\x8b\x73\xb0\x28\x1f\x2c\xca\xbf\x2d\x8b\xb2\x16\x7d\x4e\x42\x43\xf2\x6e\x83\xab\xb4\x70\x01\x3e\x71\x2d\x4a\xf0\x5c\xe9\x3f\x75\x97\x40\x1e\x4b\x42\xac\xda\x19\x2c\x7d\x84\x55\x43\x1f\x82\xcf\x40\x90\xfb\x4c\x25\x30\xa3\x27\x2e\x1e\xc6\x19\x7f\x6a\x67\xae\xfc\x48\x94\x1f\x86\x16\x9c\xde\x82\x95\xf2\x67\x3b\x43\x3f\xf0\x8f\x44\xe9\xb1\xdf\xd8\x5e\x0e\xc1\x56\x87\x60\xab\xd7\x0d\xb6\xda\x2b\x53\xe1\xf3\xb3\xd6\xd8\xae\x68\xf8\x6b\x83\x1f\xae\xd1\xcd\xd6\xe0\x45\x0b\x9c\x64\x2f\xc2\x93\x63\x57\xd4\x2e\xf9\x72\xec\x6c\x5a\xc1\x93\xa3\x61\xbc\x15\xbe\x1c\x0d\xfa\xe5\x79\xf2\x6f\xc2\x4f\x74\x70\x03\x6d\xb8\x50\x6f\x92\x75\xb7\xbc\x95\x5e\xcc\x89\xf3\xfc\x57\x49\x25\xe6\x63\x9d\x20\x8f\x35\xa2\x3a\x5a\x87\x71\xac\x88\xdb\xa8\x0d\xd4\xa8\x8b\xcc\xa8\x86\x62\xd4\xc6\x5e\x6c\x17\x6c\xb1\xe9\xad\xd7\x3e\x7c\x62\xdd\x5b\xaf\x7d\xe0\xc4\x47\xa2\xa2\x61\xbc\x95\x5b\x2f\x1a\xf4\xcb\xdf\x7a\xbf\xd1\x78\x89\x43\x80\xc4\x33\x2e\xdd\x97\x7e\x57\xee\x6f\x08\xc4\x6f\x20\xe6\xe1\x10\xe4\xb0\xd6\x1a\x7d\x59\x51\x0d\x5f\x6a\x18\xc3\xdb\x8c\x5b\x38\x04\x2a\x1c\x02\x15\x5e\xc3\xa3\xf4\xf6\x02\x15\x9e\x55\xf1\x25\x9a\xac\x24\x58\x51\x43\xe5\xe6\xdd\x9c\xcb\x66\x7d\x2f\x74\x5e\xd7\xe8\x75\xd0\x66\x6c\xcd\x04\xea\xfd\x15\x4d\xb1\x44\x3c\x49\x72\x51\x72\xd1\x96\x4f\xf9\x99\x20\x58\xe9\x23\x12\x1b\x2e\x11\xb4\x8c\x04\x49\xb8\x00\x27\x25\x46\xf3\x29\x96\x04\x29\x81\x99\xa4\xab\xb4\x3c\xd3\x2a\x8c\x4b\xb7\xf3\x16\x14\xbc\xea\x22\xbe\x94\x7a\x37\xe2\x69\xe5\x40\x9a\xb3\x5a\xf7\x64\xf9\x4d\xb2\xb3\xa9\x43\xda\x6f\x9b\x99\x3f\xe3\x51\xd1\xb7\xd6\x8e\x8f\x4a\xa4\xc6\x6f\x7a\x54\x62\x6b\xc7\x4e\x8e\x0a\x8c\xeb\xad\x1c\x95\xea\x22\xfe\x66\x8e\x4a\xdd\xd4\xf7\xe1\xa8\xb8\x70\x80\x1d\x1f\x97\x8a\x0f\x7e\xd3\x23\x53\x0d\x57\xd8\xc9\xb1\xf1\xe3\x7b\x2b\x47\xa7\x7e\x41\x7f\x33\xc7\xa7\x69\xfa\xaf\x7b\x84\xbc\x1f\xa2\xf5\xe1\xb9\x13\x74\x32\x21\xc2\x68\x46\x89\x26\xc5\xd5\x50\x4b\x85\xe5\x7d\xb3\x03\xb3\xfa\x34\xf8\x1e\xde\xc2\x49\xf0\x83\x35\x63\xff\xcd\x1c\x81\xca\xbc\xf7\x84\xf6\x4f\x34\x27\x7e\x04\xb4\xb6\x76\x67\xe0\x86\x00\xe1\xc3\x05\x32\x17\xe4\x91\xf2\x5c\x66\x8b\x23\x91\xb3\x3a\x6e\x0f\x46\x82\x27\x9a\x65\x88\xb3\x6c\x81\xa4\xc2\x42\xb9\xc7\x6c\x62\x3c\x4a\xfa\x30\x65\x58\x2a\xf4\xc0\xf8\x13\x43\x63\x4c\xb3\x5c\x10\x34\xe7\x94\xa9\xe3\x01\xeb\x33\x74\x63\xc6\x08\x9a\x77\x07\xe5\x52\x1f\xc1\x04\x33\xc6\x15\x4a\xa6\x98\x4d\x08\xc2\xcc\x41\xd7\x14\x94\x81\xb8\x40\xf9\x3c\xd5\x07\x4b\x77\x51\xb2\x31\x15\x07\x6c\xc0\xee\xc0\x8a\x21\x11\xf9\xac\x04\x99\x91\x6c\xa1\xfb\xd0\xb4\xaf\x38\xb2\xeb\x63\x86\x6a\x0d\xe2\x44\x08\x2e\x24\xe8\xec\xa3\xc5\x3f\x30\x53\x94\x11\x04\x6a\xa6\x34\xc0\x47\x47\xe8\x82\x4b\x88\xc9\xfe\xf1\xcf\x12\x25\x59\x2e\x15\x11\x1d\x34\xca\x27\x12\x51\x86\xe6\x19\x56\x63\x2e\x66\x7a\x84\x94\x49\x85\x47\x34\xa3\x6a\xd1\x41\x33\x9c\x4c\x4d\x5b\xb0\x06\xb2\x33\x60\x29\x7f\x62\x52\x09\x82\x7d\xef\xee\x21\xfa\x3a\x7c\x66\x08\x40\x7e\xd3\x01\xc3\x3d\x9d\xcd\xb3\x45\x38\xfc\x20\x11\x1a\xf6\x44\x37\x42\x52\x34\x22\x09\xce\xa5\x35\xec\x28\xb1\x40\xe4\xf3\x14\xe7\x12\xf6\x4e\x4f\xcf\x5a\x3d\x12\x3e\x9b\x67\x44\x11\x44\xc7\x48\x09\x4a\x52\x84\x27\x98\xea\xa5\xbb\x25\x4b\x12\xb7\x3d\xd1\xdb\x0d\xb4\x54\xff\x2b\x58\x3e\x66\x5c\x10\x94\x12\x85\x69\x26\x97\x3b\x25\x5f\x94\xe0\xd0\xb3\xd3\x1b\xda\x5f\x72\x43\x7b\x4d\x6d\x4b\x6e\x42\xbb\x63\x87\xab\xf0\x2d\x5d\x85\x31\x57\xd8\x8b\xbb\xd0\x80\x44\xec\x40\x20\x64\xd6\x2a\x9e\xe0\x6c\x4b\xd9\xf0\xc6\x0e\x6a\x6d\xe9\xd0\x7d\x78\x38\x14\x6f\xeb\x50\x98\x5d\xdb\x9f\x53\xd1\x94\x50\xb1\x73\xa4\x98\x75\x30\x5e\x96\x64\x44\x48\x34\xc3\x4a\x5f\x6c\x13\x7b\x45\xb7\x44\x31\x2c\x40\x5d\xde\xd4\x41\x79\x09\x24\x97\x2f\x3b\x62\xe1\x10\xa9\xf0\x1b\x44\xa0\xdd\x9b\x04\xc6\x43\x0e\xf4\x33\xe5\x40\x53\x79\xc8\x81\x3e\xe4\x40\xb7\x5d\xa0\x43\x0e\xf4\x21\x07\xfa\xcd\xe6\x40\x3f\x6b\xfa\xf3\xee\x92\x9c\x77\x93\xc9\xfc\xa6\xa4\xf3\x83\x64\x7e\x90\xcc\x0f\xe9\xca\x7e\x6a\xbb\xe2\x82\xee\xeb\x77\x29\xc9\x88\x22\xcd\x06\x3a\x22\x66\x5a\xe1\x30\x37\x3c\x65\x5a\x14\x9c\x08\x22\xe5\xb6\x3c\xcd\x37\x1c\x96\x57\xa8\xf1\x47\x14\x28\xb3\x9e\x2c\xc1\xae\xb3\x8c\xd9\xf9\xb6\xdf\x26\xcb\xf3\xc3\x3f\x40\x36\x1c\x78\xe0\x81\x07\x6e\x32\xb5\xfd\x31\x47\x07\x87\xf9\x55\xed\xd1\x41\xa5\x9d\x21\x4d\xb7\x29\xb6\xd3\x1e\xb8\x1c\xcf\x48\xda\x83\xb4\x02\x9f\x14\x21\x7e\xd5\x9f\x84\x65\x74\x5c\x02\x41\x7b\x8b\x75\xf8\x75\xb1\xf0\x51\xed\x93\xcd\x0c\xd8\x45\x45\x9b\x7e\xfa\x26\x6c\xd8\xb5\x2b\xfc\x85\x54\xe3\xd9\x0f\x46\xf2\xe2\xc5\x78\xf6\x63\xda\x07\x9b\xea\xa1\x16\xcf\xc1\x6a\xd8\x72\xc2\x07\xab\xe1\xfe\x5a\x0d\x5f\xcb\x15\xf0\xc2\xc7\xf3\xa5\x44\xc7\xf6\xa1\xde\x2e\x22\x9b\xa5\x28\x9f\x67\x1c\xa7\x2d\xcb\xe9\x06\x12\x5d\x8b\x78\x6f\x96\x22\x41\x26\x54\x2a\x22\xf4\xbe\xd4\x0a\x86\xab\x03\xc0\xdf\x6a\xdd\xdc\xd6\x21\x3e\x61\xb7\xef\xfe\xbd\xc5\xf0\x6f\xec\x9d\x0d\x9c\x68\x84\x53\x5f\xd0\x12\xc4\xb7\x19\x5e\xa0\x29\x7e\x24\x2e\x2c\xf1\x11\x67\x34\xc5\xe5\xb5\x2e\xcd\x70\xd9\x80\xfe\x73\xbd\x01\xe1\x78\x38\xbe\x02\x92\x8c\xc3\xc6\x6c\x46\x33\xbc\x33\xd5\x8a\x79\x26\x08\x4e\x17\x68\x44\x08\xf3\x64\x53\x73\x9f\x34\x8c\x79\x27\x82\xf3\xab\x2b\xa6\x55\xea\xd9\x17\xb5\xf4\x05\x03\xa5\xea\xf9\xcd\xf6\x3a\xe8\xf6\x8a\xa7\xfc\xfe\x6d\xb1\xa0\x43\xf0\xd4\xc1\x3c\xf9\xfa\xe6\xc9\x43\xf0\xd4\x41\xd1\xdf\x33\x45\xff\x10\x3c\x75\x08\x9e\x3a\x98\x41\x96\x4f\xfb\x60\x06\xf9\x22\x82\xa7\x5a\xc9\xf0\x1b\x86\x4f\xbd\x71\x69\xfe\x20\xcc\xbb\xf7\x0e\xc2\xfc\x41\x98\xff\x42\x85\xf9\xfd\x58\xe1\x83\x24\x7f\x90\xe4\x0f\x92\xfc\x41\x92\x3f\x48\xf2\x3b\x5f\xc6\x83\x24\x5f\x2f\xc9\xc3\x5f\xae\x3a\xc3\xba\x62\xfd\x9a\xe2\xfc\xda\xf9\x11\xeb\x3b\x03\x3f\x12\xf5\x56\x3d\x81\x07\xa9\xfd\x20\xb5\xef\xb7\xd4\xbe\x37\x13\xfa\xf2\x90\xd5\x0f\xd8\xe4\x07\x6c\xf2\x03\x36\xf9\x33\x63\x93\xbb\xaf\xdf\xcd\xf3\x66\xd9\xe6\x1e\xd0\xcb\xec\xe1\x52\x58\xe5\xd2\x80\x5b\x16\xc1\x26\xad\xc4\x9e\x65\xb2\xce\x7d\x01\x90\x16\xf4\xb0\x5a\xee\x41\x5d\x85\x66\x5c\xeb\x6e\x8c\x44\xef\x38\x06\x67\x02\x6b\x26\xf4\x91\x30\xe4\x92\x03\x3a\xf6\x1a\xeb\x80\x31\xe5\x5f\xfe\xf0\x99\x6c\x2d\xac\x10\x46\x8a\xce\xc8\x31\xea\x8f\x0d\xb7\x48\xf4\xe9\x92\x44\xc9\x52\x34\x96\xa1\x7c\xf8\x88\xa5\xc5\x58\x5d\xdf\xb4\x08\xce\x31\xaf\x75\x1c\xb3\xcd\x33\x65\x58\xaf\x6b\x1c\xa0\xe9\x46\x9e\x43\xc1\x41\x9b\x11\x91\xb9\x2f\xa3\x6e\xdd\xcb\x33\x9c\x6a\xc6\x10\x0c\xa1\x48\x2b\x0b\xdf\x87\x3b\x9d\x4a\x1f\x5e\x14\x7d\x6f\xbe\x06\x7c\x3b\xc0\xa3\x03\x1c\xde\x56\xc3\x98\x42\xf4\x9b\x16\xf1\xd2\x3c\x23\x08\x4b\xc9\x13\x8a\x41\x8d\x31\x32\x00\xa2\xca\x59\x1a\xdc\x4b\xae\xeb\x94\x4a\x3c\xca\x48\x6a\xd7\x98\x14\xd1\x4e\x4b\x47\x4e\x25\x1a\x11\xbd\xc4\x9a\x4d\xc5\xab\x3f\x35\x12\x48\xcd\x68\x82\xa1\x90\xea\x48\x08\x33\x03\x59\x22\x41\x1b\xe2\x7c\xab\x42\xb4\x19\xfd\x21\xe9\xee\x20\x52\x1f\x44\xea\xb5\x26\xf4\x45\x89\xd4\x7b\x14\xa1\xe9\x18\xd2\xab\x46\x68\x82\x0f\x54\x73\xfe\xa1\x37\x6c\xca\xb6\xb6\x9e\x0b\x2a\x95\x44\x49\x2e\x15\x9f\x35\x4b\x3e\x9f\x5c\x0f\x5d\xdf\xc1\x19\x67\x63\x3a\xc9\xcd\xdd\xf2\xab\x95\x4d\xfc\x89\x2e\xd4\x94\xc5\x9c\xb4\x33\x0c\x79\xbb\xf5\xaa\xce\x6a\xf3\x11\x6b\x9c\xbc\x35\xed\xbc\x89\xdb\xae\x7e\xe8\x2f\x75\xe9\xad\xa3\xac\x16\xf6\x71\xab\x69\x6a\xfd\x62\x78\xd3\xbb\xbd\xba\xbf\x39\xeb\x9d\xa2\xee\x7c\x9e\x51\xe3\xb2\x32\x14\x46\xff\xa1\x27\x65\xca\x8c\x78\x12\xb1\x02\x91\x41\xff\x05\x1f\x99\xd6\x07\xd1\x11\x3a\xbb\xb8\xbf\xbd\xeb\xdd\x34\x34\x68\x49\x02\x8a\xb4\x92\xd9\x3c\x03\xf9\xe8\x21\x1f\x11\xc1\x88\x96\xf0\x2d\x46\x70\xe1\x39\x33\x8d\xf6\xfe\xbb\x77\x76\x7f\xd7\xbf\xba\x1c\xfe\xe5\xbe\x77\xdf\x3b\x45\x8e\xb6\x74\xb3\x7a\x5c\x7a\x14\xe9\x82\xe1\x99\xd6\xba\xe3\x7a\x28\x7f\xcf\x49\x0e\xe2\x18\x9d\xb0\x19\x01\xe8\xee\xa8\x45\x37\xe0\x8b\xee\xfb\xde\x45\xdc\xf2\x94\x84\xc0\xc5\x28\xc3\x23\x92\x59\x57\x1e\x78\xa7\xf4\xf9\x09\x20\x9e\x8d\x8f\x2f\x37\xab\xfa\x97\xfb\xee\x45\xff\xee\x97\xe1\xd5\x87\xe1\x6d\xef\xe6\xa7\xfe\x59\x6f\x68\x35\xa9\xb3\xae\xee\x37\xea\xc9\x2a\x5c\xe8\xef\x39\xce\xb4\x46\xce\xc7\x0e\xca\x18\x3d\x4d\x09\x43\x39\x03\x8a\x33\x6a\x3e\x68\x25\x21\x8e\x83\x99\xd1\xf5\xc5\xfd\xc7\xfe\xe5\xf0\xea\xa7\xde\xcd\x4d\xff\xbc\x77\x8a\x6e\x49\x06\x8a\xb0\x5b\x74\xd8\xc5\x79\x96\x4f\x28\x43\x74\x36\xcf\x88\x5e\x0d\x73\x38\x47\x64\x8a\x1f\x29\x17\x91\xb6\x02\xeb\x08\xac\x00\xda\x77\x0a\xe7\x30\x58\xba\xab\xcb\x0f\xfd\x8f\xa7\xa8\x9b\xa6\x7e\x0e\x12\xda\x88\x28\xc7\xc1\x4f\x1c\x55\xe0\x27\x12\x6c\x02\x42\xa0\xa2\xef\x23\x11\x82\xa6\x44\xbe\xba\xc3\x21\x3a\x10\x55\x15\xba\x4c\xe1\xd5\x37\x4a\xe4\xba\xec\x85\x88\xfa\xaa\x2f\xae\xa2\xa2\xea\x17\x25\x32\x68\x36\x1c\x54\xf6\xb1\xb5\x4d\x20\x5e\x9f\x17\xbb\x31\x35\xb3\x4b\x87\xce\x36\x74\xf2\xcf\x88\xe9\xfd\x6b\x87\x11\x52\x26\x29\x66\x29\xc0\x54\x90\x21\xfe\xab\xbd\xda\x5a\x5e\x98\xc1\x97\x75\x1f\x56\x7d\x27\xc1\x07\x6f\xe1\x26\x0c\x87\xbb\x47\xb7\xde\x4d\x28\xdb\x38\x11\x79\x46\x14\x86\x0a\xe2\x8a\xa3\x09\x51\xc7\xe8\x8a\xc1\xb3\x3b\x2c\x1f\x3a\xc8\x55\x87\x41\x5c\xa0\x42\x78\x7c\x81\xa4\xf2\x37\x62\x34\x5c\x5f\xa1\x39\x28\xe6\x07\xc5\xbc\x7e\x65\x0e\x11\x6a\x0d\x2b\xbc\xab\x1b\x75\x2d\x3b\xfb\xee\x2e\xbe\xc0\xac\xee\x82\x4d\x4a\x76\xd1\xe8\x46\x5c\x69\x03\x7d\xbb\x97\xe1\xcb\x5a\x41\x77\x7a\x35\x9a\xe2\x31\x87\x7b\xcf\xfc\xdf\xe1\xde\x3b\xdc\x7b\x87\x7b\x6f\x0f\x56\xf8\xd5\x2d\xca\x35\xdc\xfd\x55\x4d\xca\xab\x14\xe4\x8d\xa1\xe9\x0a\x85\x78\x1d\x70\xba\x5f\xdb\x60\xd0\xd5\x98\x92\xab\x1a\xb2\x44\x72\x8a\x85\xa9\xca\x9a\xf0\xd9\x8c\xb3\xd8\x56\xdd\x41\xde\xb1\x0e\x86\x40\x98\xdd\x2a\x4b\x73\xd1\x0d\x7d\x1b\x36\xe6\x60\x5d\x5e\x22\xa3\x68\xa7\x22\x84\x09\xd5\x3f\xe8\xd7\xcf\x28\x67\x1c\xb0\x03\x77\x8a\x1d\xb8\x1f\x73\x7d\x96\xec\xa3\xdd\xdb\xd7\xdf\x46\xc6\xd1\x01\x24\xf0\x90\x53\x73\xc8\xa9\x81\xdf\x0f\x20\x81\xbb\xa3\xd6\xe7\x95\xe9\x79\x4a\x86\xa5\x32\x2a\xfe\x9f\xc3\xb2\xcb\x2b\x7a\x12\xfa\xbf\xa2\x07\x45\x92\x11\xb4\x4e\xd3\x5d\x96\x5e\xb9\xe4\x29\xd9\xa2\xfc\x8a\x1e\x51\xeb\xd2\x2b\x51\x5f\x7b\x2e\xc2\xbb\x65\x32\xa2\x7c\x34\xf0\x67\x16\xe4\x1b\x28\xe6\x4b\xb4\x46\xd5\xd0\xff\xc1\x34\xb5\x72\xa1\xbe\xd4\x6a\x05\x05\x83\x7b\x43\x8e\x9a\x76\xb7\x80\x0b\xa9\x19\x36\xdc\x05\xf5\xcf\xfd\x8d\x50\xff\xf8\x79\x60\x64\xda\x5f\x08\x25\xf4\x98\xf8\x2a\xd8\x14\x35\x26\xea\xfe\x6d\xd8\x79\xc2\x11\xbf\x84\xa5\x67\x29\x31\x7d\x71\xd7\xc4\xb2\xa3\x71\xb8\x2c\x5a\x2e\xd7\x97\x7a\x65\x1c\xd0\x5e\x96\xd9\x5e\x0e\x70\x2a\x07\xd3\xcf\xfe\x4c\xf8\x60\xfa\x79\xd3\xa6\x1f\xe3\xa8\x1e\xce\xb1\x20\x4c\xd5\xc8\xe8\xe5\xeb\x04\x5e\x0f\xf3\xe6\x9d\xd4\x01\x0d\x18\x69\xd1\x5e\xc8\xfe\xaa\xfa\xb2\x6c\x41\x56\x30\x18\x1a\xb9\x22\xc8\x1b\x3a\xf9\x67\xf1\x77\xa0\x04\x04\x3f\xd6\x38\x7c\x97\x05\x82\x19\x0c\x7b\xa9\xaf\xef\xdc\xc6\x84\xed\x2a\xdb\xc8\x09\x89\x0d\x8e\xda\xe6\xf8\x31\x97\x52\x40\xd2\x42\xe0\x2a\x66\x58\x13\x57\x66\x7b\x3a\x72\x62\x58\x11\x3f\xb1\x32\xcc\xec\xda\x7c\x7a\x0e\x5f\xbe\xad\x4c\xa4\x86\xa1\xbf\x6c\xf8\x59\x95\x1c\xdb\x9d\x6e\x47\x1c\xd4\xe4\xd6\x3c\x4d\x29\x78\x62\x00\x2a\x0e\xee\xf3\x60\xc3\x5d\xfe\x34\x86\xf4\xa2\xa6\xeb\xe9\xa5\x05\xc8\xca\x99\x6b\x37\x71\x4b\xa3\x6f\x77\xde\xaf\x1e\x8c\xb3\x82\xee\x5f\x35\x30\x67\x09\xe3\xde\xae\x5c\xe4\xab\xf1\x65\x6f\xbb\x7f\x39\xce\xfc\x91\xa8\x2f\x8f\x2d\x7f\x24\xea\xa5\x78\xf2\xa6\x8c\x78\x29\x33\x2a\x6a\x04\xbd\xd1\x38\x91\x0a\xff\x7d\xb3\xd3\x5d\x27\x5e\xeb\x67\x33\x49\x1b\xac\xe5\x53\xd1\xc3\xa9\x2a\x6e\x0d\x18\x91\x0e\x78\x48\x19\x3e\xa4\x0c\x1f\x52\x86\x0f\x29\xc3\xfb\x97\x32\xec\xbe\x7e\x97\x92\x8c\x28\xd2\x28\x37\x9d\xc3\xe3\xd7\x92\x9b\x4c\xef\x2f\x28\x35\x99\x0e\xbf\x3c\xc1\xc9\xcc\xeb\x20\x3b\x1d\x64\xa7\x5d\x4c\x77\x5f\xb5\x57\x47\xe5\xfb\xa0\xbd\xb6\x46\x27\x2a\x82\xc4\x56\xc6\x06\xd8\x69\xff\xba\x32\x28\x20\x40\x7a\x74\xc3\x59\xe5\xf8\xbf\x76\xc3\x7e\x3b\x4c\x4e\x3e\x37\x1f\xdb\xc6\xbd\xe9\xd6\xfd\x8b\xf5\x6e\x1e\x6a\x59\xd4\xae\xd5\xc1\xf9\xba\x64\x71\x0e\xce\xd7\x83\xf3\x75\xef\x9c\xaf\x3b\x57\xa9\x96\x56\xa4\xbf\xb1\x57\xf3\xd2\xa8\x70\x77\xd1\x1b\x5d\x46\x93\x82\xc1\xdf\x4e\xc9\x3c\xe3\x0b\xb0\xb1\x2c\xb5\x36\xfb\x5a\xf4\x35\xc1\x51\xe5\xcb\xdf\xbd\x7d\x5d\x11\xda\xf7\xfd\xfe\x77\x23\x7f\x29\xb5\x66\x5f\xc4\xde\x62\xde\x7b\x21\xe8\x9e\xfc\xb3\x94\x12\xd1\x0a\x33\x25\x48\x62\x58\x7d\x0c\x06\xac\xfe\x49\x00\x99\x6f\x6f\xcd\x51\xae\x82\x78\x43\xa9\x0f\xc0\x9c\x08\xb5\x08\xde\x24\xb3\xb9\x5a\xfc\xd7\x80\xd1\x02\x59\x9b\x4e\x18\x17\x86\x07\xea\x8f\xa7\x98\xa5\x99\x3e\x3f\xd2\xb7\x93\x60\xc6\xb8\x02\xe1\x04\x66\x90\xa2\x47\x8a\x8d\x28\xd3\xbd\xee\xb7\xf0\xc9\xb7\x3a\x8b\x91\x3b\xfd\x0d\x9d\xc4\x97\xc6\xac\x5e\x71\x8b\x7e\xcc\xf8\x08\xaa\x2c\xe4\xb1\x89\x41\x37\x70\x70\x00\x47\x3b\xf7\x5a\xcc\x43\x61\xf9\x50\x4e\xd4\x8a\xc3\xf6\x87\x4b\x53\xb7\x56\xbc\x1b\x81\x19\x2e\x7f\xb5\x94\xde\x15\x3f\xb3\x09\x5f\xf0\x18\x86\x5c\x1e\x87\xfb\x31\xec\xd0\xfd\x56\xb4\xec\x7e\x71\x55\xaa\xe0\x47\x41\x94\x58\x0c\xb1\x52\x9a\x21\xed\x32\xa7\xec\x0e\xcb\x87\x2d\x72\xca\x62\xef\xce\x8a\x9c\xb2\xa8\xaf\x3d\xe7\x58\x51\x4e\x59\x3c\xf0\x67\xe7\x58\x2d\x89\xfb\x8b\x4b\x1f\x68\x7b\x54\x0f\xa9\x04\x1b\x2c\xdd\x97\x9a\x56\xb0\x8c\x17\xef\xcd\x08\x4b\xd7\xc1\x97\x78\x72\xe3\xcb\xed\x70\x44\x97\xad\xd1\x17\x57\x4e\xa3\x24\xb3\xac\x98\xdb\x1b\x29\xab\x51\x16\xbb\x76\x3d\xaa\xe7\xb1\xbf\x07\xbb\x71\xa8\xb3\x77\xa8\xb3\x77\xa8\xb3\xf7\xec\x75\xf6\xda\xe9\xac\xad\x15\xd6\xb6\xda\x6a\x3b\x55\xb5\x59\x4f\x7d\x06\x9f\x73\x7b\x65\xb2\x94\x8f\x1e\xab\x91\x9b\xe6\xa3\x47\xdd\xbf\x09\xe7\x74\x34\xe2\x97\xc8\x47\xff\x8d\x6a\x96\x07\xb5\xf2\x59\xd6\xed\x4b\xd5\x29\xf7\x5c\xa1\x3c\x64\xd2\x1f\x50\x0c\x0f\xa1\x26\x3b\x5c\x9c\x43\xa8\xc9\x21\xd4\xe4\x8b\x0d\x35\x69\x56\x4f\x68\xba\x75\x96\xe4\x9a\xb8\xe5\xde\xca\x20\x7e\x05\x51\x4a\x8b\xfd\x2d\x90\xcc\xeb\xb4\x85\x42\x96\x8e\x90\x87\x37\xd7\x1c\xfa\xe9\x9b\x50\x19\x6a\x57\xf3\x25\x54\x87\x03\x08\xf6\x4e\x41\xb0\xf7\x6e\xda\x07\xa9\xf2\x20\x55\x1e\x04\xa7\x96\x13\x3e\x08\x4e\xfb\x2b\x38\xbd\x96\x36\xf4\x25\xe1\x21\x69\x11\x2b\xca\x4a\x5a\x1a\xa7\x6c\x30\x8d\xc0\x99\x91\xcf\x33\x8e\xd3\x55\x11\x47\xbf\x06\xe2\xdb\x12\xb9\x2f\x68\x57\x14\x71\xca\x25\xf1\x6f\x99\x6c\x67\x1a\xd0\x3d\xbe\x05\xd1\x4e\x8f\xd3\x8c\xb8\x45\x74\x64\xd8\xe1\xbb\x7f\x6f\x31\xf0\x1b\x7b\x27\x03\xa7\x19\xe1\xd4\x81\x06\x18\xf1\x6c\x86\x17\x68\x8a\x1f\x09\x1a\x63\x9a\x19\xfb\x1c\x4d\x71\x79\x7d\x4b\x73\x5b\x36\xa0\xff\x5c\x6f\x40\x38\x1e\x4e\x91\xd1\xa8\xef\x0b\x23\x55\x25\x38\x73\xee\x3e\x78\x67\x8a\x25\xc2\x99\x20\x38\x5d\xa0\x11\x21\x2c\xc8\x64\x6b\x3b\xe6\x9d\x08\xc6\xaf\x1e\x9e\x19\xd2\xcd\xab\x46\x79\x03\xd7\x68\xac\x16\xbd\x73\xc5\xb2\xcc\x49\xb6\xd0\x21\xb7\x51\x1c\xe5\xf7\x6f\x85\xb9\xbc\x84\x9a\xf8\x05\x7b\x91\x0e\x9e\xa2\xdf\x66\x4d\xc6\xbd\xd1\x3e\x0e\x2a\xfa\x21\xc9\xf8\xe0\xf9\x39\x18\x30\x0e\x06\x8c\x9d\x2f\xe3\x3e\x19\x30\x5e\x51\x46\x37\xb9\x4d\xcf\x52\xac\x64\x5f\xa4\xf5\x83\xb0\x7e\x10\xd6\x0f\xc2\xfa\x17\x2b\xac\xef\xc7\x0a\x1f\x24\xf5\x83\xa4\x7e\x90\xd4\x0f\x92\xfa\x41\x52\xdf\xf9\x32\x1e\x24\xf5\x92\xa4\x0e\x7f\x39\xb4\x80\x75\xc5\xf6\xd6\xe2\xfa\x66\xd0\x00\xed\xdc\x74\x16\x1b\xe0\xad\x48\xe6\x07\xa9\xfc\x20\x95\xef\xb7\x54\xbe\x37\x13\xfa\xf2\x12\x82\x0f\x29\xb5\x87\x94\xda\x43\x4a\xed\x6b\xa4\xd4\x3a\x5e\xb2\x4c\xc2\x59\x56\x4b\xe7\x27\xcb\x5c\xbe\xa6\x2c\xc9\x72\x10\x55\xf5\xcf\xef\x73\x9a\xa5\x08\x54\x24\xad\xe9\x52\xce\xbe\x01\x7a\x02\x52\x80\x71\xba\xea\x0f\xcb\x25\x98\x9f\x2a\xac\x6e\x6f\x85\x98\x62\xb4\x9b\xc2\xb0\xed\x6a\x4f\x7d\x09\xdc\x0d\x2a\xee\x45\xbf\xb9\x86\xf6\xa8\x0e\x5f\xc7\x89\x25\x9a\x23\xb9\xf1\x3d\x73\x45\xbe\xda\x3e\xd7\xaa\xcf\xf7\xb3\xfd\xe8\x6d\x95\x32\xa8\x8e\xfa\x50\x95\x0f\x05\xbb\x76\xa8\xca\xf7\x8c\xf3\x76\xe7\x6c\xc5\xcc\x1d\x8d\x1a\x5b\xf8\x1b\x9d\xf6\xab\x07\x3b\x36\x9f\xf4\x57\x0d\x7d\xac\xbd\xc8\x2a\xb9\x75\x27\xff\xac\xbd\xa7\x5e\xa1\x18\xe1\xda\x97\xd3\x4e\xca\x12\x6e\x73\x3d\x7d\x24\xea\x4b\xb9\x9b\x0e\xa5\x09\x0f\xe5\x75\x76\x34\xdd\x8d\xee\x9e\x37\x3b\xdb\x43\x21\xc6\x43\x21\xc6\x43\x21\xc6\xe8\x08\x1e\x0a\x31\x1e\x0a\x31\x22\xf4\x22\x85\x18\xd7\x96\x19\x77\x50\x92\x71\x1b\x89\xd1\x74\xff\xa5\x08\x8d\x87\xb2\x8c\x07\xb9\x71\x77\xd3\xfd\x6d\xc9\x8d\x7b\x68\xb5\xd8\x8b\xfa\x93\xde\x6a\xf1\xea\x50\x40\x9e\xb5\xb7\x86\x03\x0a\x63\x4d\xfc\xd7\x3b\x45\x05\x72\x9b\x76\x40\x06\xb2\xff\x77\x40\x06\x3a\x20\x03\x35\xcc\xfa\x10\xcc\x7c\x40\x06\x42\x87\x70\xdd\x43\xb8\xee\x3e\x87\xeb\xb6\xd8\xc6\x03\x32\x50\x4b\x91\xf1\x99\xd0\x81\x9c\xcc\xb5\x15\x42\x50\x8d\x38\xb8\x1a\x25\xe8\xe7\xaa\x46\xb4\xb7\xa2\x9e\x1b\xeb\x01\x2d\xe8\x80\x16\xb4\x2d\xed\xec\x85\x02\xfa\x82\xa8\x41\x75\x1c\x66\x9d\x5c\xe4\x1a\xe6\xb2\xad\x82\xf9\x36\x10\x84\xdc\x68\x0f\x89\xc9\x87\x14\x88\xfd\x4f\x81\xd8\xbb\xc4\xe4\xbd\xd1\x54\x0e\xea\xfc\x21\x37\xf9\x90\x9b\x7c\x30\x76\x1c\x8c\x1d\x3b\x5f\xc6\x7d\x32\x76\xbc\xb2\xdc\xfe\x8c\x48\x42\xfb\x28\xc1\x1f\x04\x78\xf3\xde\x41\x80\x3f\x08\xf0\x5f\xa8\x00\xbf\x1f\x2b\x7c\x90\xde\x0f\xd2\xfb\x41\x7a\x3f\x48\xef\x07\xe9\x7d\xe7\xcb\x78\x90\xde\x5f\x0c\x5d\xa8\x4e\x84\x5f\x1b\x61\x68\x4d\x37\x5f\x90\x40\xf6\x96\xa4\xf5\x83\xa4\x7e\x90\xd4\xf7\x5b\x52\xdf\x9b\x09\x1d\xd0\x86\x0e\x68\x43\x07\xb4\xa1\x03\xda\xd0\x46\x32\xd2\xbf\xd9\x63\xf9\x2e\xb8\x89\xfd\x95\xfd\xee\x7d\xc6\x47\x77\x8b\x39\xd1\xff\x7b\x4e\x67\x84\x49\x90\x68\xa9\x5a\x84\x32\x51\xc3\xca\x57\xd7\xfc\xdd\x6d\xff\xf2\xe3\x45\x98\x86\xf6\xee\xd3\xfd\xc5\x5d\xff\xba\x7b\xe3\xd7\xc5\xcf\x2a\x5c\x0b\xfb\x5d\x24\xd6\x59\x92\xbf\x21\x5a\x7f\x85\x53\x73\xab\xb0\xca\xe5\x66\x23\xbb\xe9\xdd\xf6\x6e\x7e\x82\x34\xba\xe1\x79\xff\xb6\xfb\xfe\x22\x22\x88\xe8\x79\xf7\xec\x2f\xf7\xfd\x9b\xe6\xe7\xbd\xff\xee\xdf\xde\xdd\x36\x3d\xbd\xe9\x5d\xf4\xba\xb7\xcd\x5f\x7f\xe8\xf6\x2f\xee\x6f\x7a\x4b\xd7\x63\xe9\x68\x97\x2b\x32\x12\x16\x09\xb2\x58\x50\x62\xb9\x86\x28\xd6\x10\x79\xf1\xd1\xb1\xc3\xba\xbe\x4e\xd1\xbd\xb5\x0b\x50\xdb\xb8\x0b\x49\xf2\x0d\x19\x85\x26\xa5\x12\x8f\x32\x92\x56\x5a\x72\x6b\xd8\xd4\x12\x8e\x06\xf5\xa4\x35\x70\x2f\x72\x6a\x9e\x97\x18\x5e\x80\x20\xe9\x56\x11\x96\xd6\xf4\x61\xf6\xa1\xb1\x07\xa6\x79\x17\x7d\x24\x51\x4f\x49\x2e\x04\x61\x2a\x5b\x18\x81\x5b\x56\x1a\x75\xdb\xd7\xd4\xac\xbd\x53\x7d\x83\x53\x2c\x4d\xe4\x55\x34\x7e\x41\x32\x82\x65\xcd\x98\xed\xee\xb7\x5b\x16\xbf\x57\xd6\xa2\x63\x2e\xa3\x31\xa6\x59\x2e\x48\xe9\xb4\xf0\xd9\x1c\x0b\x2a\x39\xeb\x7d\xd6\x77\x99\x3e\xc8\x57\xf0\x39\x17\x9b\x9d\x98\xde\x5f\x42\x0a\xbe\x8c\xff\xf9\xf1\x2e\xfe\x57\x74\xe6\x2f\xee\xe2\x7f\x2d\xa7\xf5\xa0\xe1\x32\x65\x1f\xa1\x8f\x77\xa7\xe8\x23\x84\x74\x09\x74\x37\xc5\x86\x62\x2f\xee\x4e\xd1\x05\x91\x12\x7e\x29\x3e\x56\x54\x65\x30\xb7\xf7\x94\x61\xb1\x40\x6e\xfa\x26\x73\x1b\x83\xaf\xc4\x2d\x4d\x79\xf1\xd8\xdf\x72\x06\xea\x7f\xb1\x7a\x17\x7c\x42\x13\x9c\x6d\xb7\x88\xdd\xcb\x88\x0f\x5c\xdd\x2c\x5d\x8a\xf0\xed\xea\x5a\x74\x2f\xcf\x21\x8f\xdc\x0d\xb5\x66\xe6\x97\x44\x6a\x22\x49\x38\x4b\xad\xff\x48\xdf\xfe\x8b\x40\xa8\xff\x1b\x87\xcc\xf2\x5c\x6a\x55\xb3\x7b\x79\x8e\x4e\xd0\xd5\xcd\x80\x5d\x89\xd4\x18\x53\x89\x96\x86\x0d\xcd\x51\x89\x18\x57\x88\xce\xe6\x5c\x28\xcc\x94\x56\x04\x40\x0c\xb0\x2b\x62\x38\xc0\x19\x9f\xcd\x72\x85\xf5\x41\xab\x2c\x2a\x33\x26\x95\x5b\xa2\xfa\x29\xb8\x67\x6a\xd6\xd0\xc8\x09\xc5\x5c\xe6\x42\xb7\xaf\x65\x94\x58\x0f\xa7\x69\x45\x95\x75\x4d\x60\x21\x70\x2c\x4d\xbc\xa3\x8a\xcc\xca\xef\xb7\x0c\x2f\xfe\x57\xad\x91\xe1\xcc\xa4\xf3\x10\xd1\x15\xc9\x94\x2a\x92\x28\x7d\x04\x37\xa2\x89\xfb\xcb\x1f\x2f\xaf\x7e\x0e\x25\x88\x77\xdd\x4f\xe7\x7f\xfa\xf7\xe8\x87\x9b\x4f\x95\x1f\x86\x3f\xfd\xa9\xf2\xcb\xff\x6f\x29\x3d\x95\x7b\xaa\xe8\xf9\xc1\x5c\x8e\x40\xa4\x06\xbb\xb2\x9b\x2a\xa2\x33\x3c\x21\x48\xe6\x73\x4d\x01\xf2\x38\xde\x5f\x2d\x52\x5e\x70\x9c\x52\x36\x31\xe9\xd5\x17\x54\x11\x81\xb3\x4f\x78\xfe\xc1\xd9\xc0\x37\x58\x9d\xff\x7b\x1b\x25\xba\xbf\xfb\xa5\xfb\x29\x4c\x95\x7f\x77\x7d\x73\x75\x77\xb5\x74\xd6\x51\x0b\xd5\x63\xa4\x1f\x9f\xc2\x7f\xd1\x09\xd2\xad\x7b\xc9\x77\x46\x14\xd6\x1a\x01\xfa\xda\xa4\x84\xfa\x14\x2e\xca\x32\x38\x35\x73\x41\x67\x14\xae\x14\x63\x05\xfc\xc6\x08\xd7\x5e\x7b\xf0\xe7\xc6\x7c\x60\x92\xbe\xed\xa5\xcc\x52\x2c\x52\xf4\x37\x59\xc6\x43\x00\xe3\xb3\xf9\x81\xa4\xe8\x08\x4d\x95\x9a\xcb\xd3\x93\x93\xa7\xa7\xa7\x63\xfd\xf6\x31\x17\x93\x13\xfd\xc7\x11\x61\xc7\x53\x35\xcb\x0c\xfe\x83\x5e\x85\x53\x74\x2d\xb8\xbe\x42\x40\x41\x27\x82\xe2\x0c\x52\xd1\x47\x86\xff\xf1\x31\xfa\x35\xe1\x82\x1c\x17\x1b\x63\x0d\x53\xf6\x1e\xb1\xc6\xab\x13\xfd\x52\x0d\x33\x29\xef\x27\x4a\x49\x42\x53\x2b\x66\x10\x96\x70\xb0\x5e\x1a\x7f\x87\x6e\xcf\xe5\xd1\x12\xeb\x6c\xf6\xcb\x19\x28\x2b\x38\x25\x08\x3f\x62\x9a\x19\x94\x11\x1e\x13\x9c\x56\x7c\xfa\x46\x6d\xcd\xb5\x8a\x0e\xd1\xcd\x70\xab\xba\x57\xe7\x7a\xc2\x09\xcf\xd0\x28\x1f\x8f\x89\x08\x7d\xdd\x1d\xad\xcd\x50\x89\x04\x49\xf8\x6c\x06\x12\x83\xfe\x2a\x97\x86\xaa\x61\xc5\xec\x68\x8f\x07\x0c\xf6\x5f\xab\x39\x40\x01\x29\x07\x56\xc7\x08\x49\x11\x66\x0b\xd3\xcd\x28\x1f\x47\xbe\x74\xc0\x55\xc1\x29\xa2\x6a\xc0\xba\x59\x86\x04\x99\x71\x45\xc2\x30\x6d\x70\xbc\x45\x0b\x0e\x2c\x52\x90\x79\x86\x13\x07\x02\x90\xf1\x04\x67\x68\x4c\x33\x22\x17\x52\x91\x59\xd8\xc0\xd7\x60\xab\xd1\x6b\x46\x25\x4a\xf9\x13\xcb\x38\xb6\xf3\x28\x7f\xf6\x4d\x7c\x1a\x7b\x0e\x6d\xa3\x27\x04\x17\xf0\x9f\x1f\x29\x4b\x77\xc6\xa1\xee\x6f\x7b\x37\xe1\xbf\x6f\x7f\xb9\xbd\xeb\x7d\x5a\x8f\xfb\x78\xca\x82\xe1\x81\x0e\x7f\x8a\x6e\xcd\x22\x70\xa1\x25\x22\xd1\x30\xa9\x4f\x96\x94\x8a\x1f\x78\xba\x21\xf7\xfd\xd4\xbd\xbc\xef\x46\x1c\xe5\xf6\xec\x87\xde\xf9\x7d\x49\x1f\xb0\xf3\x8b\x64\x78\xa3\xfe\x85\xbf\x9d\xfd\xd0\xbf\x38\x1f\xd6\x28\x8c\xef\x6e\x7a\x67\x57\x3f\xf5\x6e\x0a\xdd\xae\x76\x89\x4a\x83\x29\x33\xab\x3b\xc3\x94\xa6\x3c\x45\xa3\x45\x98\xa7\x5e\x60\xab\x68\xc9\x39\x03\x7f\x6e\x81\xf1\x63\x5a\x3d\x05\xde\xe4\xc0\x66\x8a\x2f\x66\x3c\x25\x1d\xfb\x0e\x40\xc3\x18\xe3\x8a\x91\x98\xeb\x1b\xd6\xbd\x63\x16\x18\x2a\x0c\x48\x8c\x5f\xb8\x53\xd4\x45\x52\xbf\x98\xeb\x43\x2d\xe8\x64\x02\x86\xc3\xd2\x50\x4d\x6b\xf6\x53\x58\x5e\xf8\xce\xec\xff\x5c\x70\x38\xe7\xba\x5b\x6b\x71\xf6\x56\x09\xf3\xa1\x41\xb6\x8d\x5a\x14\x18\x0c\x0e\x35\x43\x73\x9b\xa5\x17\xa1\x71\xbd\xcc\x79\x2c\x12\x2b\x80\x6d\x49\x63\xef\x9c\x0b\xf2\x48\x79\x1e\x7c\x6a\x11\x8f\xa2\x1d\xaf\x6d\xbe\x58\x00\x58\x36\x63\x14\x29\x35\xe3\xc9\xa3\xb6\x05\xcd\xc2\x1e\xa1\x85\xb1\xe0\xb3\x9a\x36\xe2\x63\xd2\xbf\xba\x55\x02\x2b\x32\x59\x9c\x5b\x96\xb1\xf9\xf1\x38\xbf\xfa\xf9\xf2\xe2\xaa\x7b\x3e\xec\x75\x3f\xc6\x27\xde\x3f\xb9\xbd\xbb\xe9\x75\x3f\xc5\x8f\x86\x97\x57\x77\x43\xf7\xc6\x52\x92\x6f\xe8\xa0\x7a\x4f\xc7\x2f\x9e\x22\xcd\x72\x81\x35\x3a\x08\xc9\x80\x3f\x8e\xc8\x98\x0b\xc3\xe7\x67\x2e\xfc\xc1\x8a\x30\x6e\x6d\xad\x2e\x56\x9a\xc5\x29\x58\xc6\xea\x9a\x34\x56\x6f\x25\x08\x9e\xc1\x3d\x81\x19\xea\xb1\xf4\xe8\x6a\x7c\x74\x6b\x7e\x9c\x61\xf1\x40\x84\xff\xf4\x49\x50\xa5\x08\x8b\x54\x3a\xec\x86\xec\x95\xc4\xa2\x83\x63\x74\xa3\xf9\xbe\x7e\xdf\x5f\x6a\x9a\xd8\x53\xa2\x30\xcd\xa4\x1d\x6c\xb4\xae\xa7\xe8\x02\x8b\x49\x61\x87\xfb\x9a\x8f\xc7\xa6\xb1\x6f\xcc\x30\xf4\x1d\x16\xcd\xa2\x86\xf7\x6a\xd2\x70\xf7\x22\xf4\x67\x5f\xf6\xf2\x70\x95\xaa\xee\xe7\xdb\xd1\xd4\xfd\x35\xac\xb8\xd1\xd8\x23\xdd\xd0\x3e\xa9\xa1\x35\x98\xb8\x79\xbc\xfc\x92\xa9\x6f\xbb\x4a\x4e\xf1\x8b\x35\xe4\x64\xb2\xf8\xf4\xce\x8f\xb5\xb6\x59\x43\x4b\xe4\x33\xb5\x06\x83\x70\xdc\x25\x12\x2a\x9a\x01\xf3\x2a\x9e\xcf\x09\x16\xb2\x6e\xb7\x63\x31\xb0\x61\xef\x4d\x4f\x61\x1f\x76\x93\x5d\x3f\x1d\xc4\x19\x18\x1c\xbc\x10\x51\xa2\xc8\x16\x34\x60\xda\xaa\x50\xc0\x35\xc0\x87\x5d\x59\xa8\xae\x4f\x54\x6a\xa5\xd1\xfc\xf8\xde\x62\x88\x6d\x46\x10\x1f\xba\xfd\x8b\x92\x70\x31\x3c\xef\x7d\xe8\xde\x5f\x2c\x37\x13\x46\xdf\x95\xb7\x18\x1d\x21\xfd\x3c\xf6\xbd\xd3\xb1\xb9\x33\x1c\x12\x9a\x51\x69\x09\x03\xa3\x95\x4d\xba\x33\xf6\xea\x94\xcc\x33\xbe\x98\x11\x06\x26\x9e\xe8\x26\xd4\xeb\x39\xc6\xd4\x5e\x2d\xc1\x60\xc1\x8a\x63\xcd\x6e\x70\x8d\x1d\x39\xf8\x35\x92\xfa\x9b\x37\x46\x5f\x2b\xb1\xee\x6b\xe3\x3d\xb3\xff\x73\xab\xb0\xda\xf0\x8c\x75\xcf\xee\xfa\x3f\xf5\x62\xfd\xf0\xec\x87\xfe\x4f\x75\x52\xcd\xf0\x63\xef\xb2\x77\xd3\xbd\x5b\x21\x9c\x94\x9a\xac\x13\x4e\xa4\x1e\x70\xd9\x7b\x4a\xa5\x8f\x2a\xd2\x67\x47\xf0\x0c\x51\x25\xd1\x23\x95\x74\x44\x01\xf1\xce\x7a\x22\xef\xfb\xc0\x59\x21\xcd\x92\xaa\x85\x13\x5f\x4c\xbf\xf1\x3e\x6a\x4e\x6a\xdb\x37\x66\x87\xd0\x3f\x09\x56\x3e\xb3\x39\x6e\xd2\xa7\x08\x74\xdb\x47\x50\xda\x82\xcf\x98\x16\xa4\xd9\x84\x08\x33\x1c\xf0\xbe\x84\x63\x09\x9e\xeb\x51\x85\xc2\x4a\xb1\x6a\x5e\x68\x9d\x10\x46\x04\xc0\x7b\xf9\x4e\x8c\x20\x25\x08\xfb\x4a\xcb\x5c\xf3\x8c\x26\x54\x65\x0b\x94\x80\x0d\x0b\xcc\x99\x33\xcc\xf0\xc4\x0a\x07\xa0\xe6\x94\x48\xe2\x2f\x06\x16\xf0\x6a\x6c\x4d\xfb\x77\x94\x6c\x78\xcc\xee\x2f\xcf\x7b\x1f\xfa\x97\x31\x09\xfc\xd0\xff\x18\x89\xb0\x9f\x7a\xe7\xfd\xfb\xe8\x36\xd7\x92\xec\x72\xb9\xbe\xdc\x6c\xcd\x51\xf4\x2f\x9d\xa2\x73\xf3\xe9\xa9\x5e\xdc\x1a\xcc\x43\xaf\xfc\x96\xd6\xe1\xc6\x85\xf5\xb9\x3f\x7a\x4c\x89\x5a\xbf\x44\x5b\x13\x92\xf5\x41\x46\x36\xa4\xfa\x50\x85\x4a\xdf\x97\x65\xa7\x72\x35\x94\xc3\x3a\x22\x75\x27\xc7\x85\x65\x29\x8c\x61\x00\xa3\x41\x93\x11\xab\xc6\xad\x55\x30\xec\x9f\xc0\x45\x3d\xcb\xa5\x32\xae\x44\x20\x4e\xf4\xf0\x67\xa9\x17\x14\x5c\x8d\xc7\xe8\x96\x90\x01\x73\xd6\x83\x09\x55\xd3\x7c\x74\x9c\xf0\xd9\x49\x01\xb8\x79\x82\xe7\x74\x86\xb5\x24\x4d\xc4\xe2\x64\x94\xf1\xd1\xc9\x0c\x4b\x45\xc4\xc9\xfc\x61\x02\x51\x34\xce\x9d\x7a\xe2\x9b\x9d\xf0\xdf\x5d\xfc\xf1\xdb\xa3\x8b\x3f\x7f\xfb\xae\x6a\x21\x6b\xda\xff\x1e\x4b\xf0\x5c\xe6\x99\x8d\xba\x13\xe1\xda\xb8\x23\x9f\x93\x55\xfb\x7d\x19\x6f\xd7\x76\xfa\xeb\xd9\xf5\x7d\x64\xb1\x8e\xff\xf9\xa9\xf7\xe9\xea\xe6\x97\x88\x53\xde\x5d\xdd\x74\x3f\x46\x0c\xb5\x77\xfd\x43\xef\x53\xef\xa6\x7b\x31\x74\x0f\xb7\xb1\xbd\xfd\xc8\xf8\x13\x8b\x97\x46\x3a\x0e\x58\xe9\xe9\x14\x7d\xe0\x02\xfd\xe8\x77\xf2\x68\x84\x25\x5c\x31\xee\xce\x92\x1d\x34\xe7\x29\x30\x5e\x44\xe6\x53\x32\x23\x02\x67\xd6\x66\x20\x15\x17\x78\x62\x6e\x7a\x99\x08\xac\x92\x29\x92\x73\x9c\x90\x0e\x4a\x80\x1a\x26\x1d\xd8\x14\x50\xb5\xf8\xa4\x6c\xe7\xbb\xc9\x99\xa2\x33\xe2\x54\x70\xfb\xcf\x3b\xb3\x19\x1b\x6c\xce\xd5\xdd\x0f\xb1\xb0\xf7\xe1\xe2\x97\xbb\xde\xf0\xf6\xfc\xc7\xa5\xeb\x69\x3e\x8b\x46\x76\x0b\x01\x48\x67\x3c\xcb\x67\x2c\xfc\x7b\xf3\xb1\xf5\x2f\xef\x7a\x1f\xcb\xa3\xbb\xea\xde\xc5\x94\x71\x13\x07\xc9\xbd\x7b\x7f\x75\x75\xd1\x8b\x5c\xc2\xef\xce\xbb\x77\xbd\xbb\xfe\xa7\x88\x7e\xce\xef\x6f\x0c\x8c\xe7\xb2\x69\xba\x11\xd4\x4c\x54\x4f\x2b\x9c\xe6\xae\x59\x61\x2b\x4e\xd4\xb5\x41\xe9\xe6\x2c\x1f\x05\x40\x4f\x26\x1c\x0c\xac\x3a\x47\xde\xa4\x9a\x98\x91\xd6\xb2\x43\x15\x6f\x13\x6a\x66\xc7\x4b\x37\x7a\x19\x57\xbe\xf3\x43\x30\xd8\xb6\x46\xd9\xc6\x59\xc6\x9f\x4c\x38\xf0\x8c\xea\x5b\xd9\xc2\xfe\xe9\x57\x64\xe1\x21\x3c\xae\xe1\x78\xf1\xb6\x90\x44\x10\xf5\x89\xe7\x4c\x6d\x4e\x72\xdd\xcb\x88\xef\xf4\x2e\x7f\x1a\xfe\xd4\x8d\x29\xb0\x7f\xb1\x9c\xd5\x84\x4d\xd4\x5c\xc5\xdd\xcb\x5f\xfc\x25\x0c\x41\xe3\x1d\xaf\xa1\x1a\xd9\x35\xc9\xa8\x16\x7b\x13\xac\xb5\xd7\x0c\x24\x1a\x44\x28\x98\x1c\x66\x7a\x72\x10\xa4\x3a\x37\xfe\x24\xc3\x9f\xcc\x20\x4f\xdd\x1f\xa5\xf6\x24\xac\x0b\x58\x53\x5d\x4c\x3e\xb4\x63\xb5\x6a\x86\x08\x7b\xa4\x82\x03\x40\x33\x7a\xc4\x82\x6a\x69\xdc\xb4\xac\xe7\x7a\x0a\xff\x5d\xaf\x4d\x30\x8c\x96\x18\xd7\x2d\x17\xea\xdc\x07\x03\x6f\x66\x0d\xa9\x0b\x8a\xad\x86\xc3\xd6\x1b\x3a\xaa\xdf\xd6\x6c\xce\x96\x41\xc3\xf1\x84\xff\x9e\x9d\x53\x9c\x69\x06\xb0\x3b\x79\xb1\x7b\x79\xdb\x8f\xe5\xc7\x58\xcd\x08\xf8\xf2\xc6\xf2\x22\x18\x2a\xcd\xc8\x9d\x32\x71\xfb\x97\x0b\xa3\x5d\x00\x8a\xb7\x39\xb7\x81\x62\x61\xa1\x59\x8c\x34\x31\xc7\x42\x96\xbe\x90\x08\x20\xf8\x8a\x80\x2b\x7d\x67\x41\x38\xd3\x23\xa7\xe9\x80\x91\xcf\x73\xc2\x24\x04\x07\x98\xfb\xac\xf0\xb5\xcb\x63\xd4\x1f\x03\x4b\xd0\xaf\x33\x94\x33\xeb\x00\xd3\x17\xae\x19\x64\x47\x8b\xb2\x05\x3a\x4c\x60\x3e\x62\xc4\x05\x4b\x15\x83\x1f\xb0\x9f\xbd\x13\x0d\x1e\x8d\xb9\x66\x40\x7a\x17\x6d\x7b\xa7\x08\x33\x49\x3b\x48\x2b\x2c\xe5\x3d\x85\xf4\x03\xad\x50\xda\x10\x2e\xcd\x69\xec\x9f\x2f\x7f\x0d\x54\xe2\x84\xc3\xcb\xa0\xfe\x2e\x28\x5d\x05\x0d\xa2\x71\x66\x3c\x26\xc3\xf6\x77\x42\xc2\x05\xb1\x7e\x96\xb5\xaf\x81\x55\x8c\xfd\x0e\xcb\x87\x8a\xef\xa1\xcf\xa4\xc2\x2c\x21\x67\x19\x96\x1b\x06\x21\x39\x1b\x47\x27\x96\x38\x6e\x6e\xee\xaf\xef\xfa\xef\x57\x70\xf9\xf2\xc7\xd5\x30\xa0\x24\xcb\x9d\x7b\x6e\x24\x38\x4e\x91\x66\x9f\x13\x6e\x5c\x81\x56\xf0\x2f\xb0\xec\x4d\x6e\x90\x0f\xa8\x8c\x70\xf4\x8b\x94\x06\x6b\xe7\x08\x5d\x09\xd4\x2e\x04\x4a\xf4\x4a\xa0\xc0\xe4\xe1\xb6\x1a\x3c\x8b\xa6\xc4\x8f\xb5\x6e\xcd\x33\xac\xc6\x5c\xcc\x0c\x97\x8f\x26\x6d\x1a\x5f\xde\x28\x65\x8a\x08\x91\xcf\x15\x75\xc5\x09\xca\x52\xaa\xde\xb2\x0b\x3e\xf9\x44\xa4\xc4\x13\xb2\x8d\x03\xba\x4e\x79\xb8\xfd\x29\xfc\x27\x38\x98\xdb\xc8\xfe\xd1\x08\x5d\xe4\xbb\xa3\xa7\x2b\xf6\xc1\x04\xf2\x5c\xf3\x8c\x26\x1b\x06\xdc\x7d\xe8\xf6\x2f\x86\xfd\x4f\x5a\x89\xef\xde\xf5\x2e\x22\x51\x02\x9e\x75\x3f\xdc\xf5\x6e\x2c\xfa\x7b\xf7\xfd\x45\x6f\x78\x79\x75\xde\xbb\x1d\x9e\x5d\x7d\xba\xbe\xe8\xad\x88\xcc\x69\x6c\xbc\x6a\x5d\x2d\xbf\x7a\x5a\xf9\x05\x76\x58\xf3\xb2\xd0\x5e\x06\x99\x67\x98\x66\xe0\x04\xe7\xc6\x19\x8e\x11\xe3\xa9\xc1\xe0\x92\xce\x3a\xe3\x61\xd9\x51\x5f\x7d\x95\x65\x08\xe7\x8a\xcf\x30\x78\x6d\xb2\xc5\x80\xe1\x91\x66\xad\x38\xcb\x82\xf0\x2e\x91\x33\xa6\x59\xac\x6e\xcc\xd4\x1c\x48\x32\xa2\xd9\xf9\x3c\x48\x18\xb4\x7e\x83\x31\x65\x10\x69\x3b\xc3\xe2\xc1\x15\x50\xf4\x69\x18\xfe\x50\x48\x84\xe5\x80\x19\x6c\x30\x2b\xad\xb4\x58\xe1\xd3\x56\x6f\x35\xae\xce\x0c\x3f\x10\xbd\x2a\xb3\x3c\x99\xa2\xb9\xe0\x13\x41\xa4\xb4\xb6\xe5\x04\x33\x13\x80\x60\x5f\xd7\xd7\xd0\x80\x31\xae\x97\xc2\x99\xb0\x53\x32\x27\x2c\x25\x2c\xa1\x26\x35\x10\x7c\xf7\xde\xb4\x39\x11\x78\x3e\x45\x92\x83\xd3\x1b\x96\x1d\xec\x57\xe6\x23\x77\x93\x59\x34\x34\x78\x1c\x5a\xa0\x45\xae\xf9\xc4\x15\xc8\x89\x66\x95\xe1\x63\x77\x19\x3a\xb7\x8b\xb1\x03\xce\xe6\x19\x51\xa6\xfa\x04\x2c\x39\x6c\x86\x5e\xeb\x68\x3f\xf4\x36\xd5\x6d\x82\xbe\xb0\xdd\x98\xb1\xb4\x23\x3a\xae\xb1\x6c\xdb\x23\x85\x7e\xc0\x2c\xcd\x74\x2b\xce\x87\x11\x9f\x45\x48\x45\xe9\x6a\xaa\x71\xa7\x71\x9b\x5b\x34\xc1\xb9\xdc\xe6\x1a\x2d\xe5\x73\x1a\xab\xe0\x51\x11\x14\x02\xe4\x6d\x93\x39\x61\x75\xe7\x9a\x45\xe2\x8c\xdb\x55\x32\xaf\xe7\xa6\xa2\x1a\x82\xd1\x34\x5c\xb3\x73\x41\x59\x42\xe7\x38\xdb\x48\xf7\x2b\x05\xe3\xdb\x18\xf7\xaf\xe9\x58\x93\xcf\x37\x15\xb7\xad\x22\x62\x06\x49\xce\x76\x98\x7e\x0b\xd7\xb0\x24\xd9\xac\x06\x22\x8b\x68\x12\x2c\x78\x6e\xfc\x71\xb0\x2e\x24\xad\x39\xaa\xc7\x75\xdb\xad\x4f\x06\x8e\x03\xa0\x37\xd8\x6c\x13\xf9\xd3\xb4\x7e\xa5\x56\x6c\xef\x26\x18\x0f\x67\xd7\xf5\x6d\xd6\xed\x40\xf0\xf0\x5f\xcb\x68\xe7\x13\x9e\x6b\x9a\xb1\x35\x31\x70\x31\x47\xab\x24\xd9\x3a\x7b\x2e\x7e\x26\xf0\x9d\xfb\xbc\x90\xf6\xbb\x51\x2c\xa1\x0d\x80\xaa\x76\x12\xc5\x10\x04\x79\xea\x96\xc6\xc7\xb9\x96\x65\x11\x86\x28\x04\xf4\x35\x39\x9e\x1c\x23\x57\xbd\xa4\x83\xba\xd7\xd7\xbd\xcb\xf3\x0e\x22\x2a\xf9\xc6\xc5\x2c\xda\x80\xa5\x01\x53\xdc\x4a\x2b\x0b\x34\xe5\x4f\xc0\x1b\x89\x98\x90\x68\xce\x2e\xba\x09\x42\x95\x27\x54\x2a\x1b\x3e\xab\xf9\x4a\x50\xbb\x87\xce\xca\x62\xb6\xa1\x90\x5c\x4d\xb7\x21\x0d\x2c\x65\x3e\xd3\xba\xec\x90\xe2\xd9\x50\xf0\x6c\x1b\xa6\x70\x0e\x53\x01\x75\xd9\xa7\xf8\x53\x3c\x43\xba\x59\x1b\x0a\xe2\x5d\x8e\x5e\xa4\xd3\x82\x91\xe6\xcb\xfa\xde\x0c\xee\x2d\xe7\x7d\xb0\xf1\x68\xd4\x85\x40\x00\x04\x40\x03\xab\x28\xcc\xc6\x43\x6b\xa9\x1f\xe2\x24\xd1\x2a\xf7\x8e\x27\x15\x14\x84\x72\x2e\x01\xdb\xd1\xb3\x4d\x73\x15\x9d\xbb\x61\xce\x35\x07\x83\x60\xe0\x6a\x2d\x97\x9a\x7e\x47\x8b\x4a\xaf\xae\x64\xd3\xbd\xf4\x26\x15\x73\x09\x4b\x02\x3b\x29\x4d\xc9\x27\x35\x25\x16\x7a\x34\xec\xd2\x25\xc4\xe8\x86\x17\x3c\x17\x75\x8c\x6e\xc0\xce\xc9\x5c\x10\x2d\xe9\x97\x1d\x28\x9e\xa6\x6f\x62\x4a\x3c\xd0\xf5\x81\xae\xdf\x3c\x5d\x9f\x99\x32\x6d\xce\x57\x14\x94\x41\xda\x86\xd0\xeb\x5a\x59\xd6\x12\x7a\xf6\xfb\xfd\xcc\x5c\xec\x75\xd5\xa5\x62\x2a\x72\x77\x30\x65\x95\xba\x7a\x66\x23\xa1\x48\x3c\x5c\xb8\x7f\xcf\xb9\xc2\xf2\x9b\xe3\x01\xd3\xd2\xc3\x03\x59\x18\x3b\xa3\xbe\x9f\x7f\xaf\x85\xd0\x23\x49\x98\x84\x38\xe7\xdf\x1b\xbf\x94\xde\x5b\x67\xa7\x35\x3a\x99\x29\xe7\x17\x17\xbe\x82\xd8\x54\xdb\xa8\x15\x0f\x8a\xc8\xdf\xa2\x5a\x96\x7b\x66\x86\x3f\x21\x0a\x72\x8b\x15\x55\xa0\x2c\xa4\xa6\x5e\x60\x65\xe8\x2b\x6d\x36\x86\x2a\x04\x07\x07\x41\x9a\x6f\xc7\xf1\x64\xb5\x8d\x95\x2c\xc1\x8b\xc9\xb7\x36\xd8\xfb\xc4\x19\x4c\x12\xc1\x2b\x45\xf8\xb0\x44\x66\xa7\x47\xe6\x1c\x38\xc7\x2d\x61\xc7\x4f\xf4\x81\xce\x49\x4a\x31\x84\x7e\xeb\x7f\x9d\xe8\x79\xfd\xee\xec\xe6\xea\x72\x58\xa4\xb0\xfc\xd7\x80\x75\x33\xc9\x7d\x78\x3e\x62\x9c\xf9\x38\xf3\xb9\x20\x4e\x16\xb2\x73\x01\x73\x63\x61\x3f\x1b\xb0\xa6\x11\xa4\x3c\x91\xc7\xf8\x49\x1e\xe3\x19\xfe\x07\x67\xe0\x43\xee\xc2\x9f\x67\x19\xcf\xd3\x9f\xb1\x4a\xa6\x27\xe0\xda\x55\x27\xe4\x91\x30\x65\xfc\x33\x7a\xb9\x52\xc8\x5a\x95\x10\xa6\xfe\x3b\x3d\xe6\x22\x9b\x46\x6a\x15\x2e\x21\x73\x85\xfe\x1f\x41\x46\x9c\xab\x7a\xee\xcc\xc7\x63\x49\xd6\xe2\xc4\x85\x76\x72\x7b\x85\xfe\xfc\xa7\x6f\xbf\xd3\x24\xb4\xc9\x1a\xf7\x6f\xaf\x86\xfa\xfb\xdf\x9d\xdb\xef\xe5\x1a\x9c\xf5\xca\xb8\x47\xac\x8f\xd5\xac\x86\x89\x18\xcf\x19\xb0\x7d\x01\x56\x7b\x2d\x20\x1b\x72\x28\xf6\xb1\x8e\xbb\x9d\x9b\xfc\xfe\xad\xd2\x65\xb6\xb8\xce\x3e\x66\x7c\x04\x06\x91\x3c\xaa\x0c\xb6\x24\xb4\x61\x4b\x43\xf2\x39\x95\xf3\x0c\x2f\x2a\x3d\xac\x5a\xf6\x4b\xcd\x9d\xe6\x38\x21\x05\x30\x81\x8b\x42\x4a\xf8\x6c\x06\x91\x71\xce\x65\x90\xd2\x31\x84\xc8\x29\x7d\xd9\xa1\x11\x51\x4f\x10\x90\xe9\x7e\xf5\x97\xb4\xb3\x44\x6a\x56\x06\xec\x72\xa0\x17\x39\xcd\xc1\x8d\x34\x78\xd7\x41\x83\x77\x29\x79\x24\x19\x9f\xeb\xd3\xac\x7f\x20\x2a\xa9\xdb\xc4\xde\x0c\xd3\xec\x92\x2b\x1f\xe3\xb7\xcd\x7e\x0a\x92\xd0\x39\xd5\xa7\x6b\x48\x74\xbb\xcf\x9a\x0b\x55\x7f\xc0\xee\xa6\xc4\x03\x28\xc1\x18\x10\x4e\x53\x4d\xc4\x50\x26\xcd\x0d\xaf\xb0\x2d\xb3\x60\xea\x51\xf9\x9f\xf5\x05\x16\xad\x55\x42\x8f\x61\x9b\x71\x00\x65\xed\x0e\x78\x8b\xc3\x4e\x4f\x52\xb3\x43\xc2\xd9\x78\x7d\xc7\x45\xc9\xaa\xa5\xf4\x6f\x2b\xf0\x05\xd0\x05\xd6\x54\xd7\x68\xda\x28\x1f\x40\xbd\x16\xed\xc6\x19\xaf\xcc\xad\xfe\x6e\xe9\xd0\x64\x88\x1d\x96\x84\x85\x34\x41\xad\xb6\x41\xf3\xe5\x38\x7d\xb2\x72\xc4\x49\xc6\x65\x9c\x43\xd7\x7a\xd0\x67\xf6\xd3\x65\xe3\xee\x85\x56\x88\x3c\xf3\xe9\x6b\xad\xe8\xae\x5b\xb3\xf0\x25\x90\x08\xc3\x26\x94\x95\x9c\xed\xdb\x1d\x44\xc1\x0b\xa3\xd7\x00\x67\x45\x46\x01\x4b\x51\x21\x25\x0e\x58\x61\xcb\x92\xe8\x89\x64\x60\xfe\x4e\xf8\x6c\x0e\x12\x90\x1d\xae\x6d\x49\x5f\xe0\x0a\x2b\xd2\x41\x3c\x57\xba\x31\x13\xab\xe3\xee\x38\x1b\x08\x54\x48\x85\x46\x26\xb7\x4e\x71\x0f\x5a\x65\x68\xdd\xb0\x42\xca\xd0\x47\xa2\xa0\x15\x00\x05\x0c\x27\x68\xca\x3c\x2f\x3d\x4a\x67\x95\x6d\x5b\xfb\x44\xd9\x99\xac\xb1\xf3\x45\x42\xd5\xfb\x8c\x8f\x96\xee\xfb\x15\x34\x8e\xee\x6f\xfa\xce\x79\x50\xd8\x55\x03\x54\xa3\x48\xd3\xe8\x5d\xdf\xf4\xce\xba\x77\xbd\xf3\x63\xa4\x15\x9a\x8f\x44\xf9\xe9\x42\xdc\xb5\xc7\xc7\x33\x23\xb7\x19\x5a\x4c\x2a\x82\xd3\x06\xea\x26\x42\x44\xd1\xd1\x2b\x18\x47\x9c\xbe\xb5\x9c\xb0\x21\x79\x8a\x32\x93\xca\x06\x09\x87\xe5\x79\x5a\x8b\xfd\xaa\x13\x08\xf6\xd3\xe1\xdb\xb1\x5e\x9b\xf1\xce\xaa\x16\xfb\x55\xe4\x13\x5b\xfa\x9f\x7b\x32\x70\xb4\xd4\x94\x50\x81\x5a\x4d\xcb\x10\xd5\xb0\xfd\x9c\x02\xd7\xf7\x27\x3c\x5f\x1e\x96\x8a\x9f\x22\xa2\x35\x92\x4c\xa0\xd3\x3f\xf7\x39\x70\x6c\x6d\x68\x58\xe1\xf6\x13\x2c\xe4\x7d\xc3\x5b\x3d\xdf\x34\x91\x20\xb2\x52\xaa\xfd\x78\xc0\x4a\x83\xb0\xfe\x2d\x89\xe0\xec\xc0\x2f\x94\xa1\xe8\x4a\xec\xa0\x31\xfd\x6c\x1b\x2d\xfc\xde\xee\xd5\xc0\x10\xd2\xe0\x67\x99\xe2\xea\x99\x5a\x43\x6c\xb8\x86\xef\x97\xda\xfd\xb9\x54\x5a\xea\xd2\x92\xab\x20\x5a\xbf\x20\x29\x82\x6e\xbd\x17\x7e\xa5\xc8\xa0\xb0\xd0\x8b\x82\xd7\xd2\xb7\x0a\x7c\xd3\x14\x2b\x72\xa4\xe8\xca\xc0\x68\x1b\x3b\x03\x51\x36\x58\x05\x69\xc2\xc5\xcd\x33\x22\x13\xcc\x9c\xcb\xb6\x61\xb8\xee\xca\xdb\x82\x55\x69\x09\x16\x43\xd8\x18\xc8\x57\x10\x12\x14\x8d\x43\xce\x61\x3d\x97\x8e\xc3\x5a\xc5\xf6\x61\xd9\x9e\xb0\x37\xd2\x35\x0c\x36\x9f\xa7\xfb\x34\xd8\x0c\x4b\x85\xec\x98\x9a\x34\xc9\x40\xc2\xdf\x01\xe2\xc3\xb2\xca\xb2\xa1\x6a\xd6\xd6\x1e\xa7\x49\x28\x56\x42\x88\x52\xd4\x96\x3d\xcd\x25\xb1\xd9\x63\x33\x22\x26\x4e\x10\x36\x25\xa9\xfc\xd9\xb6\xb5\xa9\xdc\x2d\x11\x32\x13\x70\xde\x57\x9b\x3e\x46\x5d\x56\xc9\xa3\x75\xf6\xda\x68\xbd\xcc\x9d\x84\xb3\x27\xbc\x90\x68\x2e\x4c\xca\x99\xf1\xe8\xbb\xc9\x83\x23\x2d\xfe\xc8\x5b\x8a\x94\x0b\xa9\x40\xa0\x4a\xaf\x36\xa6\x07\x95\x96\xdb\x73\xbb\x96\x3a\x51\xc9\xdb\x5c\x57\x0c\xd9\xab\x9a\xb5\xac\xae\x22\xe4\x17\xf9\xe7\x61\x7e\x82\x05\xf4\x01\x99\xdb\x6a\x5d\xbd\xd8\x53\xdd\x24\x08\x83\x95\xf5\x02\x8f\x48\xb6\xb5\x43\x79\x23\x8b\x17\x74\x6d\xe1\x0b\x15\x47\x29\x31\x1e\x77\x82\x9e\xa6\x44\x94\x59\x9b\xb3\x13\x8b\xbc\xce\xff\xbe\x6c\x9e\x51\x45\xb5\x2d\x26\xea\xf0\x38\x37\x99\x6a\x13\x4a\x67\x78\x85\x04\x68\x96\x75\xb6\x86\xf0\x2a\x29\x9b\xd7\x36\x1b\x48\x00\xaa\xd9\x30\x8e\xad\x51\x35\x57\x4e\x65\xe3\x40\xfe\x96\x68\xf5\xfd\x31\x62\x9c\x11\x44\x65\xf1\xb2\x8a\x43\x8e\x7c\x1a\x9c\x16\x97\x8d\x21\xa3\x5a\x23\xf4\xb9\xad\x16\x45\x82\x82\xd7\xb3\x5d\x0c\x35\x23\x5a\xe9\xc3\x62\x01\x30\x1a\x86\xa7\xc5\xf2\xd1\xca\x71\xee\x5c\x78\xbd\x73\x28\x29\x81\x37\x4c\x71\x04\x22\x59\x69\x70\xc8\x60\x8d\xd8\x97\xec\x47\x36\x15\x6c\xc0\xbc\x95\x00\x08\x91\x4a\x34\xc3\x73\x08\x60\x66\x5c\x15\x5f\x99\xd4\x46\xe5\xb7\xb0\xe3\x84\x5a\x69\xb0\xae\x1b\x56\x60\x95\x99\xc4\x5d\x65\xc5\xba\xc6\x10\x12\x0e\xfe\x66\x42\x1f\x09\x73\x34\xdd\x71\x67\x42\x0f\xca\x75\x9a\x2d\x8e\xb0\x94\x74\xa2\xaf\xa1\xc0\x08\xbc\x9c\x23\xd9\xfa\xa0\x7b\x60\xdb\x6b\xbf\x64\x7a\xe3\xf3\x8a\xb5\xcf\x24\x22\x47\x08\x72\xce\xf9\x1a\x52\xa9\xc5\xc6\x31\xd1\xd6\x58\xa2\xdf\x33\xae\x7e\x1f\xa0\x07\x39\x43\x80\x29\x1f\x6b\xcd\x39\x9d\x0a\x2c\x2a\x1c\x5a\x4b\x38\x08\x07\x59\xac\x2b\x57\x7e\x5b\x10\xaf\xc2\xb9\xfc\xac\x92\x5d\xaf\x1a\x69\xd6\x84\x2b\x6d\xea\x2d\xec\xcc\xfa\xf1\x12\x85\xd1\x91\x21\x03\x41\x5c\x46\xf3\x8c\x0b\x52\xaa\xf9\x60\xf8\xb9\x0f\xc5\x9c\xcd\x55\x6d\x3a\x53\x55\x34\xaa\x31\x1e\x1a\xf8\xfb\xe2\xa4\x47\x46\x43\x79\x3c\x60\xb7\x84\x34\x63\xa2\xfb\xbd\xf8\x15\x1a\x82\xb1\x5a\x9c\x83\x65\x94\xb6\x8b\xb8\xcc\x59\x8c\x58\xb1\x84\x6a\x56\x00\x0d\xd5\xeb\xf8\x9b\xc4\x52\x36\xc9\xb8\xde\xe0\x1f\x16\xf7\x6d\x42\xd2\x39\x1e\xb0\x0f\x5c\xd8\x2b\x58\x5a\x2c\xbf\x11\x4e\x1e\x8e\x08\x4b\x11\xce\xd5\xd4\x20\xda\x58\x1b\xfd\xc2\x52\x83\x96\x34\x80\x6c\x7c\xba\x0a\x95\x09\x16\xa9\x43\x95\x7c\xe4\x6e\x14\x03\x16\x34\x02\x68\x81\x00\xa6\x0c\x25\x65\x9a\xd4\x36\x02\xe8\xf5\x4d\x6b\x51\x57\x2c\xa5\x52\x2a\x65\xf9\x39\x8b\x8a\xbf\x00\xce\x21\x23\xd2\x8a\xec\xa5\xd5\xe9\x3b\xcb\x9d\xd3\x95\x64\x58\x3e\xdb\xbf\xd9\xb1\x11\xd2\xc6\xbc\x63\x67\xa0\x25\x9d\x6f\x1d\xaf\x8d\x90\x79\xc6\xb9\x80\x40\x97\xba\x36\xbf\x4e\xa6\x34\x2b\xfc\x00\xdf\x74\xfc\x30\x75\x93\x19\x79\x24\x99\xc1\x85\x4b\x04\x04\x01\x18\x0b\xdc\xb7\xe8\xff\x98\x02\x22\xe8\xbb\x01\xfb\x08\x6c\x38\xcb\x16\x80\x5a\xe1\x5b\xc6\xaa\xd4\xcc\x43\xed\x00\x94\x0d\xb7\x41\xf1\x40\xcc\x5e\x4f\xf1\x23\x19\x30\xd7\xcc\xff\x41\x0f\xe8\x0f\xe8\xbb\x26\xab\x90\xf3\xe5\x3f\xb3\xcd\xe0\x43\xe0\x29\x0f\x6e\x39\xcb\x28\x2d\xbf\x71\x26\x85\xc8\xa0\x57\x93\xbd\xe2\xc1\xa7\x28\x7b\xe4\x49\x25\x60\x24\x3c\xb5\x58\x10\xa6\x86\x8c\xa7\x64\x48\x6a\xdc\x83\x4b\x98\x84\x16\x02\x2e\x79\x4a\x56\x3a\xf7\x3c\x33\xfd\x19\xcc\x20\x32\x1f\xf9\xed\x80\x20\x7a\x1f\x31\xed\x35\xf9\x98\xd2\xea\x47\xee\x11\x5e\x36\x19\xf7\xa6\x8e\xc9\x2b\x2b\x9f\x75\xe0\x42\xb0\x03\xa8\x77\x8e\x65\x58\xb9\x38\xe3\xf2\x71\x2c\x1b\xd5\xf5\xcb\x7a\xe6\xf6\xb2\x0a\xb0\x6b\x00\x5f\x54\xd0\x09\xd5\xf2\x7b\x7b\xe7\x27\x70\xc2\x4d\x3c\x03\x06\xc8\xa3\x95\x6b\xa0\x58\x0a\x97\xcc\x74\xe4\xe9\xaf\x70\xe8\x8d\x78\x5e\x16\xe0\xed\x02\x50\x19\x46\x40\x5b\x59\x7d\xa1\xf9\xf0\xc4\x44\xd9\x91\x29\x35\x71\xed\xdd\xb3\x0b\xa4\x4f\x07\x9f\x99\xe4\x4f\x58\xb4\x5c\x4d\xb9\xa0\xff\x68\x0c\x86\x6a\x96\xd1\x0b\xaf\x65\x11\x3b\x66\xc6\x19\x4b\xeb\x40\xac\x46\xa4\x50\x91\x56\x52\xa7\x33\xa1\x51\x0e\x38\x27\x9a\xcd\x8e\xf3\xcc\x80\x23\x26\x5c\xa4\xa6\xc2\x99\x8c\x22\xd5\xf4\x7b\x5e\xbc\xc7\xca\x37\x48\x2d\x1c\x84\x85\x5f\x4c\xa6\x98\x4d\x96\x0b\xa0\x7f\xc9\x49\xbe\xa3\x60\x3f\x0b\xa9\xfe\x42\x51\x14\x65\x35\x00\x4f\x64\x11\xf8\x69\xd6\x46\xf3\xe6\x62\x7d\xff\xae\x67\x2a\x83\xb8\x50\x67\xa5\xf3\x69\x96\x46\x25\x37\xc5\x37\xd6\xb2\xe8\xdc\x18\x78\xb9\x1d\x98\x74\x5e\x22\x36\xa2\x2a\x23\xd5\xb0\x1f\x4b\x7e\x8f\x3e\x27\xba\xcc\x22\x9e\xc9\x4e\xe2\x70\xfa\x4a\xd2\xc7\x33\x9a\x4c\x36\x60\x72\x55\xa1\x7a\xd9\x7a\x07\x06\x14\xcf\xd6\x6a\x02\x96\x15\x47\x7a\xee\x4f\x82\x42\x16\xf6\xa2\x78\xd9\xd7\x99\x71\xd7\x45\xc8\x63\xb4\x94\x62\xc4\x5a\x88\x91\x70\x4b\xb8\x68\x69\xc2\x6d\x36\x40\xd8\x86\xe2\xae\xab\x3e\xf0\xa6\x13\x61\x58\xd2\xbe\x1e\x89\x6a\x0a\xd6\xca\xc3\xe0\xd1\x36\x5f\xc7\x80\xe8\x45\x9b\x67\x3e\x19\x6b\x51\x48\x70\x91\xad\x4d\x22\xb7\xb1\xa9\x72\x6d\xba\x30\x7d\x0f\xc1\x67\xbc\xb5\xab\x24\x70\x01\x14\x21\xf9\x26\x17\xcb\xa5\x5d\xbe\x90\x21\x13\xbc\xf0\x71\x36\x58\xe0\x84\x6f\x4a\xfb\x7b\x56\x7e\x56\xc0\x1c\x3a\x8e\xd4\x72\x28\x4b\x5d\x8f\x2d\x1d\x89\x60\x21\x5b\xc6\x5e\x2f\x6c\x04\x65\xec\x82\x33\x61\x5c\x3c\x88\x42\x70\x85\x3c\x94\xc0\x10\x8c\x0f\x21\xd4\x3f\x1b\x2d\x8f\x4a\x63\x85\x71\x70\x86\xb3\xb9\x5a\x58\xf4\x6b\xe0\xcd\x16\x17\x57\x4d\x31\xb3\x99\xbd\x75\xee\xbe\x32\x9f\x4e\x23\x87\x5f\x5d\x67\xd0\x91\x55\x6d\x6b\x9b\x74\x0b\x1d\x66\x8a\x94\x12\x14\x9a\xbc\xfb\xa6\x90\xc8\x10\x67\x8d\xf6\x94\x11\xe7\x19\xc1\xac\x49\xed\xac\x7d\x5c\xb1\xbe\xd2\x30\x29\xc1\x82\x7c\x28\x91\x13\xad\x73\xe3\x2c\x2b\xcd\x0b\x43\x2d\x50\xe5\xc1\xc4\x47\x45\xc5\x93\x15\xce\xc7\x4e\x78\xf2\x47\x24\x5b\x2b\xda\xcd\x7c\xb0\x94\x8a\xe0\x95\xa2\x56\x65\xab\xf4\xce\x30\x94\xaa\x36\x19\x76\xd5\xc0\xc2\x14\xda\xa5\x22\x44\x9c\x86\xba\xd9\x10\x25\x49\x72\x41\xd5\x62\x68\x0d\x4f\xed\x99\xd6\xad\xfd\xf2\xcc\x7e\xd8\x46\xab\x3b\x45\xae\x3f\x67\xe8\x02\xf1\x46\x50\x83\x94\x6a\xa7\xd0\x66\xbb\xb5\xa6\x56\x9b\x24\xb7\x6c\x61\x5d\x96\x5e\xbb\xa1\xea\x2e\x36\x1d\x9e\x45\x60\x1c\xf2\xb1\xcb\x7f\x6b\xbf\xb0\x65\x68\xca\x35\x2c\x76\x0e\x66\x67\x2e\x28\x17\x16\x01\xb2\x4d\x90\xd2\x0c\x7f\x1e\xce\xb1\xc0\x59\x46\x32\x2a\x67\x9b\xdb\x17\xff\xf8\xfd\xd2\xd1\x9e\x19\xa4\x52\x69\x71\x7f\x3f\xd3\x59\x3e\x0b\x6a\x4c\x03\x3c\x4a\x00\x72\x60\x4d\xf6\x36\x57\xcf\x0d\xb0\xb8\x68\x98\xa2\x22\x80\xad\xd0\x3a\xb1\x07\x30\xb2\xea\x32\x4e\xa6\x50\xfb\x73\x8c\xa9\x60\x44\xca\x63\x74\xc9\x15\x39\x45\x9f\xf0\xfc\x0e\x14\x3e\x53\x3a\x60\x62\x2c\xb4\x58\x22\x2d\x39\xe5\x8c\xaa\xce\x80\x59\xd4\x23\xb7\x2a\x27\x09\x67\x06\xf9\x22\x81\x85\xf5\x4d\x80\xc9\xd1\x41\x40\x28\x83\x26\xae\xa9\x64\xbd\xa4\xef\x38\x34\x0e\x4a\x3f\xcc\xe0\x92\x97\x05\xc2\xb5\xd3\x09\xbc\x88\x15\x91\x22\xa0\x54\xc0\xc7\x29\x27\x32\x50\xf6\x91\x97\xd9\x33\x3a\x26\x9a\x42\x06\x8c\x8f\x63\xc3\x84\x01\xbb\x70\xd8\x17\xba\xd3\x44\x70\x29\x6d\xb4\x9b\x69\x67\x79\xcc\xf2\x9d\x45\x22\xd8\x45\x14\xc3\xcb\xa5\x03\x54\xeb\xbe\x07\x95\x02\xeb\xc5\xfe\x11\xf1\xa8\x0b\x8d\x37\xed\xb6\xf1\xbe\x8e\x0d\x21\x41\xb0\xb4\xd6\x58\x08\x8b\x2d\x85\xcc\xad\x21\x99\xfb\x31\x9b\xc0\xfa\x23\x8f\x73\x12\x50\x90\x85\xee\x33\x35\x9a\x35\x5d\x0b\x41\xa0\xde\xa2\xc1\x8e\xeb\x97\x88\x06\x60\xfe\x04\xc1\xe9\x22\x58\x11\x6f\x6f\x34\x3d\x83\x64\x22\xe9\x4c\xf3\x4e\x80\x55\x65\xfc\x88\xcf\xdd\x61\x8d\xde\x02\x90\x1a\x3a\xd6\x84\x18\x58\x2b\xf5\x17\xec\x08\x0a\x89\xe9\xe3\x55\xe3\xaa\x75\x8d\x80\x6b\x17\xa0\xeb\xa6\xc4\x12\xee\xe0\x5d\xf7\xfd\xd5\xcd\x5d\xef\x7c\xf0\xae\x08\xce\x71\x91\x9c\x8e\x91\x78\x0c\x0d\xce\x06\xcc\xfb\xd3\x7d\x8e\x31\xec\x25\xc2\x69\x5a\x20\x3c\xd8\x68\x62\xe3\x0e\x6c\x7b\x2a\x56\x7a\xd2\xab\xcd\x7c\xa0\x9f\x49\x7a\xd3\x80\x57\xbd\x93\xd8\xa7\x56\x3e\xa3\x5a\x12\xd7\x5c\x72\x8d\xdb\xd7\x4f\xe5\x5e\x7f\xd7\x9e\x82\xcd\x49\x28\xe5\xfc\x41\xc2\x9f\x42\x18\x25\x44\x28\x4c\x19\x1a\x03\x0d\x68\xce\x0c\xd9\x64\x04\xac\x1d\xdf\xa3\x19\x65\x90\xaf\xb1\x6c\x69\xef\xe3\x79\xac\x53\xe5\xa4\x7f\x79\x1f\x17\x65\xfb\xe1\xea\x3e\x86\xd8\xef\xfe\xb2\xbc\x34\x49\xdc\xc2\x32\xb3\x72\x30\xc5\x22\xf6\xd3\xa6\x3e\xfa\x95\xa9\x9b\xe8\x47\xa2\x7e\x32\x25\x53\x77\x11\xcc\x61\xc1\xc6\x41\xc5\x26\x43\x57\x35\xb7\x3d\x19\xfc\x54\x53\x67\x37\x8e\xd8\x71\x70\xe6\xd0\x83\x2f\xb4\x1b\xa4\x62\x1c\x1b\x30\x79\xa8\xcc\x09\x96\x6d\xe7\x16\xd1\x37\x26\x67\x7a\xb9\x06\xf0\xb6\xaf\x7b\x54\x34\xc7\xc7\xe6\xe3\x56\x6e\xfa\x9b\xd0\x39\xaf\xdb\x2a\x96\x12\x75\xaf\xfb\x35\x6b\x7d\x51\xd6\x42\xbe\x2c\xe4\x9b\xcc\x2b\x44\xbb\x06\xbd\x09\xa2\x2c\xf7\x02\xef\xc6\xce\x74\x3b\xa8\x1b\x63\x37\xba\x8e\x8d\x51\xcf\x2a\x0b\x6d\x21\xfa\x44\x91\xc8\x36\x42\x62\x37\x69\x90\xc5\x32\xac\x99\x07\x19\x0e\xc8\x46\xb3\x84\xb9\x7f\x55\x57\x69\x27\xcc\x05\x34\xe5\x7c\x9c\xe5\x6b\x67\xf9\x91\xc5\x6c\xda\x24\x48\xfe\x64\x28\xda\xe7\xcf\x40\x46\x90\xc3\x6e\x74\x2e\x4e\x1b\xce\x1e\x4e\x37\xa4\xb6\xf5\x72\x2a\x8b\xf1\x39\xf3\xaf\xc5\x1f\xc6\x73\x6c\x2b\x43\x80\x30\xe8\xb0\x25\xea\x30\xf8\x8e\x07\x2c\xb0\x79\x4a\x23\xbe\xe9\x33\xe2\x70\x4c\x00\x1c\x57\xb3\x53\x1b\x6b\xe4\x6f\xe6\x68\x07\xca\x51\xf3\x6a\x1a\x23\x91\x54\xfa\xb1\xa7\x53\x4e\xb1\x8b\xa7\x74\x1a\x8f\x75\x67\x84\xc0\x29\xd0\x5e\x00\xc1\x60\x3b\x26\x8f\xc4\xba\x40\x70\x80\x6c\x17\xc4\xb3\x6b\xe5\x88\x7d\xa5\x7c\xc4\x2a\xcd\x2c\x7a\x0a\xf6\x51\x2a\x85\x9d\x5d\x62\x6a\x5b\x5e\x7e\xc0\x77\x90\xb0\x29\x4b\x75\x49\xd6\x38\x56\xf0\x65\x1b\x33\x01\x50\x42\x68\xce\x86\x4e\x9b\xb2\x2b\x3f\xcf\x49\xb2\x49\x56\xd9\x35\x16\x78\x46\x14\x11\xcb\x2c\xda\x31\xee\x34\x58\x6b\xdd\x0e\xda\x7e\xcd\x2e\x1a\x6c\x12\x36\x69\x88\x7a\xbd\x58\x95\x25\xe6\x67\xb1\x56\x42\xac\x9e\xc6\x4f\x16\x8c\x65\xcd\x59\xd8\x7e\x8a\x69\x58\x83\x7d\x90\x14\xb8\xed\x9c\x5e\x26\x3b\xea\xae\x92\x67\x14\x59\x9c\xf7\x24\x2d\x6a\xf5\x28\x9b\xf2\xa1\x56\xf1\xd2\x9d\xf0\x6e\x17\xa8\xe1\x22\x81\x4b\x87\x2a\x0a\x01\x01\x2a\x01\x79\xdf\xa4\x06\xd5\xe7\x34\x81\xd0\x52\xe7\x64\x0b\xc2\xd9\x6c\xc6\xbb\x5e\x3c\xa9\xf0\xcc\x43\x05\x95\x71\xa8\x4a\xcb\xb5\x82\xc7\xed\x2a\x47\xe5\x20\xd1\xec\x5a\xa2\x59\xc3\x0c\x64\xa8\x93\x88\x52\xea\x99\xc5\x87\xb6\x79\x0e\xf1\x04\x21\x84\xca\x5e\x91\x16\x64\x16\xae\x7e\xca\xfc\xbf\x62\x0e\xee\x88\x3a\x24\xd5\xba\xd8\xd0\xe3\x00\x8d\x1f\xac\x9c\x59\x28\x0d\x58\xd3\x2c\x8c\xd6\x78\xd2\x4c\x25\xac\xfe\xa5\x29\x5e\x05\x31\xda\x0b\x9e\xa3\x27\x2a\xb5\x2e\x3c\x60\xe0\x6a\xf2\x15\xb3\x14\xb7\x55\xae\x3a\xf0\x16\x64\x73\xc8\x7c\x34\xa3\x0a\xe1\x60\x86\xf7\xc0\x19\x6e\x5c\x1c\xbf\x39\xcf\xfa\x03\x98\x71\x6d\xba\x40\x5d\xd6\xde\x8a\x43\xb3\x81\xf1\xa7\x68\x64\xdb\x8c\x80\xc0\x2d\xfe\xbc\x39\x01\x81\xc6\x13\x6a\x98\xb5\x67\xee\x90\x14\x80\xea\xad\x0d\x16\x47\x04\xc0\x5e\xa8\x54\xa5\xbb\xc5\xa2\x87\xac\x48\x08\x28\x36\xa2\x55\x46\x40\xf1\xfa\x2e\x52\x02\x9a\x80\xdd\x96\x85\x88\xba\x4f\xea\x05\xad\x5b\x5f\xf7\x96\xbb\xd8\x8b\x50\x52\xba\x6e\x94\x94\xf6\x2d\xd1\x39\xa8\xfb\xbd\x71\x84\xc2\x3a\xea\x60\x11\x66\x16\x52\x51\x10\x35\x1a\xa7\xb6\x91\x32\xe7\x67\x5c\x41\x68\x50\x02\x68\xef\x95\x70\xd5\x01\xab\x97\x40\x96\xf3\xc4\x6d\xa3\x7c\x76\x9a\x10\x1d\x9c\x3f\x37\x0b\x6b\xd1\xfa\xd9\x87\xfd\x1b\x65\xd9\xe2\xb6\x97\x45\xcc\xc2\x55\xd1\xa0\x80\x80\xe0\xb1\x49\xdc\x74\xcd\xa9\x6c\x19\x83\xb3\xf2\x5c\xd8\x4b\x77\x87\xaa\x5d\x85\x3b\xb7\x0e\x59\xf2\x32\xb2\xe5\xc6\xce\xe7\xee\xd4\xf8\x92\xc7\x69\x13\x3c\x5a\xc0\x19\xd9\x19\x3a\x4a\x39\xc9\x42\x37\xde\x01\x2f\x95\x1d\x3a\x36\x35\x2f\x3d\x66\x57\x69\x4b\xa2\x09\x5b\x9c\xff\x67\x98\xf4\xba\x18\xc2\x01\xb6\xa6\xb0\x38\x8a\x34\xb4\x1b\x00\x78\xb0\x2b\xf6\x1f\xf3\x61\x2f\xda\xe5\x2c\x25\x82\x11\xac\xa6\x2f\x17\xa6\x73\xb6\xad\x71\xfa\xc5\x42\x76\xce\x76\x02\x20\x5f\x0a\x83\x59\x33\x02\x66\x8d\x70\x92\x02\x4e\xb8\xa2\x38\xd6\x15\xee\x28\x32\xe9\xd6\xa1\xd2\xad\x22\x79\xea\x95\xb9\xe7\x89\x69\xaa\xb1\xfa\x54\xa2\x99\xf4\x61\x0f\x41\x98\x57\x2c\xc9\x17\x11\x3c\x24\xf0\xd3\x30\x40\xd7\x1a\x1a\xf4\xc2\x35\x76\xf3\x06\x3f\x19\x3c\xb9\x73\xac\xf0\x99\xf9\x7a\xd9\xb0\x23\x60\x11\x48\x40\xf4\xf0\x30\x73\xe3\x0e\xb6\xdc\xcb\x57\x6e\x37\xd1\x33\x5f\xd3\x63\x72\x8c\xde\x67\x7c\x24\x3b\xc8\x54\x38\xec\x18\xc1\x1e\x9e\x1b\x88\xd1\x6f\xf6\x3f\x44\xea\xb7\x19\x21\xb5\xcc\x90\xe2\x6d\xfb\x50\x81\x28\x42\xcf\x34\x12\xc8\x0a\x79\x74\xf3\x8a\xe0\xce\x16\x11\x3a\xfd\xed\x2f\xf6\x87\x86\x02\xa4\x2b\xea\x7e\x87\x76\x11\xb6\x28\x9b\x17\xb1\x48\x33\x9b\x96\x6b\x4c\x1d\x25\x3d\x76\x99\xc9\x65\xc0\x7e\xe0\x4f\xe4\x91\x88\x0e\xc2\x0a\xcd\xb8\x56\x43\x02\x3f\x3b\xa4\x0e\x46\x68\x49\xc6\x9f\x8a\xd1\x25\x9e\x91\xb4\x07\xc2\x6c\x90\x20\x61\x0d\x3f\xd6\x65\x53\x87\x3e\x01\x40\x0a\x66\x1b\x9c\xff\x75\xc0\x4c\x39\x71\x13\xc3\x01\x5c\x87\xba\x89\xc1\x95\xf8\x7b\xef\x50\xfa\xfd\x31\xba\xd3\x94\x4e\x65\x3c\xde\x20\x19\xb5\x69\x6c\x03\x36\x11\x3c\x9f\x7b\x5d\x9c\x8f\xc0\x08\x60\x1c\x4b\x35\x0e\x25\x18\x8c\xf3\x26\x25\x38\xd5\x32\xfd\x72\xc2\x89\x4c\x47\x7b\x66\x11\x8d\x93\x58\x42\x02\xd2\xdc\xc1\xc7\x8f\xd8\x08\x41\xe3\x07\x0a\xf2\x58\x9a\xe1\xec\x9e\xcd\x49\x75\x4e\x24\x68\x97\xde\x7a\x17\x85\x34\xc7\x61\xf3\xb5\xe3\x5c\x66\x5b\xf1\xf6\x4f\x67\x23\xac\x8f\xc8\x2f\x3a\xb7\xb1\x23\xae\x40\x9e\x29\xa6\xfd\x5c\x56\x17\x47\x48\xed\xe3\x73\x4a\x6b\x77\x9d\x8b\x39\x07\x9e\x9e\x2d\x5c\x06\x81\x4d\x7c\x9d\xf3\x79\x6e\xe2\x63\x68\x18\x2e\x51\x4b\xd9\x54\xaa\x4f\x58\x25\x53\xad\xc0\x14\x09\xa0\x3b\x8a\x1b\x2a\xb8\xf2\xf3\x5a\x62\x6a\x66\x70\x16\xf6\xde\x60\x9a\x6c\x61\x99\x33\x08\x32\x2e\xdc\x10\xfe\x95\x65\x68\xa6\xfb\x8b\xea\x29\x04\xf6\x15\xf7\x89\x7d\x02\x95\x31\x57\x50\xd1\xaa\xf1\xb7\xa3\xad\x18\xcc\x77\xe7\x11\x49\x5b\x64\x33\x9d\xdb\xfc\xc5\xe2\x45\x64\x25\xa4\x5a\x96\x93\x0b\xba\x91\x16\x6b\xed\xc3\x50\x3d\xa1\xb0\xdc\xcc\xf0\x5c\x8b\x23\x8a\xeb\x5b\x52\x4c\x48\x07\x3d\x69\x5e\xa0\x72\xa1\xef\x91\x5c\x50\x77\xf6\xc1\xdc\xd2\x86\x3a\xc0\xd2\x71\x12\x82\xb5\x26\x38\xc0\xb1\x36\x8e\x43\x9c\xa8\x1c\xfb\x00\x27\xa0\x89\x8c\xb2\x07\xdd\x99\xc1\x91\x73\x0e\x3a\x41\xa0\x94\xbc\x4b\x2d\x8b\xf6\x74\x25\x61\x6f\xb1\xcb\xcd\x55\x59\x56\x9d\x34\xca\x26\x41\xae\x78\xbd\xb5\xa9\x0d\x14\x5c\xed\x97\xed\xe0\xec\x6a\x3f\x75\xb2\xcf\x26\xdf\x2e\xc9\x23\x6c\xfc\x7c\x95\x00\x1b\x05\x73\xda\x80\x3a\x2b\x3d\x85\x59\xfc\xd6\x12\x00\x60\x1c\xa6\xe6\x0f\xb6\xd2\xd4\x7f\xf9\xbf\x0c\x0c\xaf\x59\x9a\xff\x42\x5c\x0c\x98\xf9\xbd\xe3\x61\xfb\xf4\x0b\x05\x1e\x06\x9e\x91\x02\x31\x40\xc4\xb9\xc5\x90\xdd\x62\x73\x43\x0d\xf6\x89\x47\x2d\xd3\x63\x08\x0a\x2c\x55\x2a\xde\xcc\x30\xc3\x13\x40\x5a\xe9\x40\x84\x0d\x88\xab\x85\xed\xc2\x90\xb4\x81\x52\x07\x6e\xa5\x99\xa5\x4d\x2b\x28\x2a\x42\x40\x9f\x46\x94\xb5\x40\x0f\x85\x9b\xb6\x9e\xfa\x5d\x39\xa2\xcd\x24\xf6\xbb\xee\xed\x8f\xc3\x9b\xde\xed\xd5\xfd\xcd\x59\x24\xb6\x9f\x5d\xdc\xdf\xde\xf5\x6e\x6a\x9f\x99\x92\xa2\xfd\xab\xcb\xe1\x5f\xee\x7b\xf7\x0d\x8f\x5c\x03\x17\xdd\xf7\xbd\x8b\xf0\x95\xbf\xdc\x77\x2f\xfa\x77\xbf\x0c\xaf\x3e\x0c\x6f\x7b\x37\x3f\xf5\xcf\x7a\xc3\xdb\xeb\xde\x59\xff\x43\xff\xac\xab\xbf\x0c\xdf\xbd\xbe\xb8\xff\xd8\xbf\x1c\xba\xf0\xc5\xf0\xd1\xcf\x57\x37\x3f\x7e\xb8\xb8\xfa\x79\x18\x74\x79\x75\xf9\xa1\xbf\xbc\x42\x7a\xfd\x7c\x1b\x6b\x40\x04\x57\x55\xa0\x60\x06\x82\xd0\x68\x61\x89\x97\xfe\x03\xcc\x9c\xd7\x86\xe2\x8e\x3a\xee\x2f\x53\x56\xe5\x48\x33\x39\x67\x41\x2f\xf8\xc3\x80\x79\x17\x87\xbf\x36\x15\x9e\x48\x57\x0b\x39\x1a\xed\x29\xea\xc2\x69\x00\x95\x20\xea\x14\x32\x85\xfc\x48\x9d\x53\x0c\x28\x2d\xa3\x33\xaa\x6c\x09\xfd\xf2\x96\xc6\x0d\xda\x39\xc1\x10\xac\x85\x3f\x5d\x46\xef\xae\x2e\x7f\x4c\x0b\xa7\xc8\xf1\x60\xdd\xac\x1e\x17\x80\x6d\x2c\x18\x9e\x55\x2a\x3e\x1b\xbc\x09\x8b\x44\x61\xcb\x96\x47\x2d\x46\x24\x14\xb7\x3c\x25\xe8\xc7\x3f\x17\x83\x02\x6b\xa7\xb5\x1e\xe6\x15\x38\x6e\xfb\x40\xe4\x66\x55\x57\x11\x60\xd4\x93\x3b\xc8\xd6\x0c\x05\x27\xd3\x56\x6d\x01\xd3\x74\xce\x82\xdc\xd6\xc8\x4e\x6d\xcb\x95\xa1\x23\x54\xa2\xe2\x53\x74\x4b\x32\x92\xa8\xa2\xe4\x34\xec\xe2\x3c\xcb\x27\xb4\x52\xb4\x69\x44\xa6\xf8\x91\x72\x87\xd7\x67\x60\x0d\x61\x1d\xad\xf0\x84\x8e\x50\xe3\x51\x38\x45\xdd\x34\x95\x31\x0b\x8b\x28\xc7\x31\xc5\xa3\x78\xd8\x61\x3a\x2a\x4b\x3d\x63\xac\x35\x1c\xd4\xdc\x7a\x5b\x21\xa4\xc8\x87\xa1\x23\xb1\xe1\x46\xd7\xf0\x1d\x96\x0f\x35\x35\xda\x6a\x6f\x36\x4b\x3f\x5b\xf6\xd8\x5c\x18\xae\xb6\x53\xbf\xd6\x43\x38\x00\x9b\xf5\xd9\x08\x4f\xb3\xa2\x4b\x37\xe3\xac\x84\x21\xdc\xba\xbf\x08\x83\xf8\xf9\x2d\xb6\xf5\x72\x10\x1c\x95\xa1\xa7\xcb\x35\xe6\x71\x0d\x9f\x5e\xf9\x2f\x97\x0a\x4b\xc3\x60\xdd\xd6\xb5\xe3\x56\x12\xf1\xac\x2d\xb7\xbd\x88\x04\xe8\x6c\x34\x01\x73\x3a\xa6\xcc\x62\x76\x12\x6f\xef\x75\x15\x5f\xf4\x19\xf3\x38\xd2\x78\xc4\x1f\x23\x95\x6b\x66\xca\xd3\xd7\x9e\xdd\xc0\x50\xb4\xcd\xa1\xf5\xa7\xc7\x7e\xd8\x72\xaf\xdd\x79\xb9\xd3\x5f\x2d\x33\x85\xdc\x84\xfa\xa2\x9b\xa8\x16\xe3\x52\x17\xc7\x86\xae\x4c\x36\x8b\x3e\xfb\x9d\xc2\x55\xcd\x45\xe0\xc1\x6f\xb0\xe1\xb4\x35\x36\x95\x17\xac\x16\x8a\x35\x34\x91\xaf\xef\xe1\x0e\x5a\xdf\x18\x36\xc7\x95\xaa\x8e\xd7\x67\x0d\xaa\x8b\xfc\x09\x61\xc9\x17\x53\xdd\xcc\xd4\x93\x0b\x46\xda\x41\xd8\x24\x11\x15\x12\x88\xcc\x93\xa9\x01\xf4\xd4\xec\xbc\x33\x60\x4f\xc1\x86\x44\x61\x76\xdd\xb0\x25\x80\x7b\xf8\xac\x19\x14\x7d\x8c\x82\x17\x41\xcc\xa2\x10\x49\x17\x10\x82\x31\xb8\x17\x18\xb3\x2b\x08\x3c\xd8\xaf\x2d\x48\x7d\x03\x40\xf1\x9a\xfa\x71\x75\xb0\xe2\x7e\x6e\x01\x9a\xf7\xae\xa0\xc4\x97\x0c\x21\x00\x14\xaf\x1b\xc1\x0e\xf0\xc4\x5f\x07\x44\xdc\xe4\xce\xcd\x46\x36\x93\x55\x4f\xd7\xad\xf6\x1f\xdc\x8c\xfe\x60\xac\xf1\x79\x43\xea\x73\xd0\x9a\x87\x01\x42\x47\x50\xed\xd4\xe6\x59\x5a\x47\xa7\x44\x47\x28\xa3\x0f\x04\x7d\x05\x71\x4c\xdd\xeb\xfe\x57\x1d\xf4\x55\x98\xcb\xf1\xd5\x46\x07\xd0\x8e\xdb\x62\x8a\x83\x06\x12\x05\xf4\xc6\xc7\x0e\xf6\xaa\x74\x12\xed\x9e\xd9\x83\x88\x9a\xce\xa1\xfe\x32\xfa\x86\x32\x45\x04\x60\x64\x9b\xb8\x4f\x1f\x4e\x68\x1d\x23\x46\x2e\xa4\xb2\x66\xed\xd2\x01\x1b\x2d\xca\xae\x8f\x8e\xf7\x7d\xb4\x3e\xa5\x5b\xe3\x3e\xeb\xf6\xaa\xc9\x7f\x3b\x0e\x73\x5b\x7e\x1f\xac\x48\x27\xec\xfa\xda\x86\x05\x17\x93\x0d\xe7\xe5\x10\x1f\x5a\x37\xab\xc8\x8a\xe4\x16\xb3\x76\x53\x56\xc9\x3f\x6f\x8d\xdc\x5a\x04\x55\x76\xeb\x56\xc4\xc6\xd3\x36\x08\xbe\x07\x2a\x7b\x5e\x2a\xdb\x45\x3c\x71\x3c\xb8\xf5\x2f\xd0\x33\x23\xc7\x05\xcd\x38\x33\xa4\x56\x26\x3c\x83\x8f\xc0\xc1\x57\x57\xd5\x58\xd3\x13\x1a\xac\xc9\x6a\x57\xe8\xad\x71\xa7\x1b\x67\x64\x75\xac\xe5\xa1\x76\x95\x45\x2a\xe5\xd4\xe4\x0e\x29\x3a\x23\x1d\x04\x95\x79\x8b\x10\x00\x7b\x5e\x81\xdc\xe0\x8e\xb3\xe5\xf3\x4c\x27\x22\x99\xd2\xc7\xf5\x12\xa4\xd6\x95\xc6\x9b\x68\x64\x8b\xf8\x8b\xcb\xee\xa7\xde\xf9\xb0\x77\x79\xd7\xbf\xfb\x65\x58\x0d\xc5\x88\x1f\xdf\x9c\xfd\xd0\xff\xa9\x77\x1e\xbe\x70\xfb\xcb\xed\x5d\xef\xd3\xf0\x63\xef\xb2\x77\xd3\xbd\xeb\x9d\x2f\x35\xa5\x2e\xeb\xac\xae\x04\x85\x0d\xdd\xae\x51\xdf\x3c\x88\x9c\xb1\x43\x02\x40\x81\x16\xf7\x1f\xa9\xa4\x36\x49\xd7\x8a\xa8\xf7\x7d\x67\x1a\xad\xe9\xfd\x34\xc8\x9f\xe9\x18\x64\xb5\xa2\x13\x6a\xdd\x49\xa1\xf8\x6a\xa3\x2e\x58\x6a\x02\x35\x51\x50\x63\xf9\xb8\xa6\x13\xbb\x60\xa7\xa8\x6b\xa9\xa3\xae\x7d\xc6\x91\x16\x9e\x89\x30\xa3\x37\x21\x19\x7e\xe8\xe8\x08\x95\xd7\xf8\x14\x19\x40\xe8\xa0\x26\x86\x6f\x10\x44\x3e\x2c\x08\xfb\x4a\x21\xf2\x79\x9e\xd1\x84\xaa\x20\xf1\x86\x0b\xeb\x74\x30\x4e\x35\x88\xfe\x5a\x41\x5c\x3b\x8b\xd1\xd8\xb9\xce\x1f\xfa\x97\xab\xda\xbe\x3f\x51\x8a\xdb\xe4\xc5\x95\x28\xa3\x3b\x50\xec\x1b\x5c\xa9\x15\x40\xd4\x0d\x46\xf7\x1c\xe6\x81\x6a\x04\xbc\x4d\x9e\xb1\x81\x1e\xd8\x55\x32\x78\x32\x37\xe2\x66\x05\xb2\x97\x47\x8f\x44\xe7\x7a\x79\xf8\x48\x3b\x4a\x7d\xe5\x20\x90\x08\x7d\x7f\x67\x85\x88\x87\x6b\xba\xf1\x2b\x80\x9e\xec\xc1\xc0\x1c\x22\x41\x66\x5c\x69\x05\xcc\xf8\xc9\x3b\x5a\xa8\xa2\x38\xa3\xff\x00\x04\x18\x41\x8e\x83\xb8\x02\x48\xb0\x49\xc3\x80\x6a\x9b\x9d\x5d\x5f\x88\x35\x9a\xfa\x1e\x14\x25\x2e\x6a\xe9\x55\xca\x11\x3b\x03\xc0\x65\x63\xe9\x94\x57\xad\x78\x1b\xaf\xfa\x33\xae\xf6\x9a\x45\x60\xa3\x3e\x57\x17\x80\x85\x6a\xfc\x58\x36\x54\x7f\xad\xce\xb3\x51\x54\x7c\x81\x1a\xb0\xd5\x44\xf8\x12\xe9\xbf\x6e\xfd\xd7\xd2\x60\xf6\xa7\x08\xec\xca\x75\xdb\x5f\xa4\x83\x9a\x81\xb6\x28\xfe\xea\x7d\x3d\x50\x9f\x65\xbd\x6b\xd9\x85\xaa\x45\x0e\x1f\x7d\xa8\xfc\xfd\x5c\xaf\x65\x63\xf9\xb0\x75\x77\x77\x58\x3e\x34\x74\xb5\xea\x06\x3f\x8b\x1c\x4a\xa5\x65\xb3\x41\x74\x16\x4a\x0c\xb4\xe8\x95\xf7\x62\xef\x91\x30\xb5\x13\xa1\x12\x9a\xa8\xc9\x64\x6c\x67\x1a\x36\xe0\xed\xfd\xf3\x82\x23\xf9\x22\x62\x41\xf8\x86\x12\x18\x98\x33\x51\x4f\x84\x30\xe7\xce\x6f\xf2\x9c\xea\xa9\xb5\xdb\x1e\x78\xb5\xba\x2e\x2b\xa2\x7c\xed\x6a\x17\x45\x5c\x8a\x08\x3d\x9e\x40\xfe\xc0\x5a\x5a\x68\x24\x9d\x19\xd5\x33\xac\xef\x6b\x34\x8a\xf2\x9e\x9b\x3e\xa7\x58\x96\xbb\x5c\xb9\xe5\x1b\x24\xf2\x47\xcd\x7c\x24\x90\xe7\xb2\x93\xc2\x8a\x6b\xe4\x33\xc2\x40\xee\x45\x06\xd1\xa0\x4b\x4d\x0f\xa6\x80\x4c\x2e\xb2\xe2\x3a\xc6\x2d\x04\x2b\x33\x18\x7d\xd3\x93\xb9\x20\x50\xd2\xec\x14\x5d\x67\x44\x5f\x97\xb9\xbe\x32\xf3\x2c\x1b\xfa\xea\xee\xcb\xae\xf4\xb5\x80\x7a\x9e\x7d\x5e\x81\xc0\xb8\x64\x62\x0e\xf4\x67\xf9\xcc\x82\x35\xd8\x7d\x16\x6a\xb0\xbe\x60\xf7\x03\xeb\x4f\x2c\xfa\x83\xee\xb6\x30\x21\x80\xa0\xff\xe3\x50\x47\x91\xf4\x1f\xfa\xaa\x16\x44\x4e\x79\xb6\x74\x0a\x6b\x43\x29\xad\x33\x07\xb7\x94\xcf\x38\x09\x1b\x9d\x35\x6c\x0a\x11\x6d\x71\x19\x9d\x9b\x26\x6a\xaf\xc0\x65\x53\xf4\xc0\xbe\xde\x65\x6f\x21\xe8\x6c\xb8\x93\x1d\x1a\x38\xa2\x0a\xfb\x48\x08\x07\x53\xd8\x9b\x0b\x09\x74\x61\x1c\x66\xfe\xf3\xa0\x34\x9d\x8f\x6e\xa6\x4a\x22\xa9\x44\x9e\x00\x58\xe2\x94\x88\xb5\x00\x1a\x7d\x0c\x7c\xd1\x84\x1e\x70\x3d\x6b\xb3\x98\xbe\x20\xa7\xd8\x58\x0e\x19\x01\xd9\xd8\x2d\x36\x53\xae\x95\xa1\x9b\x19\xe8\xb6\x7e\x8b\xb8\x2a\xdd\xb3\xb9\x2f\x22\x6a\x89\x26\x70\x80\x46\x59\x1f\x1a\xc5\x02\x3c\x7b\xda\x03\x20\x23\x25\x20\x73\xb1\xf0\x50\x94\x2f\x79\x6b\x55\x5c\x95\x70\x11\xed\x4e\xab\xec\x8a\xe8\x0b\x7d\xee\xcf\xb7\x74\x71\xe8\xc9\x2c\x86\x90\xaf\xb6\x4d\x98\x43\x34\x7f\x63\x9e\x85\x36\x49\x8a\x4c\xfa\xa5\x01\x6e\xb4\x6b\xe7\x4d\xd3\xa6\x5e\xe3\x80\xdd\xe8\x51\x98\x2f\x0a\x57\x77\x51\x0b\x8d\x14\x55\x1b\xc6\x08\xdb\xaf\x60\xd1\x9b\x22\x8d\xe4\x30\x28\x05\xd9\x34\xb1\x1d\x94\x1c\x79\x6f\xde\x41\xe3\x0c\x4f\x1c\x68\x01\x94\x19\x1d\x17\x7a\x92\x16\xf6\x4c\xdd\x4e\x93\x40\x6b\x2e\x0f\xaa\x6c\x52\xac\x17\x95\x73\xe2\xe0\x23\xe1\x33\xcf\xbf\xea\x98\xab\xd3\xc4\x98\xb3\x80\xc8\x01\x0b\xfa\x58\x82\x36\x66\xb4\xa1\x0d\xc5\x7e\xd8\x67\x9a\x7a\xcf\x02\xfc\x93\xd5\xd7\x75\xb4\xd3\x9b\xe1\x39\xd8\xcf\xcc\x19\xe4\x63\x7f\xff\xdc\xd9\xd0\xe7\x63\x18\xf1\xff\xfc\xf7\x5f\x8f\xe9\x52\xdb\x68\x70\x28\x0b\x1f\x61\xe1\x08\x0a\xe2\xf0\x82\x6a\x95\x18\x2e\x0a\x54\x62\x81\xa5\x23\x15\xe0\xe7\x6c\x13\xaf\x34\xc5\xf2\xf9\x9c\xd2\xb5\x05\x07\x8c\x1d\x29\xe4\xea\xab\xdc\xd3\x66\x90\x26\xfb\x47\x93\x50\x2e\x89\x30\x24\xe8\x81\x16\x6a\x0a\x00\x41\x74\xd2\x0a\x2b\x3b\x99\x61\xba\x56\x94\xab\x7e\xbf\x1e\xbb\x28\x32\xb3\xe1\x09\x11\xc3\x34\x8f\xc2\x26\x57\xb5\x7d\xad\x3f\x3a\xcf\xd5\x62\x75\xfb\x32\xc3\xc9\xc3\x3a\x78\x51\xfa\xfd\x86\x66\x57\x8b\x32\x81\x73\x3b\x16\x67\x1a\xd0\x98\x48\x09\x8d\xc9\x46\x5b\x45\x7a\x26\xb0\x46\x06\x15\x9c\x02\x71\xd4\xf2\x4e\x83\x19\x09\x23\x87\x9a\x9e\x8e\xd9\x78\x14\xde\xf4\x78\xc0\x3e\x18\x18\x6b\x10\x95\xcd\x00\x12\xa8\xa1\x44\x3e\xcf\xb9\x24\x51\xbe\x42\x0d\xb2\xae\xcd\x28\xb2\xc3\xa8\x97\xa2\x4a\x15\xb4\xb6\x12\xa2\x5e\x1d\x57\xab\xba\xe1\xd5\x29\xd7\x53\xe0\x56\xf7\x74\x42\xe7\x54\xd3\xce\xb0\xf6\xa4\x3d\x5f\x6d\xd3\x22\x9a\x01\x10\x16\x54\xb6\xe8\x20\x3f\xbd\x12\x41\x64\xe4\x91\x08\x3c\xd1\x32\x16\xa6\x59\x88\x9f\x1c\x1b\x47\x1a\xd8\xc9\xaa\x03\x54\x24\x0b\x01\x5b\x40\x69\x79\x04\x71\x4a\x45\x1d\x2d\xc6\x41\xe9\x5b\xe7\x4f\xd4\xb9\x64\xd7\x90\x9b\xba\x21\x8e\xf4\x82\x28\x44\x3e\x2b\xc2\x8c\x33\xfb\xce\x65\x9e\x54\x03\x6f\x51\x7d\x90\x7e\xf3\xa5\xfe\xec\x15\x6f\xbb\x2e\xa3\xd0\xa5\xd6\xa4\xd2\xde\x30\xb6\x1e\xdb\x14\xb3\xd4\xe6\x4f\x15\x55\xdd\xcd\xec\x8c\xe5\xc2\x47\xc9\xda\x2c\xa0\x00\x80\xd3\xb4\x69\x90\x42\xe1\x22\x73\x92\xbc\x96\x25\xc1\xb1\xc8\x85\x16\xa9\x72\xa6\x68\xa6\x89\xc3\x8e\x41\xeb\x79\x39\xf3\x10\x38\x10\xd3\xd9\x84\xb2\x42\xa5\xa4\x6c\x32\xb4\x2b\xe9\x52\x81\xda\x5d\x0c\x31\x4d\x7d\x32\x4d\x99\x1f\xdf\xbb\x86\x96\x5b\x26\x0d\x59\xeb\xe9\xfb\x24\x24\x10\x05\x19\x77\x93\xb1\xd0\x25\x2e\x77\x69\x48\xd3\xa8\x48\x20\x4c\x74\x1d\xb5\x1a\x64\xb3\x6a\x5e\x6f\x71\x85\x48\x24\x21\x75\xca\xa4\x3e\x40\x8c\xaa\x6a\xc8\x9c\x92\x8d\x19\x53\x7d\xe6\x45\x34\x5b\x4e\xc1\x67\x7e\x96\x92\xaf\xb0\xeb\xce\x06\xe2\xe2\x2c\x1b\xe1\xe4\xc1\x8b\xc7\x5e\x49\xe4\xc2\xc1\xd1\x6a\xb1\x11\xea\x6d\x18\xe2\xd2\x03\x4d\x40\xba\x31\x89\xcd\x86\x98\x0c\xb2\x83\x1d\x76\xd1\xb9\x2d\xad\xc8\x4c\xb1\x3f\x50\x27\xcd\xe8\x4d\x54\x6f\x4a\xe6\x19\x5f\xcc\x1a\xee\xb3\x72\x62\xcb\x36\x3e\xea\xa6\xbc\x9a\x9d\x5e\x65\x25\xa6\xb7\xf6\x65\x56\x89\xc4\xdf\x01\xce\xc8\x1a\x5c\xf2\x63\xc6\x47\x60\x97\xb2\x7a\xa1\x8b\x2e\x0f\x82\x9c\xcb\xe7\x79\xdd\x98\xf7\xf2\x89\xa4\x72\x9e\xe1\xc5\xb2\x1e\x4c\xb4\xf5\xf3\xee\x9b\xc9\x68\x5d\x6d\xb6\x69\x1f\xa7\x58\xfb\xf9\xb3\x94\xb0\x74\x92\x80\xad\x65\x09\xfc\xcb\x9a\x3f\x88\xb3\x7f\x98\x3c\x97\xe3\xb9\xe0\x5a\x52\xe0\x03\xa6\xf0\xc4\xed\xae\x95\x2e\xf9\x13\x23\x42\x4e\xe9\x3c\x2a\xc4\xb3\x75\x64\xa4\x25\x69\xfb\x3f\x26\x0e\x70\x0d\xe6\xc9\xe7\x47\x26\x65\x5d\x13\x88\x9c\xe3\xa4\xb0\x57\x25\x19\x96\x92\x8e\x17\x41\xa6\xb9\x0f\x32\x83\xcc\x05\x5f\x84\x22\x2e\xe6\x52\xeb\xfa\x8b\x32\x9b\x77\x93\xf6\xb9\x7d\x5a\xcd\x7d\x7c\x0a\x69\x1a\x02\xfb\x40\x09\xd6\x0a\xb8\x40\xcb\x2a\xb1\xdb\x66\xdb\xd8\x91\xd9\x9c\x93\xdd\x0d\xcc\x65\x8c\x6f\x96\x3f\xba\x14\xac\xa2\xd9\xcc\x51\x08\xbb\x76\xd8\x56\xd1\xf2\xe9\xeb\xe1\x34\x60\x8e\xa9\xfd\xc2\xe7\x97\x44\xd9\xc8\x38\xc2\x68\x30\x6b\xa4\x95\x3f\x67\x74\xd4\xe7\xcb\xa7\xc7\x43\xca\x72\xd1\x41\x07\xc9\xad\x80\x63\xda\x93\xf6\x39\xc9\xc8\x4e\xa2\x26\x37\xa0\xf3\xb2\x77\x3b\xa0\xf0\xa5\x44\x54\x00\xf1\xae\x36\x93\xac\x4f\xe3\xe5\x51\x15\xd4\xbd\xb3\x41\x6d\x10\x61\xda\x80\x8c\x51\x3f\xf2\x9f\xcd\x40\x6d\x90\x69\x1d\x81\x69\xce\x99\xc2\xd6\xb7\x55\x0d\xeb\x20\xb6\x4c\x0b\xf6\xc4\x14\xdd\xb8\x7d\x74\x18\x26\x5e\xd8\x75\xd2\xd7\xfe\x1e\x83\x57\x0e\xc9\x6c\x18\xdd\x47\xd2\x26\x1e\x61\xe5\x11\xdd\x88\x9b\x36\x5d\x89\xed\x48\xc5\xfa\x12\x15\x47\x13\xa2\x4c\x3d\x52\x5f\x74\xf5\x0d\x92\xc9\xce\x62\xcc\x77\xba\x15\xf5\x4c\x60\xbd\x53\x7d\x4b\x94\x74\x37\x5e\x05\xd5\xcc\xee\xd4\x91\x4b\x97\x2d\x92\x4f\xf7\x77\x8b\xf6\xe3\x24\xdf\x58\xab\xca\xf3\x5d\xb0\xab\xe9\x65\x27\xf4\x01\x68\x2b\x18\x02\xec\x73\x0b\xd0\x0a\x87\x37\xf0\x19\x56\x54\xf9\x15\xde\x58\x3b\xbc\x56\x7e\xd8\xca\x72\x3e\xc7\xf6\xda\x68\xca\xd6\x9b\xfb\x9c\xa4\xb6\xee\x58\x76\xa1\xa3\x3c\xb3\x51\xc4\x52\xe3\x4a\xed\xfa\x10\x14\x81\x50\x93\xff\xb5\x70\x2c\xda\x2d\xdb\xe5\x21\xab\xc3\xe7\xde\x3e\x1f\x24\xe3\xc6\x3b\x30\x9c\x0b\x32\xa6\x9f\x37\x12\xc5\xaf\xe1\x53\xab\x5e\xea\x65\x2e\x21\x7e\x83\xb5\x03\x10\xc2\x0b\x6d\xdf\xad\xf4\x93\xa0\x4a\x11\x36\x60\x00\x6f\x2c\xff\x78\x7a\x72\x32\xca\x93\x07\xa2\x4e\x1e\xc8\x02\x71\x11\xfd\xb4\x29\x9a\xc8\xee\xd1\xc9\xcd\xbe\x4e\x95\x9a\xcb\xd3\x93\x93\x09\x55\xd3\x7c\x74\x9c\xf0\x99\x89\x37\xe2\x62\x62\xfe\x38\xa1\x52\xe6\x44\x9e\x7c\xff\xdd\x77\xc5\x16\x8f\x70\xf2\x30\x31\xf9\x99\x55\x2b\x4e\xb4\xe5\xb7\xd5\x0a\x3e\xeb\x23\xbe\x0a\xce\x86\xe4\xb3\x26\xd2\xba\x1a\xd1\x6d\xa1\x2f\x24\xea\xfe\x7c\x8b\xe4\x82\x29\xfc\xf9\x14\x7d\x32\x05\xbd\xd1\x0f\x3c\x17\x12\x9d\xe3\xc5\x11\x1f\x1f\xcd\x38\x53\x53\xf4\x09\xfe\x6b\x7f\x7a\x22\xe4\x01\xfd\x42\xb0\xb0\xfb\x6b\x04\x16\x0f\x1a\x0d\x5e\x08\x91\x33\x69\x2b\x85\x7f\xf7\x1f\xae\x54\xf8\x29\xfa\xf6\xe4\xbb\xff\x40\xbf\x87\xff\xff\xff\xa3\xdf\x37\x68\x6a\xeb\xe5\xfe\x16\x65\xdc\x6b\x5b\x83\x95\xda\xa0\x68\xd2\x99\xe0\xc5\x4e\xd5\xb6\xfc\x40\x93\x07\x3e\x1e\x0f\x15\x9d\x11\x13\x1c\x3a\xc4\xa2\x82\xe9\xb4\x21\x90\x0a\xb5\x25\x5e\x4c\x95\xcc\x02\x62\xd5\x76\x6a\x52\x3f\xdc\x71\x93\x79\x51\xe2\x02\x7c\x2a\x51\xd9\x10\x2a\xe1\x2b\x92\xea\x53\xb1\x8e\xff\xc4\x59\x67\xaa\x85\xe8\x8a\x54\xa9\xb0\x6c\x91\xf7\x83\x86\x4e\x7d\xbe\xaa\x84\x7a\x35\xda\xe0\x8b\x71\x21\xc3\xd4\x5e\xcb\x7d\x2c\x2b\x9d\xaf\xf6\x1c\xdf\x72\xb1\x95\xbc\xfc\x40\x2a\x21\x2c\x2d\xe1\x84\x5d\xb1\x8c\xb0\x80\x16\x64\x1d\x70\xe1\x01\x8d\x8c\x5e\x6b\x8b\x0e\xac\xb6\x42\x51\x61\x7c\x6d\xed\x0e\xbd\x9e\xfa\xb9\xff\x64\xd5\x30\xc1\xf1\xe6\xde\x2e\xe0\xd4\x61\xb4\xfa\x8a\xd3\x2c\xb1\x66\xc4\x35\xa8\x07\xab\x36\xf4\xd6\xec\x19\x91\xa6\x71\xf0\x02\x43\xf4\x1d\x73\x92\x89\x4d\x4a\xa9\xdd\x4f\xc8\x05\xdf\x05\x4c\x44\x05\xf2\x6f\x0b\x3e\x67\x4c\x65\x05\x8b\x70\xb0\x9b\x20\xb2\x05\xe5\x79\xb0\xe6\x1e\x1b\x22\x6b\x18\xd0\xdd\x0e\x12\x18\x1c\xa9\x6a\x8a\x99\x51\xa2\xc6\x38\xa1\x6c\xd2\x09\x40\x15\x20\x57\x26\xe4\x59\x75\x2b\x79\x87\xe5\xc3\x6e\x9d\x83\x5b\x17\x21\xa0\x69\x01\x84\x6d\x28\xd2\xfa\x0e\x69\x25\xa3\x5c\x61\xf9\xb0\xb3\x22\xed\x7a\x29\xda\x94\x67\x77\xb1\xf7\x24\x14\xda\x00\x61\x50\x2b\x57\x01\x0a\x95\x0b\x9f\x34\x05\x50\x69\x46\xd2\x32\x16\x47\x79\xfc\xab\x08\xc1\xa8\xc5\x81\x17\x0a\xa0\x1a\x66\x5a\xf1\x4b\x8d\x79\x96\x2d\xcc\x51\xd2\x37\x17\x96\x0f\xd2\x57\xc2\x40\x72\x86\xb3\xac\x83\x04\xc9\xa5\xbe\x7a\x3b\x48\x92\x6c\x7c\xe4\x50\x13\x53\x94\xf1\x09\x4d\x70\x86\x46\x19\x4f\x1e\xe4\x80\xe9\xab\x84\x4d\xcc\x0d\x38\x17\x3c\x21\x52\x06\x77\x6f\x11\x97\x6f\x83\x58\xa1\x0c\x86\x22\x62\x46\x19\x95\x8a\x26\xa5\xca\xd6\xc7\x03\x66\xca\xba\x68\x6d\x28\xe1\xa6\x78\x07\x0c\x57\xcb\x02\xc4\xe0\x38\xe4\xcc\x62\xd2\x02\x43\xb7\xe9\xd9\x2e\xaa\xa2\x89\x7a\x77\x90\x6d\xee\xb6\x67\xa8\xe2\xd3\xb0\x82\x9e\xcf\xec\x67\x70\x86\x96\x51\xcc\x4d\x4c\xce\x9e\x1a\x3c\x99\x7b\x10\x33\x47\x14\x45\xcc\x48\x74\xb7\xf9\x50\x8a\x3d\x4b\x7e\x85\x21\x37\xa4\xbc\xae\xa2\xe9\x33\x53\x2a\xdb\xc2\x20\x97\xfd\x62\xae\x04\xb6\x85\xba\xd7\x97\xc4\xa3\x26\x12\xb7\x3c\x7a\xed\xf5\x55\xd2\xf1\xf5\xab\xb1\xb4\x21\x23\x47\x1e\x63\x4f\xf3\x43\x83\x83\x08\x9d\x94\x8a\x21\x57\x29\x6a\x9f\x6a\x56\xfb\x4b\x7a\x5d\xb6\xb8\x52\x90\x58\xb3\x7e\xb5\x5b\xe9\x46\x3c\x92\x68\x6c\x31\xd9\x42\xa2\x69\xf3\xa0\x5a\xda\x2b\x44\x5d\x46\x87\xa1\x38\x78\xfa\x48\x8b\x6a\x44\xb6\xb7\xa5\xf6\x0c\x3d\xa3\x56\xc6\x8c\x90\x28\x36\x36\xd0\x95\xa6\x52\xc9\x8c\xa2\xa6\x50\x97\xad\xf3\xaf\xa5\xda\x3c\x49\x08\x49\x6b\x83\x0b\xf4\x88\xf6\x0e\x6f\xe3\x1a\xab\xa9\x49\xb2\x99\x71\x65\x8a\x61\x18\xbc\x0d\x67\x68\x31\x00\x0d\xa3\x8c\x8f\xe0\x42\x02\x28\x0e\x97\x6e\x11\x84\x4b\x9b\x79\x93\x14\x7d\x1d\xdc\x2f\x3e\x01\xec\x9b\x7a\x60\x88\x68\x45\xf6\x00\x86\xa3\x6c\xe1\x69\x04\xe3\x88\xd1\xde\x8f\xd1\x75\x29\x6b\x31\x58\x99\x31\xd6\xd7\xc6\xd2\x0c\xd8\x57\x82\xee\x28\x4d\xe2\xf9\x76\x68\x4d\xe8\x8e\xa8\xcf\x1d\x40\x77\x94\xe6\xd9\x10\x93\xc5\x27\xcf\x9a\x4b\xa2\x27\x75\xc1\xdb\x07\xf8\x9a\xec\x79\x23\xe2\x45\x24\xe8\x0e\xe4\xa2\x8e\x10\xf7\x0b\x96\xa4\x54\x13\xe1\x75\x61\x49\x4a\x83\xd9\x67\x58\x92\xd2\x50\xf7\x17\x96\xa4\x66\xa0\x2d\x60\x49\x8c\x97\x79\xa8\x89\xba\x1d\x53\x80\x78\xc5\x51\x3e\xbe\x85\x7b\x77\xe9\x18\x6d\xe1\x5d\x73\x8d\x39\x51\xd2\xa2\x74\xc1\x68\x6d\x6c\x7b\x53\x5c\x0e\x96\x5b\xd1\x9e\x77\x03\x51\x69\xb4\xf8\x79\x86\x59\x7c\x75\x40\x61\x43\x41\x12\x4d\x7e\x86\x51\x15\x15\xdf\x3b\xd6\xba\xa4\x47\x61\x0c\xaa\x09\x9e\xdb\x5c\xa1\x26\xf0\xdc\xfd\xc9\x8a\x58\x0f\xf1\x05\x80\x39\x22\x56\xdf\x2a\xad\xfe\x53\x09\x7f\x72\xca\x9f\xac\xe4\x08\xe4\x67\x6b\x55\xaf\xa9\xcc\x84\x98\x31\x25\x9a\x6e\x89\x19\x13\x4d\xe4\x80\x19\x53\xbf\xc1\x7b\x8b\x19\x53\xda\xf3\x76\x98\x31\x75\x5b\xbe\x01\x66\x4c\xd4\xcc\x17\x83\x19\x53\x5a\xd1\x2f\x06\x33\xa6\x34\xaf\x03\x66\xcc\x17\x82\x19\xb3\x9a\x8f\xd4\xa2\xa2\xd4\x1f\xde\xf5\x50\x51\x6a\x45\xf8\x66\x16\xb1\x6d\x42\x2f\x08\x0c\x2f\x8c\x8a\x12\x4d\xe0\x10\x00\xb4\x7e\x00\x50\x2d\xf1\xd9\xbe\xa1\x0e\xb8\x8d\x0a\x2a\x5f\x64\x2d\x71\x51\xa2\xfd\x69\x6d\x5d\xdb\x05\x25\x3e\x6f\xc8\x19\x18\xf9\xdb\x6a\xdc\xdd\x68\x15\xa5\x45\x53\xd2\x92\x91\x43\x07\x30\xc2\x79\xe8\xe0\x3c\x50\xee\x06\xa1\x6b\xa5\xe5\xf5\x6e\x01\x43\x8b\xbb\xb4\xff\xd6\x94\xad\xdb\x82\x5e\x5d\x76\xcf\x9a\xf6\x77\x37\x08\xb0\xc3\xd7\xdb\x9e\xa0\x92\xe5\x6e\x9a\x5d\x75\x91\xf9\xdc\xe7\xa8\xb0\xa6\x4f\x5c\x2a\x0a\x6b\x1a\xd9\xb8\x94\xaf\xa5\xd5\x7f\xfb\xe5\x84\x4a\x25\x1a\x83\x37\x2a\x23\xdc\xc6\xd3\x37\xcf\x37\xc9\xb2\x9c\x6c\xf6\xd9\x8c\xcc\xb8\x58\x15\x39\x52\xfb\xa5\x54\x5c\xe0\xc9\x2a\x45\xbc\x5e\xad\x9a\x4f\xc9\x4c\x0b\x41\xc3\x75\x1b\x69\xbb\xdf\x3e\xab\xcd\x26\x57\xd4\x54\x57\x0d\xfc\x78\xfa\xdd\xd4\x56\x4c\x6d\xbb\xdd\xdb\x6e\xb3\x2b\xcd\xba\x9e\xa1\xd8\xa1\x1a\x2d\xb7\x5c\xd9\x97\x22\x6f\x2d\xd0\x77\x6d\x3c\x80\x0f\xc7\xd8\xd0\xe3\xdf\x80\x3b\x53\xed\x10\x1c\x82\x92\x88\xa3\x50\x46\x8d\x9c\x70\xd5\x11\x44\xeb\xee\x74\x9b\x2d\x96\x3d\x17\x8d\x81\x69\x6d\x4c\x47\xa6\xdc\xb9\x56\x9c\x42\xe4\xfb\x32\x7d\x8f\x16\x35\x99\x2e\xed\x6c\x93\x94\xa9\x3f\xfd\xfb\x3a\x9e\x7a\x10\xf2\xed\xba\x8d\x69\x46\x10\x4e\x12\x22\x8d\x35\xcb\x06\x2e\x9a\x4a\x92\xb9\xc8\xb6\xd9\x55\x7d\x38\xf4\xbc\x35\xcb\xf4\x60\x4e\x69\x41\x3c\xe6\x02\x9e\x0a\x9e\x4f\xa6\xce\x9a\xa1\xa9\x50\x4f\xad\x6e\x2f\x7f\x32\x61\x26\xdb\xec\xe5\xfb\x9c\x66\x9b\xd9\x8a\x8a\xc8\x2e\x3d\xcc\x8f\xfd\x3b\x24\xa7\x9e\xfe\x47\xd0\x6c\xed\xc6\x56\x07\xdd\xbe\x4f\xfb\xad\xb7\x8c\x42\x37\x1d\x07\x60\x32\xe6\x59\x06\xb6\x3d\x49\x66\x8f\x4d\x95\x28\x61\xc2\x77\x74\xc3\x7a\x7b\xf0\x35\x78\x08\xa4\xc2\xb3\x79\x2b\x89\xe6\xda\x08\x5b\x12\xb9\xd1\x97\xdd\x83\x26\x70\x88\x33\xc2\xea\xac\x3d\x3f\x57\x81\x48\xdf\x58\xf8\x96\x0b\x27\xda\x59\x08\x97\x5b\x92\x17\x0e\xe3\xaa\x9b\xc7\x1a\x2c\x20\x8a\x6a\x2e\x78\xbc\xf3\x8f\x1b\x39\xbe\xab\xe7\x37\x60\xdd\x28\xfe\xd9\x95\xb8\x19\x2d\x8a\x00\x4a\x23\x12\x87\x9c\x04\xf0\x1b\xad\x9d\x40\x71\x6b\x3d\x00\xc1\xdd\x60\xef\x98\x00\x2f\x17\xc4\x05\xd1\x9f\x24\x3d\xc2\xc9\x22\xc9\x68\x12\xa8\x80\x13\x81\xe7\xd3\x3a\x76\x53\x2d\xd9\x7e\x40\x39\x58\x3a\xb2\x9d\xa3\x1c\x34\x81\x12\xaf\x13\xbd\xea\xe8\x0a\xaa\x7d\x1e\xd0\x17\x6a\xd0\x17\x3a\x3e\xbf\x98\x15\xf0\xca\xaf\x98\xb6\x5a\x3d\x77\x07\x08\x86\x57\x80\x60\xd8\xe4\xf0\x15\xf8\x0a\xd1\xb1\x3b\xc0\x42\xbc\x6b\x05\x0b\xe1\x2f\xc1\xbd\xca\xf4\x6f\x3e\x8f\xaf\x9c\x41\x5e\x1d\xd8\x6b\xc2\x40\xd4\x88\x0b\xeb\xc8\x4d\xcb\x70\x20\x96\xd1\x45\xab\x75\x79\x5d\x54\x86\xf5\x56\x66\x2d\xc0\x85\xda\xbb\x6b\x4f\xe0\x17\x9a\xb7\x61\x4f\xce\xcd\x2e\x73\x0c\xd6\xab\x1f\x11\xe6\x19\xac\xa3\xdd\xac\x97\x72\xe0\xe9\xe1\x6d\xa5\x1d\x14\x98\xea\x9b\xa5\x1e\x74\x9d\x4b\x95\x08\x34\xe5\x19\x00\xdd\x47\xab\xe5\x3b\xf0\x01\xaf\x7e\x81\xdc\x66\xdc\xce\x49\x62\xb4\xad\x6a\x61\xdb\xa5\x24\xf5\xd6\x93\x0c\x02\xf9\x77\xb7\x89\x06\xe1\xca\x6e\x9a\x6c\xb0\x62\x70\xcb\x44\x8f\x0d\x13\x0e\x82\x1e\x97\x3a\x9d\xdc\xec\x5a\x39\x9e\xca\xc4\xb2\x41\x4c\x50\x05\x78\x7e\x7b\x30\x86\x19\xfe\x3c\x9c\x63\x81\xb3\x8c\x64\x54\xce\x9a\xce\x3c\x65\x8a\x4c\xca\x94\x16\x19\x63\xff\xf8\xfd\xf2\x00\xcc\xd8\xfb\xe8\x6a\x1e\x83\xff\x31\x9f\x8d\x0c\x29\xba\x81\xd8\x02\x0d\x8a\x23\x91\xb3\x10\x4a\xc6\x6f\x0c\x02\xdc\x5c\x53\x44\x79\x9c\x43\x74\x0e\x4e\xa6\x50\x0d\x64\x8c\xa9\x60\x44\xca\x35\x0b\x59\xcb\x58\x4f\x34\x37\x30\xfd\x47\x24\xa1\x1e\x45\x71\xc2\x49\x90\x31\x0d\xe1\x1b\x0e\x43\x76\x19\xab\x38\x04\x03\x56\x83\x01\xeb\xd7\x66\x1f\x03\x02\x8b\x5a\xea\x6b\x06\x05\x36\x6d\xff\x2e\x98\xc0\x0e\x83\x03\x5f\x39\x8a\xee\x79\x02\xe8\x5e\x37\xe2\xf1\x39\x82\x1d\x0f\x21\x81\x6f\x2f\x24\xb0\xf9\xd8\xae\x15\x16\xb8\x02\x02\xc0\xf5\xb2\x6d\x0c\x96\x4f\x4b\x7f\xd6\x38\x2c\xef\xf5\x0a\xbe\x68\x19\x8b\x55\xe4\xcd\x1f\xe2\xb1\x9e\x29\x1e\xab\x66\x89\xd7\x8b\xc9\xda\x48\x3c\x7e\xf9\x70\x91\x72\x21\xac\xe7\x0c\x19\x59\xe1\x25\x95\xf9\x68\xf8\xec\x47\xaf\x76\xce\x6d\x4f\xe0\xcf\x9e\x28\x8c\x48\x24\x34\x9d\x8d\x48\x9a\x82\x09\x46\x71\x5b\x14\xa2\xa0\x1d\x46\x0c\x7d\x6b\xe6\x8b\xa5\x26\x76\x9c\x71\x36\x91\x34\x25\x41\xe9\xb9\x42\xb2\x32\x49\x59\x03\x06\xfb\x9b\x65\x44\x38\x0d\x5e\xa0\xaf\x25\x65\x09\x09\xb5\x7a\x81\x52\x4e\x24\xfb\x4a\x0b\x60\x8f\x04\x61\xb6\x40\x0f\x8c\x3f\x65\x24\x9d\xc0\x0e\x95\x07\x73\x84\x28\xe9\x20\xaa\xfc\x67\x82\x60\x93\xb2\x3a\xd0\x63\x07\xbf\xac\x11\x01\x89\xfd\x36\x28\x7f\xe2\x9b\xf9\xe6\x18\xa1\x3e\x43\x63\x9c\xa8\x0e\x92\xf9\xa8\x68\x3f\xe5\xa6\x9e\xc5\x23\x61\xe1\xc4\x8b\x46\x9e\x2d\x5c\xa8\x36\x3c\xa8\x44\x6d\xee\xbc\x69\x02\xe8\x66\x14\x6f\xe5\xd9\x7d\xc4\xdb\xc0\xeb\x7c\xca\xa5\x75\x01\x20\xce\xfc\x61\xb2\x39\xac\x1e\x51\x0c\x50\xfd\x0d\x3a\xd7\x92\x22\x83\xb8\x34\x95\x75\xc7\x52\xb8\xe1\x6d\x31\x01\x6b\x26\x81\x76\xcd\x72\xa7\xfc\x89\x49\x25\x08\x9e\x59\xd5\x54\x33\x6f\x70\xe1\x18\x27\xbc\x1e\x3d\x15\xe6\xd2\x5e\x67\x8b\x2f\x28\x7b\xd0\xbb\x5b\x60\xa8\x41\x71\x16\xe8\xb9\x66\xd3\xde\x53\x86\xa3\x18\xc4\x0d\x76\x2d\xcb\xd7\x0a\x8a\x09\xca\x30\x2e\x9a\xe0\xeb\x14\x5e\x85\x28\xb7\x8e\x19\x4f\x42\x45\x1a\x34\x82\x82\x69\x9a\xd5\x99\x02\x14\x18\x29\x0c\xb0\x89\x53\x92\xcd\x83\xa2\x0e\x73\x2c\x94\xaf\x63\x69\x10\x95\x34\x77\x98\xe5\x0c\x60\xb0\xac\x86\xf8\x64\x81\x73\xac\x1d\xa1\x68\xfc\x78\xc0\xfa\xea\x2b\x28\x8c\xcb\xd9\x24\x5b\x20\x9c\x3e\x52\x59\xe0\xd9\x25\x9c\xc9\x7c\x46\x44\xa9\x58\x92\x71\x32\x23\xec\x68\x45\x8f\x4d\xcb\x6a\x8f\x38\xa3\xa9\x2b\xde\xa7\x7f\x1c\x91\xb1\xbe\xf7\xe6\x58\x48\x67\x91\xac\xb1\x26\xda\xcd\x4d\xf5\x5a\xbd\xda\x99\xfc\x29\x3c\x76\x68\x56\x9c\x50\x6c\x75\x97\x93\xf2\xf9\x0c\xca\x4f\x36\x05\xf8\x55\x26\x85\x96\x5f\x4c\x76\x15\xce\x57\xe5\x7b\x3a\xcc\x81\xdc\x78\x8f\x74\x3f\x4e\x06\x32\x83\x5b\xcb\xfc\x53\x9a\xa0\x1d\xb5\x31\x06\x86\x67\x93\x50\xb8\x14\xa4\xc2\x8a\x26\xae\x94\xa6\x2f\x61\x6c\xbe\x6e\xde\xda\x6d\x6b\xc4\xca\x04\x67\xd5\x1d\x6e\x5e\xcb\x5b\xf3\xfe\x72\xde\x67\x8f\x9b\x69\x7b\x69\xb0\x66\xc2\xb3\x6c\x1d\xb4\xba\xd2\xcc\xcf\x8a\xcf\x97\x8f\xa8\xe8\x47\x6f\x80\xdb\x0b\x38\x35\xc6\xec\x87\x33\x2b\x59\x48\x65\x77\x29\x7c\xc9\xf0\xd0\x85\x35\x2b\x0e\x18\x1f\x03\x9e\x61\xd6\x54\x8c\x75\x2e\xf8\x8c\xae\x83\x43\x61\xb0\x70\x6f\x9c\x03\x7f\x85\xeb\xc6\xb9\xf9\xa1\xe8\x96\x21\x2f\xdb\x23\x84\x7a\x61\x66\xe4\x8c\x25\x67\x68\x86\x2b\x25\x81\x5b\x2d\xf8\x2a\x2d\xb9\x8b\x66\xc6\x44\x61\x57\x4f\x9a\xca\x6e\x0f\x64\x01\x69\xea\xd9\x13\x5e\x14\x21\xad\xeb\x1c\xa7\x22\x68\xd4\x9e\x17\xec\xa8\x2c\x38\x31\x3e\x00\xc2\xec\x97\x59\x85\x36\x27\xe8\xac\x8e\x0c\xd7\x3e\x4b\x6e\xce\xcf\x29\x64\x87\xc7\x3e\x94\xaf\xd7\xb9\x0d\xe3\xc3\x10\xb4\x88\x60\x38\xcb\x97\xea\x53\x44\x39\x3b\x5f\xa3\x52\x3b\xc8\xe8\x72\xce\x73\x76\x5d\xdf\xea\x0b\xac\x99\x25\xeb\x56\x8b\xb5\x65\x94\xfc\x7a\xd8\x06\xae\x47\x8f\x68\x50\x7b\xde\x57\x03\x37\xad\xa3\x43\x8c\xb5\xec\x62\x6b\xfe\x79\xc0\x69\x1b\x8f\x34\xa6\x19\x91\xc7\xa8\x5f\xa3\x4f\xb8\x68\x20\x90\xaa\x00\xf7\x09\xfc\xa2\x4e\xde\xc9\x05\x0d\x50\xb7\x9d\x54\x83\xa8\xad\x8c\x5b\x58\x29\x04\xd1\x63\x4e\x8c\x97\x84\x33\xc0\x65\x00\x57\xa4\xa0\xa6\x30\xa4\x16\x2f\x15\x18\xdc\x34\x2f\xa0\x36\xb5\xc8\x14\x2b\xf7\x1f\x68\x19\x5b\x11\x81\x6d\x61\x81\x62\x54\x0d\x5b\xba\x0b\x34\xd1\xf6\xc1\x56\xae\xd7\x3b\xfd\x45\x75\x6f\x6a\x47\x78\x17\xb7\xbe\xf6\xe8\xbc\x5c\xbe\xbe\xcb\xe7\x03\x7c\xea\xec\x4f\x18\x8d\x05\x01\x13\xe5\xcc\x67\x2f\xb0\x94\x08\xa9\x38\x87\x1b\xea\xf6\xfc\xc7\x93\xfb\x3e\x22\x2a\x81\xba\x69\x03\x96\xc8\xc7\x8e\x16\x68\xff\x9e\x13\xa5\x7f\x6e\x88\xee\xa3\x33\xc2\x24\x70\x02\xda\xb6\x68\xb4\x5b\x18\xfd\xbf\xe7\xf1\xf7\x4b\x48\xbe\x12\x2b\x0a\xb4\xeb\x0b\x78\x6a\x32\x05\x98\x32\xb3\xb4\xb2\x86\x62\x4c\xf1\xf8\x5e\x1d\x54\xf9\x06\xb1\x21\xec\x6f\x39\x5b\x53\x4c\x3a\x2b\x3e\x0a\x46\xd1\x20\x85\xcd\xe6\x58\xd0\x1a\x3c\x9a\xe5\x41\x27\xe6\x9b\xda\xd6\x57\x31\x91\x22\x06\xd7\x96\xe2\x47\x05\xaa\x3b\x52\x82\x10\x60\x21\x9e\x9e\xec\x5d\x6f\x73\x1e\xfc\xc4\x82\x8f\x8e\x07\xec\x93\x33\x99\x16\xbf\xfa\x1a\xa3\x26\x90\x89\xa4\x28\x07\x9d\x29\x6e\x05\x9a\x4d\xa9\xf4\x3f\x00\x48\x9d\xcc\x33\x65\xe0\x86\xc7\x50\xfc\xde\x0d\xd4\x3c\xa9\xe3\x12\x02\xb3\x64\x7a\xc9\xb7\xab\x3d\x4c\xc7\x43\x92\xad\x23\x3b\xf6\xc7\xbd\x4c\x6a\xfa\x4e\x1e\x1a\x4e\xe7\x26\x80\xda\xc5\x64\x40\x72\x73\x90\xab\x46\x2b\x31\x76\xba\xcc\x80\x17\x13\x04\x46\xb6\x72\xa8\x90\xc9\x06\xd0\xbb\x68\x65\x6b\x63\x63\x33\x3e\x7a\x67\x96\x1b\x41\x2f\x08\xab\x01\x13\x39\x03\x00\x2d\x6f\x72\xc7\x48\x12\x41\x8d\xed\x3b\xe1\xcc\xc8\x00\xd6\x78\x32\xd1\x6c\x42\x4b\x7e\xe0\x77\xe1\x0c\x34\x2a\x9e\x4b\x70\xf7\xcf\x88\xd2\x17\xd4\xd7\x00\xd2\x6f\x9c\x1e\x1d\x34\x17\x74\x46\x15\x7d\x24\xf2\x9b\x9a\xad\x3b\xc3\x0a\x67\x7c\xd2\x15\x8a\x8e\x71\xa2\xee\xf0\x56\x3a\x33\xb6\xcd\x6c\xea\x40\x77\xc3\x40\xfd\x73\xbd\xf8\x13\xc2\x88\x80\x89\x42\xe9\xd3\xda\x23\xbc\x6e\x51\xd4\x82\x73\x03\x64\x70\x62\x40\x56\xa5\xb7\x31\xe0\x5c\xf1\x99\xd6\x48\x71\x96\x2d\x00\x3c\x55\x3f\x99\x62\x39\x75\x1b\x6d\x10\x57\xdb\xdc\x4d\x76\x71\xcf\x70\x32\x25\xb7\x50\xeb\xbe\x6e\x71\x4b\xa3\x7c\x47\x58\x3e\x7b\x77\x8a\xfe\xa7\x98\xe3\x59\xf7\xec\x87\xde\xf0\xbc\x7f\xdb\x7d\x7f\xd1\x3b\x0f\xe6\x63\x9f\x7c\xea\xdf\xde\x56\x7f\xfd\xa1\x7f\x57\xfd\xf1\xfa\xea\xfa\xfe\xa2\x7b\x57\xd7\xca\xc5\xd5\xd5\x8f\xf7\xd7\xc3\x0f\xdd\xfe\xc5\xfd\x4d\xaf\xe6\xd3\xfb\x3b\xff\xd0\x3e\xfb\x6b\x70\x88\x20\xde\x03\xa2\x53\xea\x47\x5b\x3e\x67\x47\x28\x7e\xf1\x14\xdd\x5b\xef\x0d\xb5\xa8\xeb\x2e\x68\xc2\xe4\x26\x3c\x61\xa9\x59\x15\x14\x37\x1e\x30\xe4\x3e\xd7\x73\x6f\xfa\xd4\xb8\x95\x92\x29\x41\x19\xe7\x0f\xf9\xdc\x72\x30\x13\xe0\xc8\xb8\xb1\xc8\x10\x19\xb4\xf6\x43\xff\xee\xd4\x7b\x91\xaa\x8d\x05\x29\x88\x8e\xd4\x61\x5c\xd8\x71\x4d\x30\x72\xcc\x05\x79\x84\x33\xe9\xbd\x8b\x41\x0f\x7e\x03\x96\xf5\x63\x5a\xc3\x4c\x95\xba\x49\x53\x5b\x78\xc1\x4d\x2c\x68\x38\xde\xbe\x65\xab\xe9\x97\xc3\xc0\x66\xa2\x11\x49\x70\x6e\x9c\x6f\xfa\x3a\x12\x82\x8b\x70\xc0\xc5\xb6\x6f\xd9\xe8\xbb\xaa\x94\x11\x03\xec\x4b\x38\x23\xfa\x93\xe0\xe4\x68\x7d\x19\x74\x69\x07\xd9\x36\xb5\xd0\x9a\xae\xde\x75\xe1\x31\x01\xa8\x18\xcd\xb9\x3d\x80\x19\x05\x6f\x1e\x56\xe8\x89\x40\x94\x6b\x6e\x31\x2b\x8d\x86\xac\x4f\x20\x74\x67\xec\xd0\x0e\x28\x39\x8a\x7e\x6d\x64\x99\xbb\x10\x8b\xf5\xf7\x92\xd4\xb1\xcb\x2d\x42\x15\xcf\x4d\xa3\xc0\x43\x9d\x6b\x15\x46\xdc\x60\xf1\x77\x3c\xbb\xc6\xf2\xbc\x44\x0a\xaa\xde\x1b\x2b\x58\xba\x66\xae\x6d\xc6\xe3\xd2\x33\x22\x08\x9d\xf5\xf2\xd5\x7d\x58\xc0\xca\xb5\xba\xe3\x29\x5e\x68\xe2\x80\x98\x06\x99\xcf\xe7\x5c\x28\xd4\xd0\x06\x82\x93\x6e\xc6\x07\x37\x83\x9d\x87\x67\x51\xd0\x88\x96\x03\x64\x0d\xca\x5d\xbb\x88\x75\xbb\xae\xc5\xb9\x0f\x53\x5f\x41\x5d\xf3\x88\x8b\xb3\x48\xf1\x8d\x28\xb4\x4e\x44\xdd\x26\x92\x69\xae\xaf\xe1\xb6\x00\xc0\x75\xbd\x5f\xb9\x16\x6a\xb7\x3c\x23\x63\x35\xac\xf5\xa6\x2c\x31\x1c\xea\x16\x59\x53\x92\x0f\x9d\x4c\x77\xd0\x62\x7b\x59\xfe\x7b\xeb\xed\xd2\x02\x7c\xa0\xc7\x0b\xce\x95\x91\x22\x0b\x4d\x03\xb9\xd5\x04\x23\x80\xed\xd4\x54\x2c\x28\x44\x35\x2d\x99\x3f\x30\xfe\xc4\xbc\xc5\x5c\x1e\x0f\x58\x0f\x43\x19\x0d\xaf\x2e\xd8\x80\x05\x23\xab\xaf\x94\xd2\x23\x54\xfe\x3d\xc1\x90\x28\xe8\xde\x96\x1c\xca\x16\xa8\xa8\xbc\x10\x7d\xd7\xe6\xf4\x18\x6b\xb2\x13\xd4\xcc\x84\x2d\x66\xb8\x22\x73\x6b\xf1\x36\xf3\x2c\xc2\xb9\xc1\x69\xaa\xbb\x3a\x46\x3f\x3b\xfb\x0c\xc4\x57\x14\x15\x43\x94\xb9\x71\x32\xbc\x70\x49\xf2\x75\x0b\xbb\x8b\xbc\xf3\x5d\x47\x5c\x2c\x5f\x60\x9f\x63\x57\xb3\xca\x91\x9a\xcc\x98\xb1\x9b\xae\x11\x5e\x76\xe6\x3f\xba\x25\xcb\xe3\x4f\x3f\x00\x00\xb8\x22\x42\x2b\x9b\x20\x33\xb0\x6c\xf1\xbf\xcc\x66\x41\xbe\xb9\x8d\x4d\x4e\x1d\x20\xb3\xf5\x4c\xea\xf3\x03\x9e\x35\x2d\x06\x8c\x00\x88\x22\x03\x39\xe0\x18\x75\xa1\x7e\x06\x54\x46\xd0\x57\xa1\x8b\xe2\xa1\x13\xc6\x57\x05\x0e\x34\x10\x53\x12\x10\xd3\x6d\x33\x31\x49\xa0\xa6\x22\xb4\x7a\x37\x14\xb5\x83\x34\x1b\xcd\x5b\x70\x15\x73\xa7\x7d\x72\xcd\x1a\x2a\xf6\x6b\x04\xe1\x54\x86\x1b\x7c\xf8\xaf\xfa\xa1\x7f\xcc\xb1\xc0\x4c\x41\x68\x89\x95\xbc\x05\x09\x42\x1c\xc9\x67\x08\xde\x62\xc6\x5c\x0b\x3f\x85\x9b\xeb\x5c\xe9\x13\xfa\x48\x18\xa2\x69\x07\xd1\x63\x72\xdc\xb1\x45\xf0\x64\x3e\x2a\xde\x9c\x6a\xc9\x61\xc0\x2a\x29\x23\xc7\xa8\x9b\x49\x6e\xbf\x20\x2c\xc9\xa0\x5e\x4d\x10\x05\xe3\x29\xdf\x3a\x7f\x46\x0b\xd0\x2f\x60\x2b\x8b\xe6\xb9\x7d\x10\x7c\x38\x60\x58\x1a\x5f\x73\x06\x27\xbd\xf8\xbd\xae\x26\x55\x14\x7f\xf0\x8c\x80\x71\x95\x6b\xe8\xd9\x36\xc9\x80\x15\x2f\xdb\x20\x78\x03\x36\xa6\x48\xe5\x09\x92\x62\xd0\xd7\x58\xa1\x8c\x60\xa9\xd0\x77\xdf\xac\x15\x73\xe1\x26\x58\x70\x57\x7b\x7c\x8b\x80\x54\x17\xd1\xd6\x54\x58\x0f\xc0\xe4\x6d\x25\x60\x2f\x40\x76\xf4\x3e\x2b\x8e\x1e\xa9\xcc\xa1\x04\x50\x10\x43\x6f\x8a\xb8\x50\x25\x5d\x50\xa0\x51\x99\x1a\xf8\x88\x83\x7f\xb1\x6e\x49\x3b\xac\x1a\xca\xb2\xca\x13\x35\xea\x19\x64\x49\x16\xb1\x65\x53\xac\x06\xcc\x72\x56\x17\x8e\x11\x94\x6b\xe8\x66\x59\x1c\xcf\x85\x21\x64\x91\xe9\x09\x43\x01\xa3\x63\xbf\x40\x97\xa0\x7e\xf9\x10\xa0\xb8\x98\xa1\x3f\x2c\x5a\x53\x1b\x30\x9f\x82\x16\xb6\x5d\x2b\xed\xd4\x59\x81\x5f\x50\x08\xae\xe9\xfe\xc2\x54\x92\x6a\x21\x0c\x37\x57\xfa\x5c\xe2\x35\xa9\x58\xde\x97\xc8\xc6\xbb\xee\xa0\xbd\xa8\x5c\x6f\xc5\x86\x6b\xf6\x89\xd7\x18\xc5\x1b\x36\x37\x90\x2d\xb6\x51\xc0\x7d\x2c\xda\x4b\xf9\x65\xa3\xa1\xf7\x53\x88\x2d\x5f\xcd\x05\x8b\x58\x6d\xc7\x3a\xc0\x1c\x4d\xd3\x20\x74\x34\x88\xab\x83\xd0\x62\xc7\xf8\xec\x9b\x0d\xfe\xd1\xf9\xdb\x9e\x7e\xa7\x98\xbf\x9b\x8a\x0f\x2e\xab\x4e\xbc\x59\xd8\xeb\xa6\x7f\xc3\x09\x61\xc9\xc2\xf4\xe4\xe0\xb2\xaa\x39\x72\x0e\x59\x08\x83\xc9\xbd\x56\x3c\xb4\x45\xe1\x8e\x51\x0f\x2e\x1a\x57\x23\x0e\x8f\x9d\xdb\x20\x78\x79\xc0\xb4\x66\xa2\xef\x78\x69\x06\xed\xda\x8f\x49\xbc\xee\x04\x98\xfc\xdc\xad\x3c\x2e\xb3\xd5\x28\x88\x4d\xda\x84\x4b\x0f\x86\x36\x00\xe6\x0d\xf5\x26\xa7\x28\xe5\xc9\x03\x11\x27\x82\xa4\x54\x9e\x82\x07\x5c\x35\xba\xde\x66\x5a\xdb\xde\x5a\xd2\x68\x5b\xaf\xb5\x5a\x5d\x6d\x06\x85\xcf\x20\xa8\xd8\x95\x34\xe8\x20\x3a\x06\x75\xc2\xe5\x17\x98\xa4\x03\x6b\xdd\x46\x84\x29\xb1\x98\x73\xca\x94\x37\x65\x95\x16\xc2\x69\x1a\x5a\x68\x6b\x0a\xb1\x15\xbb\x88\x94\xd9\x70\xda\x77\x53\x22\x89\x0b\x0b\x30\x93\x52\x1c\x19\x5f\x88\x61\x17\x73\xac\xa6\x12\x32\x24\xe2\x35\xb0\x4a\x17\x7c\xaa\x57\x08\xcf\x21\xaa\xc0\x58\x29\x8a\x8f\x7c\x1c\xbf\x54\x34\xcb\x06\x8c\x11\x92\x4a\x04\xc9\x0c\x5f\xd5\x66\xe2\xe8\x4f\x3b\x08\xa7\x29\xfa\xdf\x5f\x7f\xb8\xf8\xe5\xae\x37\xec\x5f\x82\xcd\xb9\x7f\xd1\xfb\xa6\xe3\x7f\xbc\xba\xbf\xf3\xbf\x1a\x0b\xcb\x23\x11\x68\x86\x1f\x40\xc5\x63\xd2\xc8\x7f\x10\xed\x1e\x8e\xd4\xe5\x28\xe9\x27\x92\xb8\x08\x52\x2b\xa6\xf8\xac\x76\xbb\x87\x8d\x15\x4b\x8c\xcd\x6f\x0d\xe5\xf7\xc6\x7f\xb2\x9c\x06\x1d\xf1\xf8\x2e\x9c\x18\x38\x23\x4c\x69\x1e\x63\xad\x7d\x85\xee\x5b\x10\x1c\x61\x13\xca\x9a\xe2\xdc\x08\x7b\x7c\x4e\x21\xfe\x47\xb2\xf8\x49\xab\xd7\xd7\x98\x8a\xd6\xb4\xd7\x63\x8f\x54\x70\x06\x53\xf3\x66\xad\xa2\xa6\x35\x51\xce\xdb\x16\x1c\x2a\x69\x64\x61\x88\xa4\x98\x37\xc6\x52\x96\x12\xb7\xf7\x63\xba\x5d\xe3\xfd\x25\x9f\x95\x70\xd9\x70\xd2\xb2\x1b\xfc\x88\x69\x06\x71\xb0\xee\xa2\x29\x68\x70\xc0\xee\xae\xce\xaf\x4e\x11\xc9\xf0\x88\x0b\xc8\x8e\x31\x81\x3b\xae\x09\xbb\x60\x50\x2b\xd4\x37\x14\x65\x42\x76\xd0\xbc\xc8\x84\x0c\x8d\x68\xc7\xa6\x8d\x55\xa5\xc4\xb8\xa8\xe6\x11\xee\x56\x05\xb4\x93\xbd\xe6\xa2\xcd\xf5\xaf\x5f\x83\xa5\xe3\x73\xad\xc8\x95\x38\xaf\xbd\x9b\xc7\x04\x9b\x2a\x3e\xc6\x2d\x64\x6d\xf9\x36\x30\x34\xcb\x22\xc4\x76\x7d\x70\xe4\xb1\x75\x94\x17\x6f\x72\x86\x7e\xfc\xb3\x44\xa3\x5c\x0d\x58\xdc\x06\x67\x50\x38\xff\x3d\x56\xc9\xf4\x9b\x01\xbb\xd2\x6a\xe6\x8f\x7f\x6e\x48\xd9\x4e\xb1\xc2\xc3\x7a\xa2\x6c\x5e\x93\x73\xac\xf0\x05\xc7\x29\x65\x13\x0b\x44\x50\xbf\x16\xef\x7b\x77\xdd\x53\x74\x65\x75\x78\x9f\x65\x59\x20\x3c\x04\x0d\x01\x43\x86\x89\x38\x2e\x02\xac\x9c\x79\xd6\x6f\x4d\x64\x20\x3d\xe9\x0b\x6b\xc0\x60\x29\x0d\x57\xa5\x0a\xcd\xb9\xc5\x74\xd5\x5a\x99\x01\x10\xc0\xbe\x3a\x7c\xb6\x40\x7a\x75\x80\x8c\xfd\x66\x58\x79\x0c\xe4\x99\x2a\xb3\x1f\x30\x50\xd0\x7d\xe6\x5b\xc6\x13\x9c\x41\xe4\xdc\x51\x60\xd3\xd3\x6a\x3b\xcf\x21\x0d\x09\x42\x56\xd8\x22\x0e\x70\xf5\x99\x71\x5e\x28\x0b\x37\x0a\x0c\x00\xb0\x8f\xd6\x99\x3a\xe3\x9a\xe3\x1c\x0f\x58\x7f\x6c\x02\xeb\x32\xb3\x3a\xfa\x43\xc2\xc0\x9f\xec\x96\x45\x3f\x75\xfc\x08\xaa\x9b\x19\xb7\x22\x4e\xc0\x7c\xcf\x16\x10\x16\x0d\x38\x90\x1c\x02\x34\x0a\xee\x6c\x89\xb2\xb2\x8b\xfe\x4e\x0c\x3e\x1b\x30\x13\xcf\x17\xed\x4b\x98\x25\x1c\xf4\xce\x19\x84\x1b\x16\xd7\xa5\x17\x30\xe6\x36\xfc\xd0\xca\xfa\x73\x41\x8e\x5c\x9d\x61\xfd\x6b\xb0\xa6\xfa\x86\x3d\x46\x37\xa1\x7a\x9d\xf2\x24\x9f\x39\xb0\x1b\x48\xd7\xb2\x71\x6a\xf6\x12\xf5\x14\x62\x2e\xf6\x55\x14\x8f\x45\x32\xa5\x8a\x40\x4e\x55\x6b\xfd\xd8\x10\x4c\x37\xfc\xb4\x2a\xa9\x37\x0b\xbe\xd7\x5b\x96\xae\xf7\x24\x3b\x9c\xc7\x2d\x45\xad\xad\xc6\xea\x58\x01\x9c\x7c\x59\x00\x72\x40\x65\x7b\xae\x55\x5b\x0e\x46\x6e\x93\xb2\xc7\xd3\xaf\x24\xea\x5f\x6b\x09\x48\x6b\xbc\xfe\x0c\xe6\x52\x99\x10\x30\x48\x83\x31\x5f\x9b\x30\xfc\x0e\xfa\x16\x0d\xf2\x6f\xbf\xfd\x63\x82\x3e\xbb\x3f\xfe\xf4\x1f\xff\xf1\xc7\x3f\xad\x13\x57\xee\x14\x72\x68\xb7\x58\x23\x0f\xaf\x1b\x8b\x44\xe1\x0e\x54\x39\xd5\x16\xbb\x60\x0f\x60\xd3\xf2\x5b\x73\x40\x63\x1a\x55\xdd\xe3\x20\xc2\x07\x4f\xec\x09\x97\xe1\xc9\x44\xd1\xd1\x2c\x22\x09\x24\x51\x9d\x98\x43\x78\x61\xd7\x4a\xf4\xff\x6b\x09\x28\xc2\x50\x1f\x95\xcd\x22\x91\x68\xe6\xc5\x6b\xdd\x08\xfa\xda\xda\xff\x14\x38\x10\xbf\x71\x17\x1c\xcf\x52\x22\x6c\xc9\x3a\x67\xb2\xf3\x86\x44\x60\x0e\xe4\xf3\x3c\xe3\x36\x46\x04\x23\x49\xe6\x18\x04\x08\xcd\x0c\x8e\x07\xac\xf7\x19\x6b\xce\xdd\x71\xf5\x53\xe1\x23\xe3\x79\x19\xe3\x84\x20\x23\xaa\x7f\xfd\xf9\x54\xff\xd6\x41\x8b\x53\x08\xf5\xec\xa0\x7f\x9c\xda\xa4\x6c\x2c\xd4\x50\xff\xf4\x8d\x93\xb5\x6d\x13\x30\x68\x2a\xd1\xe0\xdd\xc9\x23\x16\xa6\x2c\xcd\x89\x45\xd3\x7d\x67\x79\xab\x47\x0a\x0f\xa5\xf3\x8c\xf3\x07\x1b\x08\x5b\xf9\xf2\xc4\x41\x3c\x00\x81\x7b\xcf\x89\xd9\x7c\x1b\xd3\xac\x25\xc9\x23\x78\x81\xa0\xe3\xf9\x08\x1d\xff\x4d\x72\x86\x8e\x17\x78\x96\xd9\x5f\xdd\x53\x1b\xa7\x8b\x25\x72\x35\xf8\x5c\x94\x4e\xb6\x30\xb6\xd2\xf7\x19\x1f\xc1\xbc\x3e\xb9\xb9\x9a\x48\x57\x18\x68\x71\xff\x14\x57\x96\x9d\x88\x95\xa5\x4c\xa2\x3a\xd4\xf7\xd5\xaf\x00\x97\xab\x9b\xd5\x67\x3f\xa4\xff\x36\x9e\x61\x58\x14\x97\x1e\x67\xcc\xc3\x3e\xca\x4c\x37\xfa\x19\x7d\x6d\x99\xd0\x37\xfa\x96\xb1\x61\xc5\x66\x19\xea\x3a\x58\xf8\x0e\x7e\x09\x3a\xa0\x0c\x99\x84\xc7\x25\x5f\xfe\xe3\xe4\xf8\xf8\xd8\x7f\x7d\xa9\xa7\xf2\xff\x22\xaa\x24\xc9\xc6\xa6\x25\x77\x87\x2d\x06\xec\x93\x43\xc3\x73\xe6\xeb\x02\x3c\x06\x2a\x49\x26\x3c\x43\x47\x85\x49\x37\xe5\x89\x44\xbf\xd3\x82\x6d\xb0\x94\xf0\xa3\xd6\xe4\xea\x4f\x95\xad\xdb\xfb\x42\xc7\xca\x9a\xc4\xcb\x07\x2b\xc4\x8b\xf0\xaa\x2d\x96\x21\xb4\x22\xd0\x82\xa6\x9c\x13\x8b\x29\x01\x15\x8d\x15\xf9\xac\xe0\x51\x03\x64\x47\x6d\xc8\x79\xfd\x5d\x59\x61\xb8\x05\x72\x87\x21\xeb\x86\x05\xb0\xc0\x0a\x96\x37\x98\x79\x76\x42\x07\x8a\xbe\x5e\x58\x88\xcf\x26\xf3\xd9\x0c\x8b\xc5\x49\x71\xda\xaa\xc4\x59\x80\xad\x02\x97\xc9\xdc\x02\x80\x13\x37\xb3\x47\xcb\xc6\x31\x58\x01\xd3\xdd\x69\xfe\xec\x26\x80\xee\x0e\x11\x75\xa6\xb6\x01\x61\x09\x4f\x2d\x5d\x17\x79\x9d\xb1\xcc\xe2\xdf\xa9\x4a\x2b\x2e\x26\x46\x16\xe6\x38\xa6\x4c\xb2\xb7\x7d\xc3\x7d\xdc\xc0\xc0\xf9\x10\x2a\x6f\x90\xc9\x1a\x0e\xd2\xfe\xd5\xad\xfb\xa6\xfd\xb5\x0b\xeb\x10\x0b\xed\xd8\xe9\x89\xce\x26\x21\xf0\x53\x71\x01\x43\x74\x87\xb1\xcf\xe4\x3e\xeb\xd5\xfc\xfb\x8c\x5f\xd3\x4c\xdf\x5b\x40\xe3\xc7\x03\x16\xfd\xdc\x41\x24\xa3\x33\xca\x7c\x74\x9d\x61\xef\x7c\x6c\xe4\xe7\x07\xaa\xf4\x96\xc9\xf4\x41\x73\x30\x07\x20\x10\x28\x55\x5d\xb6\x70\xa4\xe3\x5d\x53\xd6\x06\x91\x4b\x3d\xae\x42\x4b\xd7\xe2\xac\x6e\xe2\xc8\x8a\xa4\x34\x20\x3c\x38\xbf\x03\xa6\x5b\x73\x67\xa9\x08\xeb\x0d\xda\x0b\x9a\x3b\x72\x28\x65\x01\x07\x80\x3e\xa2\xd8\x5c\x2f\x01\xd7\x88\x28\x3d\x96\xcf\xb6\x4d\x0a\xb1\x61\xbe\xaf\x65\xa8\xbb\x2e\xaa\xc5\xda\x04\x23\xc2\xf2\x99\x3b\x50\x6b\x50\x5c\xcf\x0a\x40\x29\x49\x32\x0c\x77\x07\x34\x04\xb1\x8f\x1d\xe3\x22\x0d\x2a\xd3\xda\xeb\xc5\x74\x63\x80\x4f\x33\xc2\xbe\x36\xff\xfe\x06\xd9\xbb\xe1\xdb\x8e\xbd\xcf\x85\xb4\x4a\xa4\xdb\x73\x00\xce\x27\xa9\xb1\xa2\x03\xfe\xd9\x04\x43\xbd\x70\x6b\xda\x89\x34\x4f\x90\xc0\x16\x3c\x47\x4f\x54\x4e\x07\xec\x8e\x3b\x93\x23\x62\xdc\x23\xc8\x75\x40\x1d\xad\xf4\x87\x25\x30\x01\x18\x75\x1d\x05\x94\x0a\xd6\xaf\x9f\x13\x04\x61\xac\x43\xc6\x53\xb2\x66\x34\x7b\x4d\xa9\x6c\xeb\x89\x70\x1e\x6c\x41\x4c\xde\x16\xdc\x14\x8d\x85\x7e\xa5\x5c\xd3\x3a\x5f\x5b\x59\xdf\xb6\x03\x45\x52\x9e\xd8\xa6\x90\x19\xfe\x56\x83\x56\x9c\xce\x19\xe4\xd9\x46\x6b\x1f\x57\xff\xdf\x4a\x47\x4b\x37\xf3\x4f\x98\xb9\x27\xb0\xec\x3e\xc4\x18\xa3\x89\xe0\xf9\xdc\x27\xa3\xbb\xb4\x3c\xb3\x0d\x56\xa6\xe9\xb3\x31\x3f\xb5\x5a\xd5\x05\x65\x0f\x86\xe2\x9f\x6b\x8f\x7c\x05\xfa\xe0\x77\x77\x87\x99\x15\x3f\x42\x94\x25\x59\x0e\x17\x9f\x54\x38\x79\x30\xf0\x81\x4d\x66\x5f\xfd\xcd\x70\x75\xd2\x63\x83\xc4\x94\x67\x99\xed\xb6\xb8\x40\x8b\xc2\x3e\x8f\x14\x23\x8c\xee\x6f\xfa\xf5\x7d\x3f\xd0\xaa\x3b\xa7\xfe\xf6\x8c\x09\x04\xfe\xf3\x23\x5d\x2b\xf2\xb2\x84\x73\x4a\x22\x52\xf7\xe6\xa5\x26\x74\xaf\xd2\xed\xbd\xa5\xff\x58\xdf\x42\xc3\x59\x0d\xa5\xd6\x4f\xbe\xe8\xf8\xdc\x7e\xfc\x49\x7f\x5b\xbf\x23\x9f\x20\xe9\xc8\x23\x33\xcc\x30\xd3\x13\x74\xbd\x36\x58\x63\xcc\xc5\xb8\xd1\x90\xee\xe7\x1b\x0d\xc8\xf4\xd8\x12\x93\xdb\x76\xe5\x5a\x79\x32\x06\x49\x9c\x19\x85\x5b\x4d\x41\x13\xeb\xa0\xdb\x64\x4a\x66\x18\x82\x5e\x66\xb1\x46\x06\x92\xe9\xd7\x19\x16\x13\x23\x27\x4a\xa2\xe4\x37\x35\x3b\x5c\x04\x7f\x6f\xb1\xc3\x1b\xd4\x0b\x08\x1d\x40\x20\x85\x2c\xe3\x00\x7e\x94\x31\xf4\x90\x67\x4e\xbe\xf2\x86\xbd\x3b\xa8\x0c\x21\x87\x13\x2e\x04\x40\xe4\xa5\x5a\x1a\x6f\x06\x65\xd8\xb2\x6e\xcc\x25\x9e\xf9\x04\x66\x57\xbd\xc2\xe6\xa9\x98\xc1\x8d\x08\xe0\x50\x35\x8f\x61\xeb\x02\x31\xe1\x10\x2c\x60\x7b\xd3\x08\x06\xac\xeb\x5e\xf1\x49\x90\x20\xe2\x0a\x23\x87\x40\xa0\x9c\x09\x0b\x05\x31\x13\x17\xab\x6e\x27\xd7\x30\x89\x75\x73\xcd\xca\x35\x6e\xb4\x98\xeb\x81\xeb\x8c\x18\xe3\xf4\x1d\x37\x8f\x86\x9e\x1f\xd7\x2f\x01\x56\x8f\x23\x91\x94\x4b\x34\xd5\x75\xbc\x5a\xa4\x74\x09\xee\xb6\xa1\xb0\x2a\x94\x09\xa6\xcb\x16\x05\x99\xea\x15\x37\xaa\x49\xa9\xb3\xea\x69\x55\x5b\x71\x63\x8a\x67\x43\xc1\xb3\x6d\xf6\xc8\x35\x11\xa9\xb9\x53\x83\x27\xba\x40\x7f\xcf\x71\x66\xec\xfd\xcc\x92\xa3\x1b\x36\x48\x0c\xdf\xff\x09\x75\xe1\xba\x44\x9f\x80\x2f\x82\xa7\x13\x5a\x53\x1c\xd1\xd9\x9c\x08\xc9\xb5\x3e\xd6\xb0\xc9\x0f\x7f\x96\x43\x0b\x06\x3c\xc4\x49\xc2\xf3\x2a\xf0\xef\x1a\x33\xa9\x69\x2d\x9c\x14\x46\x0f\xf9\x88\x08\x46\x4c\x29\x4a\x78\x0f\xb9\xf7\x5a\x0d\x97\xe3\x5c\x4d\xbf\x1f\x26\x19\x6d\x8d\x50\x0c\x69\x16\x5d\xfd\xd9\x99\xf9\x6a\xd9\x04\xa2\xf6\xa3\xa1\x33\x64\x9e\x21\xf3\xec\x18\xbd\xc7\xc9\x03\x61\x29\x9a\x67\xf9\x84\xda\xdc\x67\xb8\xa1\x80\x5d\x06\x56\xaa\x78\x62\x46\xe5\x35\xed\xeb\x6b\x68\xc0\x66\xf8\x01\x34\xa4\xcf\x36\x1a\x5d\x6b\x9a\x6b\x69\x5b\x9e\x1e\x2a\x20\x10\x2e\x51\x57\x92\x24\x17\xfa\x0d\x73\x3e\x94\x39\x1f\x60\x57\x02\x20\xb4\x9c\x21\x0c\x38\x12\x5f\x49\x94\xcf\x9d\xf1\x03\x0c\x1e\x19\x38\xa0\xcc\x24\xa1\x38\x19\xd5\xe2\xe0\x94\x0c\x18\x04\xf5\xb9\x16\x17\x9e\xab\x84\x3e\x4f\xef\x7b\xaf\x3b\x7c\x63\x93\x45\xbd\x9d\x3b\xc5\x98\x91\x76\x1e\xb0\xa8\xa6\x84\x81\x1e\xd6\xbe\x65\x48\x45\x6f\xbf\x69\x51\x70\xa2\x99\x45\x61\x38\xf2\x4b\x98\x33\x6a\x31\xb1\xad\xad\x30\x88\x1b\x72\x26\xf5\xe2\x7b\x2a\x91\xc4\x8a\xca\x31\xad\xd5\x4f\xc3\xdc\xf5\x6d\x56\x1d\xaf\x97\x30\x5f\x93\x2c\x5f\x5a\x0b\x1f\x00\x7d\x8c\x3e\x80\xba\x5d\x4c\x49\x71\x9f\x7a\xde\xc4\x12\xd4\x94\x34\xa2\xa6\xed\x22\x72\xc0\xcd\xa0\xad\x15\xc5\x07\xbb\x1f\xa3\x6e\x61\xe6\x34\xc9\xf7\xc6\x80\xb9\x62\x46\x24\x93\x64\x13\xe2\x6b\x65\x11\x00\x67\x20\x10\x10\x02\x59\x45\xea\xdf\x0b\x04\x47\x3f\xcc\x27\xc8\x27\xc3\x0f\x84\x2d\x53\xfb\xda\x8f\xb0\x17\x65\xe3\xd6\x0d\xb1\xeb\x15\x7e\x6e\x74\xfe\x4d\x06\xd8\xfe\xd8\x15\x78\x07\x74\x7c\xa2\x97\x5c\x0b\xfa\xc9\x83\x8d\x62\x37\x66\x1f\x8b\x98\xf0\x34\xe5\x32\x3c\x67\x6e\xff\x60\x33\x95\xc8\x89\x8b\x56\x87\x2c\x00\xbf\xc0\xc6\xfd\xcf\x78\x08\xa8\x00\xa3\xf6\x87\xd4\x98\xb4\xfc\x7e\x23\xc7\x42\x61\x19\xc0\x5c\xee\x9a\xaa\x9e\xe6\x1f\xff\x2c\xaf\xe0\xc4\xee\x22\x29\x38\xc3\x23\x92\x3d\x03\x4e\xd4\x86\x86\x48\x1f\x6a\x62\xc6\x05\x46\xff\xd4\x67\xa1\xcf\x79\x8a\x0a\xf2\x6a\x8a\x78\x64\x8c\x9b\x50\x83\x3d\x9c\x56\x30\xb8\xd6\x73\x5b\x45\xd9\x9f\x02\x6f\xa5\x29\xb9\x6b\xb0\x57\x02\x91\xcb\x26\x8e\x81\xf6\x6b\xaf\x7f\x2a\xfd\x7d\x52\x4f\x63\xd7\x3c\xdd\x86\xb0\xd6\xc7\xd7\xaa\xd2\x75\x8b\x70\x46\x59\x57\xf1\x67\xc9\x4a\xcc\x79\x73\x20\x5a\x3a\x6c\x5f\x23\x07\xfc\x8e\xa3\x7c\x7c\x0b\xe8\xbe\x4d\xc9\xf1\x0e\xd6\x68\x4a\x7c\xb6\x8b\xde\x67\xdd\x8d\x8f\xbd\x6e\xda\x14\xeb\xc6\x2a\xae\x7f\x8c\xfe\xef\xed\xd5\xe5\xd1\x0c\x0b\x39\xc5\x90\x7c\xe8\xda\xea\x38\x0c\x7a\xa3\x80\x3a\xf3\x3a\x65\x68\xc0\x8e\xd0\x84\x77\x8c\x37\xe7\x14\x4d\x95\x9a\xcb\xd3\x93\x93\x09\x55\xd3\x7c\x74\x9c\xf0\xd9\x49\xb1\x36\x27\x78\x4e\x4f\x46\x19\x1f\x9d\x08\x02\x11\x7d\x47\xdf\x1d\x7f\xff\x1d\x6c\xcd\xc9\xe3\x77\x27\x60\xc3\x3f\x9e\xf0\xdf\x5d\x7c\xff\x9f\x7f\xfc\x93\x6e\x78\xbe\x50\x53\xce\x4e\xad\xab\x68\x69\xdb\x47\x46\xf0\x3d\x31\x9f\x94\x7a\xf9\xcf\xe3\x6f\xc3\x61\xd8\x57\x67\x3c\x25\x99\x3c\x79\xfc\x6e\xe8\x76\xe6\x78\xbe\x8e\xf3\xab\x60\xf8\x7e\xc9\x4b\x05\xa2\xf4\xef\x9e\x64\x5c\xee\xd1\xaa\x6d\xa9\x39\x2b\x61\xbc\xe6\x16\x27\xe6\x81\x54\xfc\x81\x6b\x68\x60\x5e\x92\x6a\xd0\xe9\xd7\x85\x0f\x6e\x94\x6d\xd6\x4a\x4f\x03\xef\x1b\x4d\x00\x9a\xd2\xd8\x20\xe6\x98\xd6\xc5\xf9\x58\x2f\xf3\x36\xeb\xf7\x9c\x20\xab\xbb\x46\x57\xb5\xd3\xdd\x10\x59\x35\x33\x5f\x3b\x9f\x38\x7f\x72\x88\xaa\xbb\xc0\x21\x6d\x59\xa9\xc3\x83\x35\x1a\xe2\x81\xb1\xb8\x71\xad\x47\x23\xd1\x12\x9b\x30\x09\x1b\x62\x29\x21\x1c\xd3\x80\x1d\xf0\xb1\x87\x8d\x35\x91\xb4\x06\x61\x9a\x8f\x6b\xfe\x78\x9f\xf1\x91\xfc\xc6\x43\xac\x60\xe9\xfa\x28\x30\x0f\x9a\x49\x70\x37\x28\xa5\x6e\x29\x9e\x53\x3f\x71\x67\x26\x94\x42\xd6\x59\xf8\x7a\xa2\x2a\x02\x5d\x4d\xc6\x27\x16\x3c\x67\x0e\xe5\x91\x33\xc2\xc7\x10\x25\x00\x17\xa0\xf3\x82\x80\x11\x84\x71\x15\x64\x77\x0a\x32\x37\x8c\x14\xcc\x75\xcd\xcb\xbd\x25\xd2\xe9\xaa\x75\x7e\x0e\xa4\xd3\x6d\xd7\xdd\x1e\x9c\x57\x5a\xf0\x6d\x43\x15\xcc\x51\x5a\x83\xcd\xc2\xfb\x2b\x5d\x13\x9e\x0f\x80\x2f\x22\xac\x60\x66\xd0\x4c\x20\x3c\x99\x1c\x29\x7e\x04\x69\xf1\x90\x6c\x6d\xb0\x87\x9b\x2a\x72\x80\x4b\x67\x9d\xeb\x40\xbf\xdf\x62\x9c\x26\x24\xfd\x73\x30\x50\x7b\xf7\xca\xa2\xb6\xb9\x56\x2e\x19\x23\xc2\x1a\xab\x57\xde\x1c\x6b\x3a\x7c\xc2\xad\x5c\xee\xf1\x2d\x04\xd0\x10\x17\xd6\xc7\xfb\xe1\x80\x09\x1c\x23\x88\xbb\x9e\xf2\x19\xd7\xd7\x36\xcf\x65\xf0\xd0\xc4\xed\xc3\x65\xb3\xa4\xcc\xfc\xdc\xc0\xe0\xbc\xde\x6c\xf4\xd1\xd2\x8f\x8c\x2e\x1f\xbe\xb4\x1a\x1c\x3b\x98\xc9\x28\x06\x17\x5e\x31\x7e\x8f\x0a\xbb\x9c\x6e\xc0\x9d\x38\x03\xdb\x29\xd4\x3c\xb1\x58\x8f\xf4\x1f\x5a\x54\xd7\x24\xe5\x63\xe4\x5d\x5e\xbd\x0d\x3c\x35\x68\x4f\x21\x1e\x5c\xa9\xb4\x69\x79\xf8\x84\xe5\xb3\x35\xf7\xc0\x07\x31\xb5\xd9\x00\xcc\x4c\x58\x8f\x8b\xe7\x39\xaa\x0d\xe8\x69\x3a\x97\xae\x1e\x4a\x3a\x74\x88\x64\xeb\x0d\xf5\xd6\x37\x60\xc1\xc7\xaa\xe3\x2e\x00\x1d\x20\xfa\xcb\xac\xb1\x61\x08\x4e\xb6\x68\x0a\xb2\x58\x47\x6b\x5d\xa6\x04\xd6\x85\xe2\x19\x7c\x99\x22\xf2\x56\x93\x67\x45\x01\xf1\x1f\x3e\x16\xa5\x8a\x16\x73\xd2\x41\xa3\x1c\x9e\x5f\x5e\xdd\x85\x2e\x46\xca\xe0\xf1\x51\x32\x25\xc9\x03\xa4\xe1\x98\xeb\xc4\x10\x9a\x2b\x53\x35\x5a\x0c\x58\x51\x10\x43\x71\xe7\x2f\x5b\x78\xc4\x51\x8f\xba\xcb\x05\x4a\xa9\x9c\x67\x78\x01\x9e\x09\x66\x62\xec\x0a\xaf\x86\x0f\x4e\xd5\xc7\x6c\x33\x03\x1c\x54\xec\xb0\xfc\xd3\x49\xb0\xf0\x2f\x37\x09\x5f\xae\xd2\xc7\x8b\xd7\x09\x6c\x5b\x63\xc0\x6e\x13\x69\xd5\x54\x7b\x26\xf0\x97\x9b\x1d\x0d\x5d\xee\x3e\x4f\xbc\x5c\x14\x75\xf0\xce\x45\xb0\x83\x92\x3a\x70\xf5\x1c\xf5\xbf\x4d\xb1\x30\x22\x1e\x49\x3a\x60\x71\x26\xbe\x15\x02\x8a\x5d\x46\x45\x4d\x82\xa6\xf3\xb7\xbe\x61\x26\x04\x39\x5c\x1e\x04\x06\xd9\x87\x05\xee\x90\x8f\xd2\x5e\x52\x23\xa1\xbe\x18\xe2\x33\x80\xf9\xb7\x36\xd6\x15\x45\x10\x2c\x82\xb9\x2d\x51\x12\xf9\xc5\x3c\x61\xfa\x3c\x63\x03\x42\xe2\xa3\x57\x6d\x34\x6b\x25\x69\xab\xae\x8d\x01\x73\x09\x38\xe3\x3c\x33\xc0\x52\x0d\xab\xe5\x60\x07\x5c\xa8\xe0\xeb\x85\x8c\x7a\x83\x00\x0a\x8a\x46\x78\xf7\x95\xcb\x98\x48\x16\x45\x75\x5a\x20\x5d\xc2\x64\x0e\x77\x84\xc3\x8b\x87\x1c\xba\x09\x51\xc0\x9e\xd3\x3c\x33\xf9\x24\xe0\x98\x04\x08\x03\x9c\x65\x88\x2a\x39\x60\x1e\x71\xc1\xe0\x67\xc2\x15\xea\xb2\x03\x53\x2b\x43\x43\x17\xd0\xac\xad\x2a\x06\x17\x2b\x4d\xa8\x0a\x47\x04\x0e\xb7\x45\x88\xb1\x3c\x9f\x13\x6c\x82\x9f\xed\x31\x64\xa1\x10\x5d\xde\x04\x1b\x29\x0c\xb5\x9e\x76\x11\xb4\xdb\x4c\xba\xa6\xd6\xd7\xda\x5b\x72\x8c\xba\x66\x76\x5a\x82\x76\x05\x8f\xcc\x68\x6d\xca\x95\x8d\x49\xd1\x62\xaa\x92\xbe\x66\xab\x57\x44\xe6\x58\x28\x9a\xe4\x19\x16\xd9\xc2\x15\x6a\xa6\xe3\xa0\x76\x13\xec\x81\xc9\xb7\xb7\x45\xa1\x01\x86\xde\xda\xb2\x25\x9e\x91\x20\xd5\xc7\xea\xeb\x59\xe0\x0b\x33\x20\x82\xc6\xc9\xa2\xdb\xfa\xe6\x18\x9d\x97\x2b\x75\xc1\x99\x08\x70\x7a\xa8\x34\xec\xcf\x8f\x37\x88\x51\x37\x15\xbf\xe8\x58\xeb\x08\x5f\x05\xa7\xae\xa9\x8a\x24\x96\x0f\x6b\x3a\xda\x1c\xda\xeb\xf2\xf8\xaa\xda\x1c\x95\x3b\xa8\x34\x18\xb9\xdf\xfc\x81\x68\x18\xa0\xbb\x19\xd6\x1c\x64\x88\x71\xb4\xc1\x40\x7f\x0e\x4a\xf9\x95\x07\x3b\x5b\x52\x2a\x0a\xf6\x71\xcd\xa1\x06\x30\xee\xeb\x0f\x34\xa0\x9c\xd0\xad\xda\xb8\xb2\xab\x75\xf2\x9f\x23\x40\x75\xa4\xc7\xa5\xf5\x21\x62\x1c\xf1\xa5\x6a\xc0\x30\x06\x8b\xbc\x0e\x30\x99\xfe\xb0\x8d\x08\xca\x28\x7b\x70\x49\x71\x7a\xe7\x3b\x08\x17\xad\xc3\xe1\x33\xa3\x37\xc4\xdc\x20\xd6\xd4\x81\xca\x6e\x21\xe9\xb4\x0b\x2c\xaf\xd7\x25\xdc\x48\xd6\xc2\x0d\xae\xd4\xcc\x0d\xe6\xd1\x7e\x5b\x96\x86\x7e\x79\x09\xd6\xc5\x7b\x99\xfb\x25\x08\x42\x51\xd4\x57\x51\x6d\x5c\xdf\xeb\x29\xae\x2f\xbc\xbd\x1a\x28\xfd\xfe\xf2\xbc\xf7\xa1\x7f\x19\xa3\x9b\xff\xe5\xbe\x77\x1f\xff\x72\x73\x7f\x79\xd9\xbf\xfc\x18\xfe\x74\x7b\x7f\x76\xd6\xeb\x9d\xc7\xef\x7d\xe8\xf6\x2f\x4a\xef\xe9\x9f\xe2\x97\xba\xef\xaf\x6e\x4a\x78\xea\xb7\x3f\xf6\xaf\xaf\xe3\x9f\xee\xfa\x9f\x7a\xe7\xc3\xab\xfb\x08\x92\xfd\xfc\x97\xcb\xee\xa7\xfe\xd9\xb0\x66\x3c\x37\xbd\xb3\xab\x9f\x7a\x37\xbd\xf3\xa5\x50\xeb\xc5\x7c\x6b\x97\x74\x17\xde\xe8\x8d\xf1\xf5\xbb\x68\x2c\x28\x61\x69\xb6\x30\xc1\x72\x4e\x49\x29\xc5\xe6\x84\x57\x00\x9d\x11\x9e\x6f\x13\xf3\x76\x37\x25\x88\x3f\x6a\xf5\x32\x43\xb6\x35\x1b\xea\x8f\xe5\x43\x23\xba\x8b\x12\x55\x6b\xe3\xd2\xd0\x5e\x25\x16\x3e\x78\x7c\x69\xcc\xaa\xcf\xfd\xb6\x9d\xa0\x39\x11\xcb\xc6\x02\x17\xb4\xc8\xe7\x8a\x8e\x9a\xa3\x18\x5b\xe6\x44\xaf\xaf\x06\x1a\xa4\x92\xfa\xa4\xce\xcb\x7a\xc6\x18\x05\xf3\x6d\x13\xc7\x04\x2d\x6c\x5a\x36\xc2\x7f\xed\x62\x3f\xe6\xf9\x28\xa3\x09\xa2\x69\x81\xaf\x62\xa2\xfc\x4c\xcc\xb9\x31\x45\x95\x01\x8d\xe6\x44\x80\xc4\xa4\x05\xd1\xb9\x20\x47\x38\x57\x53\x57\x83\x12\xc2\x9f\x2c\xfc\xe4\x80\x49\x92\x08\xa2\x5c\x59\x6c\x92\xba\x42\x02\x41\x4f\x30\x18\x9b\x79\x92\x42\x92\xeb\x71\x00\x2e\xd9\x60\x7b\x34\x5f\x9a\xd6\xd7\x30\xbe\x98\xf7\x97\x2e\x8d\x1d\x31\x95\xe5\x62\x71\x20\x1b\x9a\x87\xae\x1c\x81\x9e\xb7\xe6\xd4\x89\x8b\x90\x34\x9b\xec\x82\x2d\xeb\xa7\xb1\x8a\xc6\x42\x42\x89\x63\x23\x6d\xeb\xf6\xd1\x99\x20\x70\x89\x58\x57\x9a\x53\xa3\xc1\xf5\x6b\x83\x33\x21\x26\x53\x6b\x0c\x23\x32\xc5\xd9\xd8\x58\x64\xf4\xd6\x14\xe7\xaa\x4a\xa2\x77\xfc\x81\x30\x5b\x1e\xfe\x55\xd8\x21\x33\x02\x78\x91\x8b\xe4\x8d\x13\x85\xf9\x06\x4a\x99\x0b\x57\xc3\xde\x04\xa7\x9b\x32\xa9\x46\x5c\x0d\x1e\x9b\x08\xd1\x02\x6b\xcc\xc5\xb5\x8f\xc7\xf4\xb3\x6e\x70\xc0\x48\x2d\xda\x12\xf8\xdb\x5d\x56\xb8\xe7\xcb\x80\x36\x62\x52\x6b\x1f\x08\x83\x4a\x08\xa6\x9c\xd9\x4a\x9a\x5d\xcf\x4e\x58\xdd\x8b\x25\x86\x42\x30\x3f\xd1\xa8\x40\x44\x68\x3d\x76\xeb\x04\x59\x28\x0f\xe4\x18\x9d\xdb\x84\x41\xfd\xcb\xd9\x45\xbf\x77\x79\x37\x3c\xbb\xe9\x9d\xf7\x2e\xef\xfa\xdd\x8b\xdb\xb6\xc7\x6f\x17\x81\xcc\xa5\xd3\x57\x8e\x25\xf7\x1c\xe2\xc4\x9e\xbc\x22\x9f\xc6\x4f\xaa\x38\x76\xb0\x25\xab\x47\x4f\xd3\xf9\x30\xa5\x32\xd1\xd7\xdf\x62\x48\x58\x0a\x30\x75\x1b\x91\x6a\x7d\x53\xe5\x59\xf8\x37\x90\x7f\xc3\x71\x10\x73\xdb\x3d\x3a\x8a\xf6\xcf\x01\xc7\xc6\x56\x02\xd7\x87\x3f\x1d\xb0\xe0\xb6\x39\x5e\x8d\x4d\xac\x9b\xdb\x6e\x6e\x71\x13\xe5\x39\x99\xf1\x52\x29\x73\xac\xf9\xa3\x7b\x0d\xf2\x54\x1b\x56\xc5\x62\x87\x84\x58\x79\x34\xa8\xc6\x84\xb4\x8a\x3c\xc3\x2c\xc5\x8a\x8b\x45\xc3\x14\xdb\x31\xcf\xf0\xd8\xc4\x2c\x34\xbc\xb2\xb5\xfe\xef\x76\xc1\xbc\x8a\x59\x99\x94\x0c\xa2\xde\xdd\xd5\x8f\xbd\xcb\xdb\x61\xef\xf2\xa7\xe1\xf5\x4d\xef\x43\xff\xbf\x3d\x28\x80\xad\x2d\x1f\xd7\x79\x21\xfa\x52\xd4\xdc\xc5\xa5\x27\xd6\xf2\x17\x53\x6c\xc5\xb5\x63\x01\xf6\xe9\x78\xc0\x1c\x67\x11\x45\xf3\x53\xc1\xf3\xc9\xb4\xbe\xa1\xf2\x28\xaf\xbb\x77\x3f\x6c\x34\x4c\x48\x1e\x37\x15\x19\xcc\x69\xab\x62\x2c\xd1\xb1\xe5\x7b\x06\x98\xa9\x34\x3c\x80\x40\x80\x57\xeb\x0c\xde\x0d\x1c\x6d\x23\xed\xa5\xca\xb4\x96\x0a\xff\x35\xaf\x37\x11\xd0\x5d\xc0\x37\xa3\x6b\x04\x82\xda\x4c\xb1\x9f\x4a\x6b\xa7\x35\xbf\x45\x37\xd8\xf7\x47\x19\x99\x4c\x48\x6a\xc8\xab\xdc\xb0\x35\x05\x59\x16\x98\x14\xf7\x7a\xdd\x2a\xda\xd2\x1b\x5b\x5c\xcc\x3e\x8e\xa4\x3d\x03\xbf\xf6\x9f\xd4\xf3\x8a\x33\x57\x84\x2f\xe1\x4c\x2a\xcc\x1a\x1c\x54\x6b\x16\x0a\x2f\xea\x0b\x88\xa2\x5c\xbf\x35\x90\x38\xcb\x75\x71\x0e\x36\xf1\xe6\xd8\x12\x23\xcc\x5a\x3c\x82\xd2\x23\x41\xd5\xc0\x9a\x4d\x28\x95\x62\x7e\x76\xe3\xc6\x52\xd5\xc9\x66\xcc\x83\xc5\xd1\x60\xbc\x5b\x38\x37\x63\x0d\x82\xc2\x09\x8d\x81\x75\x3b\xae\xdc\xee\x2d\x9e\x45\xd9\x69\x5f\xc8\xdc\x09\x6f\xeb\xdb\xb7\x4a\x45\x9b\x83\x82\xd6\x69\x9e\x58\xdc\x42\xd3\x6c\xe1\x39\xb7\x06\x2d\x77\xc1\xa6\xe8\x28\x2c\x94\x9f\x1e\x41\xee\xf3\x80\x35\x79\x35\x6a\x8a\xcc\x87\x14\x70\xed\x6e\xad\xed\x70\x33\xd6\x08\xf8\x73\x8b\xdd\x2e\x25\x05\xb9\xd7\x41\xd8\x6b\x08\x3c\xb0\xfb\x32\xc2\xc6\x6d\x19\x5f\xc7\x4d\xd9\xa9\x9e\xab\xae\x17\x1f\xd1\xce\x35\x1f\x83\x5e\x98\x2b\x72\x8a\xa5\x91\x5c\x55\x32\x8d\x07\x0e\xb3\x89\x81\x2d\xca\xc3\xf5\x92\xe0\x76\x16\x82\x56\x8e\x8b\x8e\xd1\xa9\xa9\xb4\xa3\x0f\xcb\x14\xf8\x9a\x2b\xeb\x11\x7e\x28\x1c\x79\xe5\xc5\xf0\x3d\x60\x58\x19\xce\x59\x32\x45\xf3\x0c\x9b\x34\xac\x29\x96\x86\xa4\x9d\x63\x1c\x8f\x68\x46\x15\x64\x90\x1b\xa7\x52\x69\x85\xb5\x46\x83\xc5\x83\xc3\xae\xc2\x05\x82\xcd\x32\xa2\xdf\x32\xec\xad\x28\xc0\xf9\x92\x81\x6f\xc5\x91\x0d\xbe\x58\xea\x92\x2a\xc8\xd2\x06\xbd\x15\xdb\xa1\x39\x1e\x90\x65\x31\x97\xf5\x76\xd6\xb6\x78\x5d\xfe\x3c\x5a\xef\x9a\x8b\x7a\xfd\x38\x01\x0b\xcb\xb8\x06\x9b\x2f\x83\x36\xd6\x9e\xac\x71\xc6\x71\x43\xe1\x30\xd7\xb6\xc1\x60\x6c\x6a\x3b\xe5\xf9\xa8\x09\xf3\xcb\x8c\x6a\x79\xeb\xcb\xec\xfe\xee\xdc\xee\xca\x2e\x18\x32\x40\xac\x88\xa2\xeb\x99\x36\x82\x49\x63\x45\x8e\xe0\xf3\xfa\xc6\x2d\xd2\x55\xeb\x39\x57\x08\xad\x40\x02\xf6\xc8\x62\x5a\xa4\xad\x29\x3f\xfd\x97\x1c\x4a\x5c\x5f\x8d\x6f\x4d\x4a\xf3\x36\x44\xa6\x68\x95\xc2\xea\x4f\x62\xb9\xd7\xbb\xd8\xa9\x12\xd2\x40\xeb\x74\x96\xba\xd9\xdc\xea\xaf\xdb\x1f\xc8\xb8\xba\xe6\x5c\x50\x0e\x89\xc7\xb6\x24\xe7\x12\x70\x94\xda\x7e\xb7\x58\xc9\xbf\xe7\x24\x27\x9a\xf6\x47\x79\x3a\xa9\xda\x36\xd7\x90\xce\x8a\x29\x4d\xf9\x13\x9a\xe5\xc9\x14\xb9\xc6\x51\x4a\x32\xbc\x88\xa6\x06\xf2\x92\xe2\x19\xc0\x8d\x6d\x88\x7d\x94\xe4\x52\xf1\x19\x84\xab\x15\xed\x8a\x9c\x01\xc1\x23\xac\x94\xa0\xa3\x5c\xd5\x46\x43\x45\x20\x20\x1b\x3a\xb4\x6e\xaf\x7b\x67\xfd\x0f\xfd\x92\x37\xa9\x7b\xfb\x63\xf8\xef\x9f\xaf\x6e\x7e\xfc\x70\x71\xf5\x73\xf8\xdb\x45\xf7\xfe\xf2\xec\x87\xe1\xf5\x45\xf7\x32\xf2\x39\x75\xef\xba\xb7\xbd\xbb\x15\x6e\xa5\x6a\xaf\xcd\x1b\x81\x03\x8c\x12\x2d\xbb\x58\xc3\x25\x78\x00\x9d\x76\x69\x7b\x3d\x45\x5d\x87\xd8\x12\x96\x4c\xc3\xce\x35\x08\x2e\x6d\x53\xc3\xcd\x7a\x10\xcf\xb1\xc2\xb6\x26\xe6\x31\xea\x22\x57\xdb\x14\xc2\x46\xa5\x16\x16\x2c\x9c\x85\xde\x1d\xd3\x84\x96\x18\x92\x42\x73\x2b\xca\x72\xf0\xb1\x05\x92\xc9\x48\x08\xdf\x68\x2b\xd9\xff\x7f\xec\x7d\x5b\x73\xdb\xc8\xb5\xee\x7b\x7e\x05\x2a\xe7\xc1\xf6\x29\x4a\x3e\x93\x54\xaa\x4e\x4d\xd5\x7e\xd0\xc8\x9a\x84\x29\x8f\xec\x48\xf2\x78\xef\x1d\xa4\xe8\x26\xd0\xa4\x10\x81\xdd\x74\x03\x90\x86\x49\xe5\xbf\xef\xea\x75\xe9\x6e\x5c\x09\x90\x94\xc7\x99\x3d\x0f\xc9\xcc\x88\x40\x77\xa3\x2f\xab\xd7\xf5\xfb\xce\x63\x75\xf5\x28\x55\x59\x01\xb6\x9c\xc8\x73\xe6\xa0\xe5\x07\x82\xb2\x2f\x1e\x65\x91\x6d\xb2\x5c\x18\xcf\xa0\xf0\x8e\xda\x02\x85\x9d\xc7\xea\xaa\xfc\xdb\xb0\xda\x6c\x3c\x7c\x98\x47\x30\xee\xcb\xb7\x73\x50\x81\x92\x92\xe1\x81\xb9\xf3\x58\x21\x50\x09\xf5\xb8\x11\x90\xca\x5c\x6a\xf2\xa7\x61\xf7\xbd\xa4\xfc\x37\x1d\x0c\x06\x07\x20\xe1\xa0\xe7\xf9\xb9\xb2\x6b\xdc\x20\xf9\x5f\xae\x54\x69\x76\xa3\xf5\x9a\x3b\x40\x97\x2b\x40\x37\xa5\x44\x9a\x3a\xab\x02\xba\x3b\x22\x6e\xfd\x1a\x94\x1d\xce\xf2\x22\x6f\xbc\x73\xba\x4b\x40\xb0\xeb\xd1\xbf\x73\x7b\x09\x7d\xad\xf3\x10\x56\x55\xc3\x2c\x2c\x75\xa5\x52\x66\x85\xdf\x64\xea\xf5\x46\xfc\xf4\x8a\xbf\x14\xab\x14\x1d\xb2\x29\x20\x50\xc8\xdc\x5a\x22\x3b\x2b\xe4\x86\xa7\x2b\x56\x03\xf3\xb5\x5f\x5b\x64\xc9\x0a\x66\x8f\xb7\x51\x31\x79\xe9\x51\xee\xba\xd6\xaf\x85\x4f\x8d\x09\x52\x74\xe0\xa1\x91\xad\x91\xf6\x41\x97\x19\x95\x63\xc2\x9b\xfb\x6f\x48\xbb\xad\x71\x68\x74\xcb\xee\x30\xca\x7b\xd4\xb1\xe9\x8c\x2f\x3f\x03\xc0\x38\xf5\x64\xd7\x0c\xa3\xcd\xec\xe8\xa4\x34\x63\x0a\xa3\xd9\xc5\xfa\xbb\x5e\x02\x51\x77\xc1\x1c\x79\x46\x82\x63\x1b\x96\x82\xf1\xf0\x00\xa7\xa0\x15\xc2\xe6\x2d\x90\xcb\x02\xdc\xbd\xca\x9a\x5b\xf2\x73\x45\x11\xbb\x6f\xfe\xdf\xb4\x7b\xb6\x34\xbb\x88\xb1\x57\xc3\x7c\x7a\x2a\x27\xa1\x3b\x17\xc6\x55\xa9\xac\x0b\xbc\xe4\xa6\x52\xf6\x2a\x3e\x45\xb2\xc3\xf8\x68\x56\xa3\x53\xfa\xcf\xbd\xe9\xfa\xec\x88\x35\xf8\xfc\xb3\xa1\x3d\xfd\xd8\x00\x79\xa2\xee\x20\x1f\x96\x5a\x0f\x2f\xb4\xa5\x48\x1e\x9e\x84\x49\xd1\x57\x08\xd9\x07\xe7\xd1\x9f\xf4\x93\x7c\x94\x66\x16\x25\xd2\x94\x82\xf0\x1f\x0a\x08\xbf\xc2\x81\xa2\x76\x62\x05\x29\xe2\x08\xa6\xa1\x80\x5e\xb0\xcc\xd6\xf7\xd6\x9e\x0c\x82\xe7\xda\x58\x71\x54\x22\xb8\xce\x56\x26\x54\x71\xdf\x33\x01\xab\x5c\x3c\xb6\x01\x2d\x0e\xa9\x8d\x8d\xe6\xae\x68\x89\xa3\x53\x8c\x31\x3a\x94\xee\x40\x13\x46\x42\x13\x4b\xa4\x67\xd1\x5a\xe7\x42\xad\xcf\xcf\xcf\x23\x59\x26\xe7\xaf\x26\x6d\x74\x6a\x30\x8c\x77\xb9\xdc\xce\x5c\xeb\x42\xe6\x3b\x57\x25\xee\x32\xf0\xed\x34\x43\xc6\x7f\x91\xa1\xcb\xa3\x63\xfb\xdf\x36\x6b\x6c\xbf\xac\xeb\xbc\xdb\x52\x9d\x5c\xac\xd3\xd3\x0e\x40\x96\x4f\x68\x09\x9f\xef\xb6\xbc\x26\x14\x9f\x31\xc3\x88\x2f\x42\xeb\x01\x84\xd3\x6a\x6a\x65\xd5\x8f\xba\x8f\x8a\xef\x20\x10\x97\xce\x96\xa8\xc4\xfb\xa0\x8a\x99\x3e\xcf\x45\xa3\x40\xe8\x88\xda\xa0\x8e\x53\xd3\xb1\xa9\x5d\xe5\xdf\x31\x59\x45\x3a\xaf\x36\xfd\x98\x23\xc7\x2a\x6a\x7e\x90\xf8\x6f\x97\xd0\xdd\x68\x45\xcd\x93\x1a\x32\x68\x32\x8d\x17\xdd\xad\x54\x1b\x65\x25\xb2\xc9\x0a\x40\xc7\x39\xa4\xb6\xc7\x35\x83\x4d\x43\x54\x68\xb7\x45\x37\x1f\x56\xfd\xe4\x3b\x2c\x57\xe2\x28\x02\xbd\x52\xa0\x36\x05\xa1\xa4\x7e\xe1\xd3\xcc\x55\x9a\xbc\x46\x00\xc9\x7b\x50\xfc\x0c\xd4\x93\x00\x15\x92\x92\x29\xa0\x41\xe6\xe0\xd7\xd1\x8a\x2b\x45\x1e\x64\x40\x23\x94\x02\x5e\xe4\xd3\x79\xf4\xbd\x36\xc0\x15\x44\xb1\x61\x0a\xdf\xfb\x9b\xb1\xf4\x9d\xa0\x0f\xfa\xf1\x1b\xce\xda\xc0\x2f\xc4\x26\x00\x97\x3f\x15\xaa\xec\x6c\xc0\x27\x35\x41\x5b\xf8\xca\x8f\xd6\xda\xee\x7c\x9c\xda\x87\x47\x11\x82\xfb\xe2\xe3\x6d\x84\x53\x4d\xc8\x82\x66\x68\xa0\x41\x23\xfb\xf3\x46\x60\xba\x16\x07\x68\x1c\xb5\x75\xc0\x49\x67\x68\x49\x3b\xed\xb2\x4c\xee\xfd\x0d\x57\x67\xd3\x22\x7e\x05\xfa\xce\x8d\xc7\x4a\xc4\x94\xbc\x30\xb7\x89\x18\xdb\x9d\xa5\xac\x95\x84\x60\x80\x28\xa3\x54\x87\xcd\x46\x59\xb9\x3f\x81\x64\x22\x9e\xc7\xbe\xad\x56\x6a\x4c\x0c\xa0\xef\xac\xc5\x74\x40\x75\xcd\x10\x1d\x81\xb3\xef\x50\xf7\x26\xb8\xfe\x26\xc2\x5f\xbd\xde\x34\x56\xf5\xae\x5a\x93\xc4\x19\x1e\x99\x91\x08\xcc\x55\x58\x2d\xa1\xcc\x1e\xed\x41\x6d\x6f\x6b\xb7\x41\x41\x02\xb4\xf7\x5e\xac\x70\xd8\x01\xba\xd7\x83\xdc\x15\x21\x37\x00\xed\xa8\xa8\x6f\x43\x66\xf6\x7b\x98\x61\x7f\xef\x52\xc0\xc4\x2d\x02\xb6\xc3\x71\x37\x0a\x76\xfa\x83\x7d\x79\x20\x75\xac\xd5\xb8\xdd\x83\xbe\x14\xc7\xfb\xae\x48\x4c\xf8\x79\xa6\x35\xf4\xd9\x21\x1d\x4c\x98\xde\x0d\x08\x06\x96\xb5\xa3\x62\x45\x00\x80\x41\xd4\xd5\x0a\x9c\xf6\xb2\x51\x7d\x20\xc2\x8e\xed\x6a\xc5\xea\x00\xce\xc8\x94\x6d\xdd\x04\xa4\x4c\x2d\x43\xc4\xdb\x58\x41\xc5\xbe\xa2\xce\x0e\x0f\x4c\x39\xa2\xc5\xed\x4d\x33\xf2\xaa\x32\x4d\x1c\xe1\xf2\x20\xc9\x04\x6a\xd9\x89\xb4\xd3\x77\xa1\x3a\x33\x7c\x38\xbf\xe7\xf6\xea\xf2\xe6\xea\xee\x8b\xa5\x21\x71\x0e\xd0\xe4\x3c\x24\x1e\xe7\x9b\xab\xef\x2f\x3e\xbc\xbd\x5b\xbc\x99\xdf\x3c\x47\x22\x12\xfd\x74\x40\x26\xd2\x2d\xe1\x8a\x5e\x6a\x55\xca\x9f\x8e\xba\x93\x4d\xa5\x16\x62\x42\x46\xbc\xc3\xee\x1d\x52\x77\xb0\xd1\x36\x2e\xaa\x03\x2d\x25\x54\x28\xbc\xd1\x1c\x0c\x6a\xc0\x28\xbb\xca\xf2\x1c\xea\xd4\x9c\x1b\x97\x8a\x4f\xec\xa4\x82\xfc\x61\x6a\x3c\x92\xa9\xb1\x5a\xd6\x80\x61\xc1\xb5\x74\x6f\x8d\x2d\xac\x50\xdb\xda\x09\x30\x19\x94\x29\x0d\x41\xa7\xae\x33\x25\xfd\x30\x90\x10\xaa\x52\x51\x2f\xde\x1d\x2d\xe2\x73\x96\x21\x92\xe2\x35\x56\xd7\xe4\x1d\x57\xdb\x9f\xac\x7e\xf2\x8f\xee\x0b\xf1\x10\x67\x0a\x15\xd3\xda\x69\xbe\xed\xde\xba\xaf\xfd\x11\x80\x79\xb7\x2b\x29\xc0\xd7\x0d\x9c\x4b\x7e\x21\x69\x21\x10\xb4\xdc\x3b\xc1\x1f\x32\xcc\xd6\xd0\xab\xc6\x3c\x5b\x51\x68\xe7\x3a\x03\x8f\xb8\x40\xee\x9a\x28\xc9\xab\xa2\x94\x86\xcc\xf3\x8b\x8f\xb7\xb1\x42\x6a\x4e\xba\x85\x08\xd8\x1a\xbb\xc0\x5c\x01\x5d\xeb\x9f\x35\x94\x50\x82\xbd\x44\x5f\xe8\x46\x0a\x55\x20\x23\x5e\x9e\x4b\xe3\x77\x06\x8e\x47\xca\x94\x38\x11\x80\x36\xd1\xbf\x4f\xa4\x68\x1a\x4e\xad\x1d\x2f\xfd\x4a\xa4\x60\xcd\xfd\xd4\x57\x06\x09\x89\x88\xcf\xb9\x73\x3a\xf2\xe1\xc7\xee\x22\xca\xe1\xec\xdc\x44\xf5\xec\xf4\x51\x7b\xe9\x0e\x9b\xfb\x75\x2b\x9d\x70\x2b\x8d\xb8\xd7\xc3\x5b\x22\xba\xd7\x56\x80\x3a\x4c\x6a\x1f\xce\x74\x65\xd8\x39\xe4\xd9\xd8\x69\xec\xbc\x75\x3c\x94\xd0\x41\x01\xce\xeb\x77\xd7\x57\x61\x78\x72\x7e\x7d\x77\xf5\xc7\xab\x9b\x5a\xc9\xdd\xdb\x77\x17\xb5\xb2\xb9\xdb\xbb\x9b\x46\xb5\xdc\x77\xef\xde\xbd\xbd\x6a\xc5\x39\xaf\xee\xe6\x3f\xd4\x1a\x7f\xf3\xe1\xe6\xe2\x6e\xfe\xae\xf6\xdc\x77\xf3\xeb\x8b\x9b\xff\x0a\xff\x72\x75\x73\xf3\xee\xa6\xd1\xdf\x87\xcb\xe1\x88\x69\xed\x33\xba\x4d\x71\x1f\x90\x09\x50\x95\x3a\xa7\xf4\xf3\x71\x98\x7b\xa5\x28\x3b\x15\xea\xd1\x96\x0e\x71\xb2\x7d\xae\xa4\xd9\x51\xe5\x3f\x6a\xa1\xf8\x97\x44\x28\x4c\xbb\x2a\x89\x55\x3a\x0d\xf3\x85\x62\xf5\x11\x79\xa7\xbf\x27\xca\xf7\x3f\x82\xd3\x94\x1f\xf6\xdc\x85\x70\x58\xff\x82\x7d\xb8\xdf\xce\x63\x55\xe3\x7c\x0b\xde\xaa\x51\xd6\x9e\xc7\x8a\xc1\x2d\x53\x9d\x14\xe7\x70\x96\xcf\xb5\x59\xbf\x26\x06\x07\x2b\xeb\xf4\xc3\x52\xeb\x87\xd7\x52\xbd\x06\x6d\xa3\x7c\x2d\xaa\x52\xbf\x86\x80\x0b\x26\xa4\x14\xaf\x19\xe8\x9d\x91\xf2\x8b\xd7\xf7\xd9\xa3\x84\xff\x3b\xbf\x2f\x37\xf9\xff\x29\xb6\xf7\x3f\x9d\xad\x73\x73\x66\xdf\x3d\x0b\xdf\x3d\xe3\x77\xcf\xf8\xdd\x33\xfb\x1a\xfe\xdf\x76\x87\x86\xbb\x24\xca\xcd\x58\x65\xaa\x90\xa6\x84\xea\xc4\x27\x93\x95\x9e\x10\x78\x17\xbd\xf8\xe7\x3f\xa3\x73\x23\x9e\x30\x01\xf7\x8d\x28\xc5\x7b\xd4\x1c\xff\xf5\xaf\x17\x51\x51\x6a\xa2\xad\xd8\x0a\xf3\xb9\x92\xa5\xd5\x61\x73\x99\x94\xd1\xff\x8d\x15\x30\xdd\x6c\x76\x8b\x12\x35\x6a\xd4\x2e\xd3\x22\xfa\x0f\x6c\x73\x8e\x28\x18\x69\x61\x5b\xea\xc9\xcd\xc9\x44\xde\xc1\x0d\xd2\x63\x7c\x7d\xce\xdf\xd0\xf3\x13\x24\xce\xe7\xbc\x16\xeb\x77\x00\x94\xc5\xe7\x1c\xe0\x56\x72\x2d\x38\xdc\x13\xb9\xcd\x0b\x12\x90\x06\xd7\x75\x46\x5a\x4e\xc5\x23\x4e\xcc\xa1\x74\x49\xb7\x08\xad\xc4\x36\x59\x8b\xf9\x02\xac\x40\x6f\x61\x02\x00\x4b\x66\x4f\xc8\x2d\xea\xb8\x48\x47\x09\x5f\x0e\xb2\xbf\xd4\x46\xac\x3d\x7d\x28\xd3\x93\xff\xfe\xdb\xd7\xaf\x67\xd1\xba\x80\x7f\x2c\x3f\xc3\x3f\x20\xfe\x70\x2a\x30\x99\xd6\x64\xba\x50\xda\x18\x4f\x6d\xef\xcb\x47\xc9\xb0\xe7\x07\xa4\x6a\x6c\xd3\xef\x2a\x95\xe6\xd2\xe7\x13\xd7\x8c\xdd\x5c\x33\x37\x11\xaa\x3c\x90\xfc\xcb\x70\xc0\x19\x1a\x20\xd1\x52\x26\xc2\x0a\xbe\x56\xdf\x18\x9e\xd6\xab\x52\x2a\xd4\x73\x8c\x07\x04\x16\xa8\x93\x40\x6c\x08\x82\xa9\x40\xb5\xb9\xd9\x02\xef\x66\x06\x0e\xc0\x3b\x44\xa1\x9a\x35\x7f\x02\xe6\x3c\xc4\x94\x02\xc4\x16\x24\xf8\x93\x6c\x89\x63\x1d\x56\x65\xac\xaa\xb3\x15\x2a\x15\x05\xec\xc0\x95\x01\x3f\x96\x89\x44\x7b\xa0\x33\x0c\xe8\x5b\xcb\x5e\xa8\x1d\xf9\x8c\xc3\x99\x40\xc4\xab\x60\xcc\xb3\x60\x10\x78\x27\x20\x57\x68\xf3\xc5\xf3\x58\x39\xd6\x49\x8c\xa6\x31\x8f\xf1\x76\x47\x25\x8e\xcd\x49\xcf\x58\x27\xa2\xe9\x9e\x79\x5e\xaf\xe6\xb3\xc0\x68\x1c\x3a\x4d\x00\x5c\x2b\x24\xdd\x60\x62\x90\x97\xc0\x03\x2a\x4d\xf1\xca\x1e\x43\x80\x73\x2c\x3d\x0c\x58\x56\xf8\xc5\x70\x24\x95\xa4\x07\xda\xe6\x21\x82\x08\x09\x08\x6a\x57\x47\xc7\xea\x52\xc1\xf6\x1f\x95\xaf\x3d\xbe\xd1\x35\x5e\xfa\xd7\x2f\x1a\xeb\x08\x23\xc3\x9d\xbc\xb9\x93\x20\x02\xf0\xc8\x86\x12\x17\x1b\x25\x4e\x4b\x54\x4e\x98\xe1\x20\xb3\x57\x56\x69\x2d\x80\x32\x56\x74\x03\xcf\xa2\x95\x14\xe5\x3d\x84\xc6\x8b\x47\x14\xc6\x78\xdd\x97\x4f\xda\x47\x57\x18\x27\x13\xc2\xe9\xb5\xc6\xbd\xfa\x8f\x8f\x81\xaf\x58\x24\x25\xba\x8e\xfb\x10\x04\x9d\xaa\x02\x93\xd5\x29\x10\x0f\x98\x07\x86\x5d\xf4\x77\x34\x03\xf8\x78\x30\x4d\x98\x89\x1d\xba\x00\xa3\xe6\x38\xf0\x07\x2b\x78\xf0\xeb\xd0\xc1\x1f\x08\x47\xa8\x47\xa2\x68\x3c\x9e\x33\xef\x9d\x0b\xa1\xd2\xc0\xf3\xd2\x77\xa8\x06\x26\x02\x06\x70\x58\xe2\xb2\x7d\x75\x2f\xa0\x44\x21\x0d\x63\x42\xe2\xb7\x22\xa2\xc4\x7d\x66\xd2\xb3\xad\x30\xe5\x8e\xb7\x6f\x9e\x2d\x8d\x30\x3b\x20\x34\x8f\x2e\x8c\xd1\x4f\xa7\x9e\x85\x5e\xd1\x72\x27\x8a\x87\x13\x03\xd4\x00\x20\xd3\x14\x80\x99\x4e\x3c\x99\x5a\xb0\x3c\x95\x8b\xc3\xb0\x6b\xfa\xf0\x77\x3a\xfb\x31\xb2\x34\xbb\x85\xdd\x88\x9b\x6d\xaf\xa4\x18\x95\x76\x35\x5e\xc9\x9d\x06\x8b\x03\xf7\xf3\x08\x58\x9c\xda\xaa\x7e\x3d\xb0\x38\x1d\x88\x37\x6d\x58\x9c\xf9\xf5\xfc\x6e\x7e\xf1\x76\xfe\xdf\x8d\x16\x3f\x5e\xcc\xef\xe6\xd7\x7f\x5c\x7c\xff\xee\x66\x71\x73\x75\xfb\xee\xc3\xcd\xe5\xd5\x70\x9d\x6b\x7b\xf4\x5e\x05\x3f\x8b\xc2\x7e\xbe\x8d\xee\x02\x17\x3c\xa6\x2b\x91\xfe\x4d\x9c\x01\xb0\xab\xec\x61\xce\xd4\x7a\x06\x07\xf5\xdb\xe8\xca\x98\xf9\x46\xac\xe5\xfb\x2a\xcf\x21\x50\x86\xb9\x81\x97\x46\x82\xe1\x39\x8b\xde\xeb\x74\x1e\xbc\x07\x09\xcd\x9d\x9f\x01\xfd\x8b\x34\x35\xb2\x28\xb0\xfb\x19\xf5\x1f\x84\x85\x5c\xb2\x34\x85\x45\xc5\xa3\xc8\x72\x6b\xbf\x7d\x0b\x34\x66\x7a\x45\x84\xb4\x33\x97\x7a\x19\x7d\xae\x74\x29\x22\xf9\x53\x02\xb5\xdd\xdd\xfb\xe4\xad\x5e\x3f\xaf\x0d\xd4\x7d\xa6\xf7\xc3\x61\xf4\x18\x29\x80\x99\xbd\x98\x42\x83\x4f\x5f\xf9\x03\xbe\x4a\xcc\xf7\x9d\xad\x97\x65\x7e\x82\x5a\x93\xb7\x7a\xdd\x8d\xb2\x0a\xda\x35\x41\xc3\x7a\xbe\x4e\xa8\x5c\xd3\xeb\xa8\xc8\xd4\x43\xac\x3e\xde\x4b\x15\xe9\xca\xe0\x9f\xc0\xcc\xb7\x6a\x66\x5e\x15\xf7\x32\x8d\x74\x55\xce\xa2\x27\x19\x6d\xc4\x0e\xd5\x66\xb0\x09\x1c\x4a\x27\x6c\x19\xb8\x45\xec\xdb\x79\xa6\xac\xb4\xd8\x66\x9c\xd9\xd4\x5c\xfa\x53\x58\x5c\x8c\x6c\x20\x8e\x07\x1e\x1a\x57\xbe\xf1\x74\x2f\x21\x73\xdd\x47\xc4\x39\xf4\x43\x92\x1b\xd8\x0b\xb4\x7e\xa8\xb6\x1e\x03\xe5\x05\x03\x0d\xc2\x74\x3f\xea\x2c\x8d\xd2\x6a\x9b\x67\x89\x93\xbb\x4f\xda\xf4\x02\x3d\x61\x0a\xde\x04\xa0\xa7\x46\x62\xe9\xd0\x87\x75\xe4\xf7\x05\x31\xd2\x01\xc8\xa7\x67\x06\xbd\x0a\xd8\xa3\xab\x42\x9a\xb3\xd2\x64\xeb\x35\x28\xe0\x9c\x2d\xfc\xf5\xa3\x62\x79\xd4\x8d\xe3\x13\x63\xc3\xb2\x95\x5c\xaf\xb3\x44\xe4\x61\xda\x8a\xf7\x77\x3b\xd8\x1d\x3e\xf6\xdb\xca\x6c\x75\x01\xd9\x11\x6e\x40\xbd\xe5\xc4\x5b\x23\x01\xf9\x69\x81\x84\xdc\xc7\x13\x85\xcf\x57\x91\x35\xd0\x99\xd1\xd2\xd7\x75\x31\x29\x30\xdf\x70\xbe\x6f\x86\x9d\x46\xee\x32\x05\x29\xd4\xfa\x49\x49\x03\x1a\x2c\x38\xf4\xed\x97\x2a\x0d\xba\x89\x83\xa2\x76\x99\x27\x0c\x73\xbe\x72\x29\x36\x98\x7b\xbf\xce\x1e\xa5\xfa\xf2\x28\x66\x41\x07\x89\x48\xee\xe5\x82\xf5\xf2\x53\x8b\x2c\x77\x01\x4c\x14\x56\x0c\xcf\x19\x8a\xd2\x28\x03\xe4\x88\x04\x4d\x27\x1c\x71\x5b\x76\x21\xec\xf4\xa8\x4b\x09\x80\x4b\xeb\xfe\xb9\xe6\x75\x70\x2c\x06\xb7\x4b\x92\x3b\x54\xfb\x1f\x76\x04\xac\x73\xbd\x84\x1a\xab\x36\x3a\x77\x78\xc3\xf6\x01\xfd\x3e\x4a\x63\xb2\x74\x8a\x64\xe2\x39\x79\xe7\x5e\x1d\x1a\xa0\xe3\x85\x73\x3d\x81\x50\xc8\xd0\x57\xd7\xd0\xdc\x9b\x39\xfc\xfb\xcc\x04\x88\x6d\x14\x2e\xb8\xe1\x14\x09\x46\xd8\x03\xc7\x84\x1e\x20\x1a\x6c\x7f\xcb\x51\x0b\xdd\xae\x0a\xdb\x33\x97\xbe\x90\x6c\x78\x91\x8f\x28\xed\xc1\x3a\x24\x57\xdf\x33\x05\x26\x89\x97\x0e\x03\xcf\x40\xe2\xe8\x16\xb1\x96\x11\x34\x6a\x45\x9b\xf3\x7e\x47\xe1\xae\xa3\xea\xd6\x9f\xe1\x44\x55\xa5\xf6\xde\x4a\xf8\x9e\x39\x80\x87\x84\xb9\x86\x20\x36\xe6\x69\x27\x39\xb7\xbf\x3e\xf8\x68\xf6\xa9\x2a\xc7\x79\x9c\x2e\xa2\xad\x91\xec\xf7\xde\xc9\xd2\x55\x36\xe4\x8c\xc7\x0c\x6e\x5d\xf7\xd5\xf5\xd2\x2e\xae\xde\x70\xe5\xb8\xe0\x84\xd5\x4c\xbb\xbb\xd9\x6a\x25\x15\x65\x07\x28\x1d\x2b\x6a\x9c\x69\x52\x9c\x67\xb8\x96\x84\x39\x23\x83\x1c\x53\x7a\x64\xa1\xf3\x47\x0a\x01\x04\xa8\x7b\x80\xc7\x6d\x07\x78\x69\x75\x1b\xab\xc9\x43\x6c\x8a\x32\xf2\x20\x47\xa1\xc1\x15\x62\xe4\x3a\x2b\x4a\x19\xe6\xad\x86\xef\x9f\x8c\x05\xa0\xa6\xfc\x0f\x4d\x7d\x2f\x0b\xc0\xbe\x5b\xdc\x9e\xda\x09\xe3\xd9\x6d\x65\x3a\x77\xef\x0d\x6f\x86\x5a\xf2\x79\x1a\x08\x89\xda\x2d\x80\x7b\x00\xb5\x97\x02\x8b\x5d\x0b\x87\x97\xe7\x16\xc9\x11\xf9\x33\x48\x37\x2c\xd1\xba\x12\x46\xa8\x52\xca\x22\x56\x14\x38\xc1\xa2\xed\xb0\x2e\x69\x55\xa3\x7d\xf0\x77\x73\xa2\x8b\x12\x6b\x20\xe1\x95\x95\xc8\xf2\xca\xf4\xaa\xcb\xb8\x2b\x0f\x2a\xb8\x18\x9a\xa5\x4b\x68\x36\xea\x5a\x34\x97\x5a\x1d\x9c\x22\x57\x37\xd4\x0c\x7b\xd4\x33\x8f\x7b\x3e\x81\x45\xee\xf8\xf5\x76\xbe\x92\x9e\x6c\xeb\xff\x5f\x2c\xb6\x7a\x82\xc4\x23\x8a\xd3\xce\xc6\x8a\xcf\x2d\x9b\x7e\x20\xfc\xf7\xb9\x0f\x41\x50\x14\x0f\xe0\x39\xdf\x67\x4a\xec\xf7\x0f\xfe\xfe\x77\xfb\xfd\xeb\xbd\xb2\x0b\x76\xed\xbd\x50\x69\x0e\x74\xa8\x65\xe3\x06\x72\x67\x00\x60\xfb\x4b\x16\x8e\xfd\xe9\x86\x90\xbd\xb3\x48\x5a\xa9\x9f\xfb\xe6\xa9\x91\x33\xba\x27\x85\xb0\xd6\x4b\x3d\x93\xb3\x2b\x83\xc8\xdf\xec\x44\x1f\xe1\x0e\x6c\xff\x16\x5c\x65\xeb\xd3\xc3\xe7\x8c\xe5\xd3\x70\x5a\xf6\x0f\x6d\x49\x99\xd0\x51\xa4\xfb\xcb\x51\x68\x1c\x79\x18\x21\xf3\xcb\x0a\xb3\x10\xa4\x28\x56\xc4\x2e\x83\x41\x23\x88\x16\x60\x21\x6e\x11\x7d\xe3\xd2\x81\xbf\xf9\x03\x97\x61\xee\xa2\x15\xcc\x35\xd4\x3a\xeb\x24\xa9\x0c\x44\x74\xc8\xea\x8c\x24\xde\x4d\x53\xb0\xe4\x2e\xf0\x46\x76\x71\x78\x54\x9f\xba\xb4\x07\xe7\x66\xa8\x7d\xd4\x1d\x58\x97\xc8\x93\xe3\xee\x42\xc2\x9d\x35\x45\x19\x15\xa5\xdc\x76\x4a\xa5\x9a\xd2\x55\xbf\x4e\x8e\x82\x0b\xea\x62\xb4\xd9\x0f\x4b\xf6\x83\xd8\xf6\x98\x21\x48\x77\x71\x6c\x8b\xfb\x96\xc1\x15\x71\x35\xef\x4a\xe0\xda\x00\x38\x55\xe2\x09\x69\xcf\x9e\x83\x56\xfb\x22\xf5\xd0\x53\x48\xe3\x1c\xc2\x1e\x45\xf6\x87\x64\x5b\xfd\xd5\xe9\x39\x3a\xbe\x10\x98\xc2\x9c\xd8\xe0\x12\x61\xf1\x42\x24\xbf\x43\x90\x16\x9b\x0b\xc3\x6d\x0d\x2c\xc7\x91\x28\x63\x1e\x18\xf2\xe4\x52\x72\x04\x4a\x5f\xaf\xe4\xdc\x87\x31\xf6\x18\x82\x2a\x82\x02\xe7\x2b\x2c\x46\xf9\x3d\x1c\xb6\xd8\x8f\x75\x64\xcc\xda\x14\xeb\x6c\x14\x84\x68\x63\xb0\x1f\xe8\x76\x4e\xa5\xd2\xa5\x8c\x44\xa4\xb2\xfc\xb5\xaa\xf2\xfc\xf5\xb5\x56\x56\x30\x17\xd9\x1a\xab\x42\xc0\xc7\x8f\x9c\xc6\x9e\x1b\xb7\x16\xdc\x09\x8e\x00\x08\x67\x3b\x24\x8c\x3b\x95\x56\x62\xda\x25\xc8\x77\xb1\xb2\x6f\x10\x3d\x1f\xe4\xa0\x64\xae\x48\x1d\x7b\x63\xb2\x12\xea\x0b\x00\x9b\x76\x61\xe3\x1d\x1b\x6c\x88\xdf\xe3\xa8\xe2\x70\xc8\xa7\x3c\xc2\xee\xbb\x0e\x0a\xe7\xa8\x35\xce\xaa\xc6\xf0\xd6\x52\xe6\x1a\xe9\x8a\xfb\x84\x80\xde\x88\xec\x18\xaf\x6f\x38\x04\x6c\xac\x77\x04\xb1\xba\xe0\x47\x1c\xd9\xa9\x63\xf6\x23\x90\x75\x20\x6a\x72\x36\x87\x0b\x01\xd1\xc7\xf5\x7c\xc4\x54\xe4\xf8\xf6\x2e\x05\x22\x40\x72\x3f\x3a\x7b\x16\x11\x0f\x59\x5f\xe4\x2f\x1a\x77\xa8\x06\xa3\xd6\xdd\x97\x3d\xd9\xcb\x6c\x2e\x39\xb5\x75\xc4\x7e\xfc\x39\x03\xd8\xcf\xc9\xf6\xd2\x49\xed\x02\xcf\xd9\xd6\xe8\x4f\x53\xe9\x5b\x78\xf6\x4e\x11\xdb\xfb\x8c\x68\x6e\x0b\xbd\xe2\x34\xe7\xf1\x77\x7a\x0b\x4f\x6f\x5c\x70\x25\xc4\xd0\x08\x71\xe7\xda\x1b\xa7\xcf\xa2\xd6\x6a\x41\x36\xf7\xb8\xc1\x36\x27\xec\x9d\xfa\x1e\x5f\x7f\xaf\xf3\x2c\x19\x8e\x48\xf1\x75\x05\xe4\x82\x2d\x17\x3f\xd0\x70\x4a\xc4\xce\x11\xec\x08\xc0\x50\x4b\x29\x93\xd2\xfb\x94\xda\x1f\x37\xc5\x7b\xc9\x26\x84\x6b\x05\x20\x8e\x3d\xaf\xac\xbd\x6a\xa0\xcc\x17\x50\x54\x50\xb9\x86\xbc\x4f\x70\x66\x26\x82\x6c\x8e\xda\x40\x40\x5e\x3d\xdd\xeb\x5c\xce\xd0\x69\x05\xe1\x9e\x58\x6d\xa5\x49\xb4\x35\xdc\xa2\x54\x3f\x51\x59\x5c\x96\xa7\x1e\xaa\xec\x25\x44\x9f\x21\x46\xf4\x8a\xf0\x58\xa5\x73\x2a\x3a\x8e\xcc\xfd\xdb\x96\x39\x19\x8e\x53\xde\x4f\x17\x4e\x1a\xda\x05\x1f\x29\xc8\x83\x53\x41\xb4\x76\x0d\xf7\x90\x9d\xf4\xda\x78\xa6\xad\xb0\x74\x28\x54\x70\xe9\x20\xa1\x6a\xd9\x58\x57\xc2\x2b\x68\x4e\x25\x94\xbe\x63\xe6\x22\x46\x0c\xac\xd1\x08\x59\x03\x02\x55\x13\x5f\x88\x4a\x8b\x1a\x2b\xef\x10\x7b\x51\x84\x6a\x4a\xe7\x3a\x63\x65\x37\x07\xac\x66\xd1\x8b\xda\x87\xbe\x80\xd2\x68\xa5\xa1\x3f\x72\x5a\xd4\xa6\x06\xb6\xeb\x2c\xca\xca\x58\x65\x05\xee\x4c\x23\x73\xf9\x68\x47\x47\x67\x27\xf0\xb5\x4b\x02\xc9\x73\x9f\x0d\x39\x0f\x82\x53\xe5\x1d\x95\x07\x14\x21\x99\xb0\xc4\x56\x40\xc2\x1c\x70\x1d\x56\x0a\x40\xa8\xe4\x4f\x48\x28\x69\x8d\x5f\xf4\xf7\xa7\x52\xf1\xf8\x20\x0c\x80\x68\xe1\xb1\x9a\xaf\x20\x5f\x19\xb2\xa4\x53\x88\x6e\x0a\x07\x4b\xe4\xea\x9d\x32\x4a\xdf\xd4\x94\xee\xed\x98\xe2\x10\x4e\x18\x4f\x92\xb4\x66\x77\x09\xc4\xe2\x30\xaf\x4a\x8a\xf2\x3e\xca\xca\x19\x14\xaa\xb1\xe0\x88\x95\x48\x89\x8d\x81\x9a\xb3\x53\x03\xfb\x7e\x60\x9d\xe9\xf7\xa5\x7e\x1c\xd2\xf3\x8e\x0d\xf3\xe1\xa9\xde\xe6\x42\x2d\x50\xa0\xfe\x0c\x81\xbe\x00\xe9\xb9\xcf\xb7\x55\x2d\x17\x8e\x79\xf1\x24\xe3\x74\xda\xcf\x4d\x0d\x7f\xdd\xaa\x75\xdc\xd1\x0c\x37\x83\x07\xd7\x60\x6d\xdd\x95\x00\x90\x3b\xd9\x44\xec\x72\x1b\x2f\x05\x7c\x0c\x50\x34\x5c\xcf\xbc\x5b\xf7\x05\x01\x79\x07\x7c\xad\x01\xa9\x31\x2b\xdf\xb8\x43\x9a\xcb\x3e\x3d\x16\xd2\x52\x98\x0e\x8a\x87\xec\x19\xd6\xf3\xc6\x44\x7a\xdd\x0a\xed\xd8\xc8\x47\x47\x53\xed\xfc\xcc\x98\xe8\x23\xa3\x42\x5b\x5b\x87\xbd\x1e\xdd\x48\xde\xa1\x59\xa2\x3b\x82\xe9\xa7\xac\x37\xae\xf3\xfd\x8d\xae\x13\x40\xbe\xec\x68\xae\x22\xf6\x5e\xcc\xa2\xf8\xb7\xb8\xb3\x8a\xf8\xb7\x94\xba\x4e\x80\xf0\x4c\xc6\x4d\xe7\x27\x75\x54\xdc\x35\xef\x3b\x66\xb8\xf8\x03\x47\x24\xd1\x93\x3c\x7c\xa7\x9c\x99\xa9\x2c\xd8\x41\x11\x05\x26\xc1\x2d\xb1\x01\xba\x26\xd1\x0e\xdd\x31\x45\x36\x90\x96\x98\x2a\x29\xfd\x07\x3b\x52\xe1\xef\xf8\x45\x3b\x45\xdb\x8a\x6e\x54\x47\xe2\xab\x4d\xac\xb8\x35\xf2\xd1\x11\x97\x76\xb3\xa9\x36\x99\x76\xb0\x57\xc1\x6f\xcd\x70\x91\x80\x42\xea\xeb\xc0\x9b\x72\x00\xfc\xe0\x4b\xe9\xa9\x2c\xce\x23\x4f\xe7\x0e\xaa\xc7\x00\x73\x74\x9e\x33\x6d\x32\x6a\x6d\x41\x32\x4e\x51\x41\x81\xf5\xaa\xb2\xe2\x28\xa8\x42\x8f\x15\x50\x88\xaf\x32\x48\xf5\xa0\x79\x89\xd5\x0f\xba\xe0\xda\x8f\xc2\xcf\x07\xa7\x0d\xd0\xb4\xbd\x70\xa8\x99\xf4\x87\x37\x70\x6d\xaf\x30\x80\xdd\xa0\x51\x81\x2c\x2c\x2a\xe0\xda\xe9\xca\xf8\x8f\x4a\x84\x8a\xd5\xdf\xed\xf4\x30\x33\x36\x2d\xab\x5e\xe1\x21\x66\xda\x99\xe8\xe5\x27\x6c\xf4\xe5\x1f\x5e\x7d\x7a\x85\x35\x58\x55\x01\x40\xc5\xb3\xfa\x15\xe2\x00\x49\xaa\x3c\x87\x4c\x65\xfe\x02\x57\x3a\xe5\xbb\x18\x24\xc5\x24\x2b\x67\x22\x81\xf0\x5e\xea\x60\xef\x8d\xbd\x88\x12\x51\x26\xf7\x67\xac\xcd\x85\x6c\xe1\x19\xd3\x96\x13\x62\xa9\xd5\xb5\xba\x31\x39\xac\x05\x66\x36\x8e\x08\xa4\xb6\x5f\xec\x27\x40\x2c\xe5\xae\xb6\x2b\x43\xba\x1d\xdc\x9c\x9e\x83\xc3\x6b\x7a\xee\x71\x86\x21\xf5\x2e\x54\x72\x1b\x2b\xb1\x91\x69\x14\x23\x6a\x5f\xfc\x5b\x5e\xfe\x58\x6d\x97\xe7\xf9\x6e\x55\x52\x49\xb2\x9d\x96\x73\x80\xea\xdb\x73\xd3\x2d\xd2\xb6\xa9\xb4\x67\xba\x7b\x8d\xad\x6e\x7d\xc7\xcd\x8e\xeb\x69\xbc\xd2\x82\x6e\x1f\x37\x3f\xb7\xf5\xb8\x50\x1d\xd3\x05\x08\x96\x89\x0e\xda\x2a\xb9\x81\x62\xe5\xcf\x27\x32\x6d\x42\xbd\x6f\x96\x20\xe4\xb6\x12\xf9\x0e\x12\x86\x66\xb1\xc2\xe2\x68\xc0\x47\xd8\x25\x79\x96\x10\xb5\x73\x5d\x17\x92\x8f\x52\x95\x57\x54\x0d\xc4\x99\x49\x73\xb5\xd2\xc7\x28\x44\xae\xba\xe8\x28\xfa\xa2\x79\x5d\xe3\x11\xbe\x6c\xca\x3b\x1d\x13\x23\x21\x63\x67\xb9\x0b\x32\x19\xdc\x16\x9f\x11\xf8\x27\xd4\x8f\x47\x7f\xa9\x96\x3a\xe7\x02\xfc\xf9\x9b\x48\x1b\x40\x35\x2a\x35\xfd\x29\x4b\xfb\xee\xb1\x4c\xa5\xf2\xa7\xa3\xaa\x60\x86\xaf\x24\x56\xf1\x6c\x37\x01\x78\x4e\xf3\x63\xe1\x1c\x19\x69\xaf\x8b\x92\xad\xb8\xd6\x53\x45\x33\xac\x7a\x91\x97\xf7\x10\xeb\xc4\x2c\x1b\x3f\xa9\x1b\xb1\x8b\x92\x7b\xa1\xd6\x81\x19\x6d\xa7\xcf\xc8\xad\x36\x88\x32\xfb\x08\xe5\xe6\xda\x70\x96\x31\xe5\xce\x52\xaa\x8f\xf3\x01\x63\x84\x5d\x73\x82\xac\x58\xaf\x8d\x5c\x43\xe1\x47\x8d\x9c\x10\x25\xa8\x03\x1e\xc2\x7e\x86\x92\xa7\x4f\x53\x81\xd4\x67\xb9\x94\x66\xe7\x52\x4f\x09\xa2\xd9\x4d\x5d\x6b\x5a\x67\x51\x26\xcf\x67\xd1\xef\x7c\x56\x81\x4c\xb4\x72\xb9\xab\xdd\xdf\xb0\x6d\x78\x6b\xf7\xc8\xa2\x8e\x52\xa5\xee\xb1\xc3\x6f\x2d\xa0\xe7\xce\x4d\x33\xd5\x79\xc6\xf1\x6e\xca\x64\x29\x9a\x0a\x7e\xc7\x7e\x73\x64\x5b\xda\xa0\x9e\x08\xa4\x5b\xbe\xa8\xa3\x76\x24\xbb\xc4\x4f\xad\x32\x0d\x08\x04\xbe\x94\x35\xd6\x57\x13\xd7\x3d\xed\x1f\x7a\x2c\x31\xbe\x09\x1b\x8e\xfc\xd6\x6e\xc0\x79\x32\x87\x32\x34\x23\xd0\x17\xbb\xd3\xb4\xc9\xd6\x99\x12\xa5\x36\xd1\xcb\xf7\x8c\x8e\xf3\xca\x21\xba\xc1\x2c\x9e\x62\x53\x76\xd0\xca\x77\xeb\xfa\x90\x32\x21\xd3\xc5\xb4\xca\xe2\x2e\x02\x9c\xbd\x29\x41\xf6\xa9\xa2\x14\x9b\x6d\x08\x8a\xe1\x70\xd9\x69\x66\x72\x9c\x84\x88\x07\x06\x5e\xa5\xac\xf0\x69\x9e\xb1\x22\x5f\x2c\xae\x9b\x36\x1d\xcc\x6e\xcd\xaf\x04\xbd\x65\x71\x60\xa1\x17\xea\x8d\x23\xde\x1e\x8c\x61\xdd\xbc\x65\x17\xb5\xd7\x43\x6b\x8a\x1d\x7c\x28\xd6\xe8\x17\x70\x47\xa0\x49\xe1\xc4\xb0\x95\xc9\x5c\xcf\x72\x99\xeb\x2a\x8d\xe8\x7e\xa1\x78\x98\x39\x47\x59\x07\xa0\x19\xe7\xe7\x7d\x15\xc4\x13\x91\x96\xdd\xf9\x86\xf7\xba\x77\x38\xfc\xd6\x59\x2f\xb6\xe7\x68\xd1\xcc\x4e\xf3\x76\x50\x28\xf8\x07\xb1\x1d\xae\x4a\x12\x6c\xa9\x61\x0e\x61\xc8\x2d\xd8\x71\xf6\x7b\xa6\xcb\xf9\xdf\xa0\x82\x77\x9a\x6b\x86\x91\xb4\x61\x3f\x87\xae\xcb\x0e\x8c\x91\x66\x9e\xde\xb1\xdd\x71\xb2\xfc\x70\x57\x5b\x61\xa4\x2a\x17\xd0\xe3\xb4\xce\xa0\x93\xf7\xf0\x7a\xed\xfa\x1b\xe5\x82\xfa\xeb\x9d\x46\xcf\x22\x97\xeb\xfc\x2d\xba\x25\x5b\xba\x60\x56\x0e\x7b\xfb\xbc\xcc\x20\xf8\x1f\x44\x61\xdc\xc2\xf5\x2c\x17\x7d\xd0\x01\xb3\x17\x7c\x50\x4d\x74\x8e\xfa\x20\x3f\x7a\x44\xbb\xb4\xad\x90\x5b\x81\x92\xb4\xad\x28\xe3\xbf\xf9\x3d\x87\x85\x0f\x3e\x1e\x18\x89\x32\xb2\xeb\x97\x47\xff\x90\x46\xfb\x02\x79\x62\xfa\x0b\x1a\x1e\xd4\xbe\x0e\xc7\x95\x46\xed\x0a\x11\x8d\x43\x48\x4f\xf8\x0b\x55\x44\xa1\x1d\xb3\xdc\xb1\x72\xd9\xe3\xbc\xde\xca\x64\x71\x00\x17\xaa\xaf\x40\xf2\xd7\x75\x20\xdf\xd9\xd5\xe2\x2e\x0b\x3e\xa0\xaf\xc1\x4a\x22\xcc\x81\x8d\xd8\x52\xa2\x0d\x50\x22\xae\xa2\xa6\xdb\xf8\x1c\x3e\xe2\xaf\xff\xf9\xb7\xf3\x3e\x44\x7a\x18\xfa\xc1\x8c\xf7\xdf\x9b\x4c\xaa\x14\xc2\x40\x22\xf5\x8c\xaa\x21\x61\xea\x3e\x68\x83\xbd\x1b\xf2\x08\x5d\xeb\x98\x75\x69\x6b\x53\x0e\xe4\xd5\x6f\xf1\x2c\x0d\xe9\x84\xdc\x06\xf7\x90\x10\x6e\x65\xc0\x49\xd0\xa3\xcf\x9d\xd3\x38\x3b\x7a\x98\x30\x7b\xdd\xf2\xe9\x0b\x69\xaa\x7d\xe0\x14\x63\x86\xcf\x66\xfd\x7b\xad\xf3\x63\x4d\x7b\x91\x33\xb4\xd6\x02\xd0\x2a\x8f\xd1\x64\x70\x03\x38\xf3\x76\xfe\xc6\xb9\x99\x1d\xda\x03\x19\x63\x0e\x2b\x1a\x62\xa0\x34\x04\x88\x3c\x22\x1d\x7b\x7f\xb6\x50\xb1\xed\x88\x34\x4c\xcc\x7a\x82\x36\x30\x44\xe9\xb8\x9e\x5a\xbe\x86\x20\x53\x5b\xf8\x31\x42\x45\x6c\x63\x84\x93\xec\x30\xc4\x96\x6c\x74\xe5\x6c\xb2\xb0\x72\xde\xcd\x63\xd0\x37\xcf\x27\x22\x5a\x5b\xa3\x8e\x2e\x90\x58\x05\x97\x05\xd6\x8c\x71\x5a\x99\x9b\xb5\x2e\x53\xad\xb6\x0d\x8f\x36\xd5\x8e\x81\x47\x19\xf4\x1c\xbd\x09\x91\x4b\x21\x00\x92\xe8\xcd\xd2\x9a\x4b\x88\x38\x4e\xd6\x32\xdc\x72\x17\x5c\x7d\xea\x3c\x1b\x7c\x5b\x21\xfc\x55\x63\xee\x5d\x4a\x57\x58\xc8\x1b\x8a\xac\x7d\x9a\x60\xa8\x5a\x9c\x16\xc9\xa5\x5b\xce\x5e\x34\xbf\x00\x78\xff\x9e\xc4\xae\x00\x98\x57\x6b\xb7\xaf\x56\x9e\x28\x3b\xb4\x23\x9c\x25\xe9\x2a\x9b\x09\x33\xbd\x22\xf4\x67\xfa\x96\x0c\xab\x13\x64\xce\x80\xb6\xbe\xea\xeb\x45\xd1\x3d\x39\x3f\x8f\xd3\xc7\x0c\x3a\x7d\xd0\xeb\xfa\xef\xe1\xe7\x19\xb0\xef\x8f\x74\x33\x04\xd7\xa4\xd1\x09\x11\x94\x95\x11\xa0\xbf\xa3\x38\xb6\x7d\xcf\xa2\x8d\xc8\x14\x1d\x83\xd2\x58\x01\x99\xca\x65\xb5\x5e\xf7\x5a\xbf\xb9\x5e\x3f\x6b\x24\x90\x01\x5c\x82\xe7\x7b\x2a\x53\xf2\x21\x50\x92\x7d\x96\xe6\x2f\xc7\xcd\x31\x58\xb7\x78\x0a\x47\xc5\x9c\x7b\xc2\x68\xcf\x2a\xcb\xe5\x97\xf1\x4d\x9c\xc8\xd1\x32\x1f\xe3\x68\xe1\x70\x21\xa4\x31\x13\x36\x1d\x07\x74\x7e\xf5\xc0\x7c\x19\x0f\x4c\xa7\x8b\xb9\x39\x42\x2c\x3e\x5b\x64\x75\x05\x78\x60\x84\x07\xd6\x98\x3a\x30\x02\x18\x15\x01\x9c\x17\x52\xa5\x05\x50\x04\x9e\xbe\xe8\x14\x6e\x9f\xe3\x6b\x31\xf7\x44\xa9\x6e\xf5\x46\x46\xd0\x55\x81\xa0\x5f\x11\x65\x8a\xcf\x20\x01\xc2\x7e\xa0\x0f\xed\x50\xe0\x08\xae\x2b\x0c\x31\xa5\x5e\x69\x7d\xa9\xe4\x53\x64\x6f\x83\x59\x18\x11\x0e\x96\x07\xd0\x20\x5f\x11\x43\x91\x4f\x20\x33\x32\xd1\x26\x05\xd4\x9d\xb5\x30\x29\xa4\x2d\xd2\x91\xcc\x45\xf2\x00\x34\xfc\x70\x61\x62\x8f\x14\xb5\x66\x60\x1a\xcc\xa4\xf0\xad\x65\x2a\x41\xb6\x18\xa6\xf4\x74\xe3\xc3\xd7\x8b\x48\x24\x46\x17\xe8\x89\x61\xf6\x75\xa2\xfd\x0e\x98\x8f\xa1\xc7\x5e\x27\x8a\x28\x8e\x02\xda\xb9\x08\xf0\x0e\xe5\x4f\xdb\x5c\xa8\xfa\x99\xc4\xcf\x2d\x8d\x00\xd6\xa2\xde\x9d\xef\x0a\x76\xbf\x28\xf0\x40\xc8\x3a\xe2\x8f\x15\x6a\x9f\x46\x8a\x74\x17\x96\x35\x66\x8a\xa8\x04\x44\xba\xc9\x94\x5d\x7a\x86\xb3\x75\xf2\x15\x9a\x4e\x44\x8e\xb9\x1b\x80\xfa\x96\xe7\x8d\xa3\x5f\x44\x4a\x5a\x95\x45\x98\x2c\xdf\x81\x96\xba\x35\xf2\x2c\xe8\x27\x38\xdf\x94\x3c\x9a\x15\xb1\xc2\xb1\x17\xf6\x85\x55\x95\xa3\x2e\x0b\xd6\x9e\xfb\x00\x3a\x87\x1f\xe6\x33\x7b\x8d\x95\x84\xb5\x14\x74\x8c\x08\xa6\xa7\x48\xc4\x6b\xdb\x59\xa3\x5c\x87\xbe\xdc\xd6\x40\x96\xd0\xbd\x7e\xe2\x6c\xe1\x27\xe1\x93\x41\xa6\x18\xa2\xef\x49\x76\xb1\x91\x19\xa4\x8e\x80\xca\x51\xe3\xe1\x04\xe8\x56\xa8\x58\x05\xe1\xf0\x9e\xe8\x3e\xff\x94\x3d\xca\x59\x74\xbb\x15\xe6\x61\x16\xbd\xd9\x29\xb1\xc9\x92\x3f\xeb\xe5\x5e\xdb\xf2\x14\xfe\x15\xa7\x02\x4d\xf6\xbf\x75\x7a\x2a\x66\x01\x42\x48\xe0\x85\x6b\x7b\x02\x38\x08\x0a\x90\xaf\x48\x9e\xb3\x0f\x86\xb5\x17\x46\xe6\x54\x1a\x72\x7f\x9e\x47\xaf\xbe\xdc\x94\x00\x5e\x56\x53\x2a\x7d\x57\x30\xd8\xca\x48\xa8\x00\xb0\x1f\x7e\x06\xb7\x9e\x36\xd1\x36\x17\xa5\xdd\x2b\xcc\xa0\x8d\xbb\x02\x13\x32\x50\xda\x37\x0a\x24\xc6\x5e\xea\xdc\xf1\x62\xab\x75\xde\x79\xb7\x9f\x74\x02\x5b\x9e\xb4\xb1\x93\x37\xc7\xc4\xd2\x22\xbc\xf1\x78\x16\xbd\x57\xc6\xfb\x70\x02\x0a\x32\xd8\x4d\x69\x65\x90\xf6\x97\xa7\x23\x44\xc5\xb5\xe6\x01\xa6\xc1\xe0\x25\xc7\x20\xea\x82\xb5\x0f\x64\x24\x07\xf7\x54\x98\x7e\xd1\xf2\x17\x15\xed\x7e\x7a\x54\x0e\x68\x77\x91\x75\x55\x47\x4e\x3d\x5c\x77\xf7\x9d\x4e\x60\x1c\x39\x3b\xb0\x38\x15\x71\x1f\xfa\x01\x57\x5e\x2c\x92\x5c\x14\x23\xd3\xc0\x3a\xe5\xce\x9c\x1a\xba\x84\x76\xc6\xcb\xcc\x3f\x81\xbf\x6e\x33\x52\x18\xc7\xea\xc2\x55\xff\xfb\x6b\xdc\xa9\x1e\x28\x66\x51\xe9\x6a\x2d\x0d\xe6\x37\x7a\xa8\x88\x59\x54\x54\xc9\x3d\x64\x70\xd6\xe5\x54\x28\xb7\xda\x27\x76\x16\x2b\x7b\x11\x22\x78\xa6\x80\x98\xcd\x13\xe0\xac\x65\xff\x90\xee\xa6\xa5\x34\xa1\xf0\x72\x5d\x0a\xbb\x34\xc4\x9a\xd7\x54\x44\x38\x99\x56\x98\x07\x99\x06\x6e\xa4\x6a\x6b\xcd\xdf\xf3\xd8\x4d\x33\xee\x5f\xcf\x25\x4f\x9a\x4d\x11\x7e\x58\xa8\x88\x35\x24\x6d\x9e\xad\x64\xb2\x4b\x5a\xc5\xe2\xb5\x48\xe9\xe9\xfc\x95\x87\xb9\xeb\x86\x8a\x8a\xbb\xad\xb0\x8f\xad\x22\xb8\xa8\x2f\xbc\xf4\xef\x99\x54\xd2\x53\xd7\xfa\x4b\xf7\xb8\xec\xa9\x8c\xf8\x35\x3f\xe4\x17\xe9\x9d\x18\x57\xd2\x5a\x93\x5f\x9c\x82\x01\xd6\x10\x69\xcd\x9d\x89\x1f\x5f\x57\xd5\x52\x96\x86\xe7\xa6\x04\x58\x87\x9e\x20\xef\x9e\xa3\x40\xb5\x61\xa9\xab\x5b\x9b\x02\xa8\x85\xaf\xf2\x7c\x5d\xe6\xba\xa8\xcc\xf0\xe1\xbf\xa9\x8f\x9a\x7b\xf7\x5f\x53\x03\x3a\x93\x9b\xa5\x84\x92\xc4\x14\x57\xa6\xf3\x63\xf6\x29\x0a\xd6\x5e\x6a\xbe\x4f\x29\x11\x4f\x32\x4a\xc4\x16\x52\xc3\xbb\xa1\x90\x5b\xef\x05\xf6\x35\xdc\xbc\x6b\x19\x6a\x01\x8d\xcb\xb1\xb6\xb9\x6a\xb1\xa4\xaf\x2a\xed\xb2\xd3\x06\x6b\x40\x29\xd4\x5c\x31\xa3\xa2\x6f\xa7\xf0\x6c\xbf\x17\xe5\x3d\x3a\x09\x80\x4a\x10\x23\xb1\xa5\x55\xa0\x10\xa8\x1e\xdd\xdd\xcb\x5c\x2f\x01\xdd\x1c\xc8\xc7\xfa\xf6\x39\x6d\xce\x51\x53\xd7\x5e\xb0\x31\x7b\xdb\x9e\x07\x28\x03\x31\xb2\x80\x7a\xe0\x76\x3c\x69\x6c\x12\xdb\x34\x47\x46\x7b\xb8\x56\x6c\xbd\x69\x39\x32\xda\x88\x61\x56\xaa\x43\x46\xd3\x55\x87\x58\xdf\x77\xb0\xae\xc2\x42\x0a\x01\x04\xcf\xa5\xc8\x72\x0e\x73\x17\x99\x5a\xe7\xb2\xf1\xbd\x4c\x1f\x11\xab\x0b\xfc\xa5\x46\xb6\xe6\x90\x31\x5d\xd2\x10\x21\x85\xbb\xf3\x87\x95\x15\xd1\x05\x57\x4a\x43\x45\xae\xa0\x80\xa2\xb3\xb8\xc0\x3d\x32\x83\x42\x06\x55\x66\xc6\xea\xd3\x05\xa8\x0b\x45\xb5\x3c\xf3\x75\xb3\xda\x80\x82\x01\x65\xd5\x5b\x61\x80\x86\xe1\x3e\xcb\xd3\xb3\x8e\x8b\x04\x7d\x9c\x1e\xe1\x8e\xe1\x56\x44\x4e\xe2\x0b\xec\x42\x2c\xdb\x72\xdf\xee\xda\xb1\xea\xbd\x14\xc9\xbd\x2b\x19\x42\x71\x3d\x24\x2f\x6a\xc6\xd2\xcf\x9d\xfc\x32\x22\xbb\xa4\x07\x19\xf9\x97\x2f\x27\x6a\x73\x36\x46\x4e\xdc\xd5\x4d\x2b\x3e\x35\xd6\x38\x24\xc9\xd1\x37\x55\xc5\x02\x43\xfc\x5f\x00\x57\xc2\x7b\x86\x8a\xad\x78\x52\x54\xad\x3a\x8c\x7f\x75\x90\x7c\xe8\xa6\x97\xb1\xf2\xa1\x95\xf6\xe3\x25\x85\x22\xe4\x87\x32\x73\x30\xc2\xb3\x80\x3c\x40\xe4\x79\x08\x3b\xe7\x5d\x41\xb1\xf2\x0e\x03\x7b\xfd\xe7\xb9\xfd\x67\xd2\x14\xdc\x54\x9d\x9c\x22\xc3\xe3\x8c\x4b\x2b\x09\x96\x84\x42\x14\x67\x68\x98\x7b\xf3\x79\xdf\x69\x3e\x95\x3e\x49\x80\xf2\xa5\x28\xab\x09\xf5\x77\x97\xa2\x14\xb9\x5e\x5f\xda\x97\x6f\xf1\xdd\xc1\xcb\x0c\xf5\x22\xa6\x1e\xb3\xcf\x43\xf2\x9f\x48\xee\x89\x15\xb5\x91\x32\xd6\x77\x9e\xb0\xdb\xc5\x83\xdc\x4d\x1e\x6b\xb7\x3b\x3e\x60\x7f\x85\xc3\xcc\xc5\x7d\x89\x30\x86\x13\x7a\xa9\xd7\x48\x98\x32\x5b\x89\xa4\xe6\x41\x1f\x05\x36\x55\xbb\x21\xb1\xc5\x02\x42\xcf\x9c\x96\xe6\xd1\x0f\x44\xe4\x70\xec\xfb\xd7\xff\xd4\x36\x85\xf4\x42\xfa\x19\xfc\x23\xc3\x8e\x43\x3c\xbe\xed\x3b\xb2\xe6\x59\x16\xad\xa4\xe7\x91\x93\x2d\xa2\x1a\x66\x48\xe7\x94\x02\x1a\x2c\xd0\x98\x1d\x33\x87\x07\x16\x97\x4c\xe4\xf6\x84\x61\x02\xca\xe4\x78\xc9\xd9\xc2\x9b\x26\xce\x36\x30\x39\x52\x02\x5e\x28\x9b\x95\xc2\x30\x85\x98\xe2\xfd\x28\x53\x5f\x45\x1d\x40\xe9\x30\x87\xe0\x46\xa6\x59\xd5\x44\x31\xad\x95\x23\xfc\x6a\x0b\xff\xef\xb3\x85\x21\xb5\xe0\x39\x0d\xe1\xee\x42\x97\x5f\xaf\xc2\xaf\xe0\x2a\xac\x87\xfa\xa4\x79\xc4\xd4\xf3\x29\x53\x4b\x43\xbd\xf1\xaf\x1f\x37\xb9\x32\x0a\x46\x52\x8c\x9f\x67\xda\xab\x13\x4f\xf1\x68\xe9\x37\x1c\x7d\xf4\xca\x82\xd7\xa0\xdd\xbd\x28\xda\xe7\x28\x74\x41\x95\xe1\x1a\x5a\xc3\x65\xb4\xfb\xb2\xbf\x60\xed\xab\x0a\xc2\x8c\x51\x06\xac\x88\x72\x61\x99\x6b\x16\x4d\xcc\x3f\x3b\x20\xa2\x02\x68\x2a\x51\xbe\x28\xdc\xac\xd7\x45\x11\xe7\x9a\xbd\xcd\x8a\xf2\x47\x91\x57\x47\xe1\x51\x41\x4d\xcc\xb3\x65\x12\xf0\x50\x71\x98\xc1\x1b\x83\x01\xf0\x9b\x7a\x88\xda\xea\x05\xb8\xe7\x00\xb7\x82\x91\x9f\xed\xb8\xa7\x5c\x1c\x9f\xdc\x7c\x7d\x42\x9d\xf7\xc9\x88\xed\x56\x1a\x8e\xbb\xb6\x42\xe3\x00\xa3\x0c\xbd\xc4\x0a\x7d\x27\x7f\xbe\x7d\x77\xdd\xbc\xdb\xec\x99\x6e\x34\x0d\x8f\xc1\xd4\x9d\x77\xaf\xdc\x75\x95\xe7\xbd\x2b\xb7\x1f\x9d\xf5\xfa\xc3\xdb\xb7\x8b\x1f\x2f\xde\x7e\xb8\x1a\x44\x3b\x0d\x1e\xeb\x9d\x13\x37\x12\x9a\x13\xb4\x68\x4b\xb0\x62\xab\x8d\x34\x5c\x96\xe2\xbf\x1a\x0d\x87\x2a\xcf\xeb\x48\xb8\xb1\xfa\x44\xed\x40\x82\x54\xa5\xd0\xe3\x14\xab\x68\x70\xe2\xea\xfd\xc3\x63\x9f\x6c\xe3\x9f\xf0\xdd\xb3\xc8\x7f\xc4\xb7\xd1\xb5\xeb\xb5\x67\x5e\x29\xfb\xf2\x88\xe3\x80\x80\xbc\x7d\xc7\xe1\xd4\x58\xdf\x87\x1d\x8f\x0f\x8a\x39\xbd\x09\xa2\xfb\x24\xa7\x03\xe7\xee\x53\xdd\x9b\xe9\x64\x79\x8a\xaa\x39\xb4\x3b\x43\x84\xe6\xa2\xa4\xda\x4c\x9c\xb3\x58\xa1\x5d\x69\xc7\x54\xea\xfe\x31\x45\x73\xca\x46\xc8\x85\x5a\x57\x62\x2d\x8b\x59\xc4\x9d\xc7\x0a\x99\xed\x97\x92\x29\xf0\x9c\x25\x26\xca\xec\x51\x36\xb6\x10\x26\x92\x11\x64\xcb\x2c\xca\x54\xac\xe8\x9b\xd4\xda\x37\x8f\x39\x66\x7f\xbe\x75\x9f\x03\xb4\xf3\xdc\x10\x81\x4c\xab\x58\xe1\xe2\x22\x4a\x26\xbb\x79\x40\x71\x05\x3a\xf2\xda\xd6\x15\x46\x32\xae\x3d\xc8\xf4\x35\x38\x9c\x90\xcc\x9f\xab\x21\xac\xa4\x0f\x68\xfc\x30\xf3\x14\x87\xb4\x5f\x9e\xf0\x62\xf0\x99\xa0\xb1\x75\xef\xfa\xa3\xef\x00\x7b\xe0\x16\x8f\x8d\x56\x46\x6c\x5b\x2f\xc6\x46\xda\x08\x22\x10\x1c\x7d\x75\x78\x50\x67\xd3\x3d\x1a\xfe\x2e\x7c\xa6\x37\x84\xaf\xab\x65\x3e\x61\x48\xf8\xfc\xe0\xa0\x50\x24\x0f\x0f\x6a\x84\x8f\xf7\xa6\x71\xb4\xec\x36\x1d\xea\x76\xa9\x75\xcf\xba\x9c\xd0\x5b\x5a\x1b\x14\xbd\xb0\x6f\x32\xaa\xa4\x3c\x64\xbf\x8c\x48\x8e\x6f\x4e\x11\x4b\x9f\xa1\x01\xe5\x59\x71\xd0\x70\xbc\xfe\x34\x7a\x44\x4e\x43\xa0\xcb\x6e\x92\x84\xa5\x7b\xae\x26\x60\x7b\xc4\x24\xf9\xe8\x28\x42\x23\x33\x14\x2f\x0a\x08\xb3\x05\xd5\xa2\xcd\xdc\x26\x9a\xf9\x95\x9b\xc1\x20\x93\xca\x14\x56\x5c\x92\xbc\x23\xa9\xad\x4d\x24\x62\xc5\x90\x86\x2c\x8e\x2f\x38\x09\xc1\xb8\xbf\x62\xc1\xc1\x16\x01\xc1\x40\x63\x2d\x23\xad\x24\x4b\xc3\x58\x01\x97\x84\x02\x6f\xf2\xb2\x00\x44\x57\x62\x4c\xa0\x1f\x02\xc2\x54\xa1\x90\x5d\x7b\xbf\xcc\x6b\xa8\x01\xb5\x7b\xfe\x37\xf6\x7f\xff\xfa\xcd\xff\x04\x00\x00\xff\xff\x9d\x7d\x4b\xc2\x73\x01\x04\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xfb\x73\x23\xb7\x95\x37\x8c\xff\xbe\x7f\x05\x9e\xc9\x53\x65\x3b\xa1\x24\xdb\xd9\xcd\x37\xab\xad\xa7\xbe\x2f\x47\xe2\x8c\xf9\x58\x23\x29\xba\xd8\xeb\x77\x99\xa2\xc1\x6e\x90\x44\xd4\x04\x98\x06\x5a\x1a\x26\x95\xff\xfd\x2d\x1c\x5c\x1a\xe8\x1b\xbb\x49\x4a\xa2\xc6\xdc\xad\x72\x34\xec\x6e\x5c\x0f\x0e\xce\xf5\x73\xfe\xf9\x6f\x08\xbd\x13\x4f\x78\x36\x23\xe9\xbb\x53\xf4\xee\xfb\xe3\x6f\xdf\xf5\xd4\x6f\x94\x4d\xf9\xbb\x53\xa4\x9e\x23\xf4\x4e\x52\x99\x10\xf5\x7c\x9a\xac\x24\xa1\x71\x72\x22\x48\xfa\x48\x23\x72\x82\xe3\x05\x65\xc7\xcb\x94\x4b\x0e\x1f\x22\xf4\xee\x91\xa4\x82\x72\xa6\x5e\x37\x7f\x22\xc6\x25\x12\x44\xbe\xfb\x37\x84\xfe\x05\xcd\x8b\x68\x4e\x16\x44\xbc\x3b\x45\xff\xa3\x3f\x9a\x4b\xb9\xb4\x0d\xa8\xbf\x85\x7a\xf7\xaf\xf0\x6e\xc4\x99\xc8\x82\x97\xf1\x72\x99\xd0\x08\x4b\xca\xd9\xc9\xdf\x04\x67\xf9\xbb\xcb\x94\xc7\x59\xd4\xf2\x5d\x2c\xe7\x22\x9f\xe3\x09\x5e\xd2\x93\xc7\xef\x4e\x70\x24\xe9\x23\x19\x27\x38\x63\xd1\x7c\xbc\x4c\x30\x13\x27\xff\xa4\xb1\x9a\xe3\xdf\x48\x24\xff\x05\xff\x88\xf9\x02\x53\xa6\xff\x66\x78\x41\xfe\xe5\xda\x41\xe8\xdd\x8c\x48\xef\x9f\x6a\xb6\xd9\x62\x81\xd3\x95\x5a\x91\x0f\x44\x46\x73\x24\xe7\x04\xe9\x7e\x90\x5d\x22\x3e\x45\x18\x9d\xa6\x64\x7a\xfa\x6b\x4a\xa6\x63\xbb\xd0\xc7\x7a\x81\x2f\x60\x34\xd7\x09\x66\xbf\x1e\x9b\x65\x82\x96\x63\x22\xa2\x94\x2e\xa5\x59\xef\x1b\x22\x53\x4a\x1e\x89\xdf\x81\x9e\x08\x52\x13\x71\x9d\x89\x25\x89\xe8\x94\x92\x18\x4d\x56\x88\xb2\x65\x26\x51\x4a\xfe\x9e\x11\x21\xd1\x94\x26\x92\xa4\x22\xe8\x85\x2f\x49\x0a\x2b\x38\x8c\x55\x2f\x1f\x89\xec\x43\xdb\xf9\xa8\xfc\xb7\x53\x22\x96\x9c\x09\x22\x82\x45\x40\xe8\xdd\xf7\xdf\x7e\x5b\xf8\xa9\x3c\x83\x3e\x12\x59\x14\x11\x21\xa6\x59\x82\x6c\x4b\xfe\x60\xf4\x82\x2a\xf2\xc1\xa5\xc6\x10\x7a\xf7\xbf\x53\x32\x55\xed\xfc\xee\x24\x26\x53\xca\xa8\x6a\x57\x68\x2a\xf5\x46\x1b\x7c\xf5\xaf\x7f\xab\xfa\xfb\x5f\xde\x8c\x96\x38\xc5\x0b\xa2\x96\xc5\xd1\x95\xfe\xbf\xc2\x5c\x14\x25\xa8\xce\x73\x6a\x29\x0e\xbc\x30\xdb\x4b\xbc\x20\x6a\xe7\xd5\x76\x99\x2f\xe0\xef\x94\x08\x9e\xa5\x11\x41\x13\x92\x70\x36\x13\x48\xf2\xd2\x1a\x50\x68\x41\x11\x71\xf1\x89\xda\x4a\x9a\x12\xb5\x57\x32\xcd\x48\xe1\xa9\x5c\x2d\x61\x90\x42\xa6\x94\xcd\xfc\xa5\xf8\x57\xaf\xd5\xd4\x34\xed\x77\x98\x99\xfe\xa0\x76\x62\x23\xd6\xb7\xaf\x44\x98\xa1\x09\x41\xea\xc4\xd3\x98\xa4\x24\x46\x58\x20\x8c\x44\x36\x11\x44\xa2\x27\x2a\xe7\x94\xa9\x7f\x6b\xf2\x8d\xec\x9a\xed\xcf\xda\xc0\x9f\xcd\x2b\x73\x2f\x48\xaa\x06\xfe\x48\x63\x12\xa3\x47\x9c\x64\x04\x4d\x79\x1a\x2c\xcf\xf1\x88\xdd\xcd\xd5\x3a\x2c\x26\x94\xc1\xc9\x53\x6b\x69\x29\xe4\x0f\x76\xb9\xfe\x80\x54\x7f\x28\x63\xf4\xef\x19\x49\x56\x88\xc6\x84\x49\x75\xae\x45\xb1\xb5\x3f\x70\xe8\x1f\x27\xe8\x08\xa9\x75\x26\xa9\x84\xf5\xe6\x4c\x92\xcf\x52\xa0\x23\x94\xd0\x07\x82\xbe\xba\xa0\x42\xa2\xfe\xf5\xf0\xab\x1e\xfa\xea\x22\x67\x1c\xe2\xab\x17\x58\x61\xf7\xf7\x5f\xbd\xa3\x27\xf1\xac\x78\xe8\xde\xf5\xd5\x69\xbe\xd5\x17\x50\xde\xc2\x5f\xff\xcd\x6f\xc7\xec\x57\x33\x57\xcf\x59\xba\xe1\xe7\x6d\xb9\x38\x2c\x53\xc8\xc0\x85\xda\xa1\x6d\xf9\x77\xe9\x76\xa8\x60\xde\x62\x4b\xee\xad\xc6\x5e\x64\xdf\xe2\x6d\xf1\x6f\x35\x85\xe7\xe6\xe1\xdb\x30\x70\x2c\xe1\x64\x61\xca\xf4\x41\x74\xe7\x32\x15\xea\x2c\xda\x13\xb2\x27\x6c\x6b\x1b\x7e\xee\xcd\xcc\x63\xe9\x96\x53\x7b\xab\xb2\x87\xf3\x4e\xe8\x82\xae\xdb\xdf\x21\x8b\x95\xf0\x68\x18\x2a\xcb\x16\x13\x92\xaa\x65\xb0\xac\x15\x66\x3b\x51\xac\x56\x66\x29\x23\x71\x8b\x69\xfe\x3d\x23\xe9\xaa\x61\x9e\x53\x9c\x88\xba\x89\x52\x26\x89\x92\xd4\x0b\x8f\xa7\x3c\x5d\x60\x69\x5e\xf8\xd3\xbf\x77\x5d\x08\xc9\x1f\xc8\xba\xfd\x1f\xea\xdd\x8c\xb0\x00\x32\x58\x64\x89\xa4\xcb\x84\xa0\x25\x9e\x11\x61\x56\x24\x4b\xa4\xe8\xc1\x6b\x4a\x3b\x20\xe9\x91\xbb\xe5\xa0\x07\x7b\xbb\x67\x02\x7e\x41\x53\xc7\xec\x18\xf9\x2c\xa1\xa5\x11\x83\xfb\x1d\x96\xc8\xbf\xb5\x9e\x61\x29\x37\xa3\x19\xc1\x53\x39\x9e\xac\x8e\x1f\x48\xa9\xdf\x5a\xca\xc1\x0c\x61\x29\x53\x3a\xc9\x24\x51\xf3\x56\x6d\xd8\xfb\x19\xd8\xa3\x16\x02\xda\xb0\x86\xd7\x9b\x70\x4c\x53\x12\xc1\xdc\xba\x1c\x18\xf7\x95\x9a\xb7\xd2\xc4\x56\x7a\xf6\x0f\x64\x05\x32\x4f\xc5\x0a\xb8\x2d\x1f\xb1\x11\x43\x47\xe8\x7c\x70\x7b\x36\xb8\x3c\x1f\x5e\x7e\x3c\x45\xef\x57\x28\x26\x53\x9c\x25\xb2\x87\xa6\x94\x24\xb1\x40\x38\x25\xd0\x24\x89\x95\x5c\xa3\x06\x43\x58\x4c\xd9\x0c\xf1\x34\x26\xe9\xf3\x2d\x63\xe1\x29\x61\xd9\xa2\x70\xaf\xc0\xef\xf9\xe8\x0b\x5f\x28\x31\xc6\x3d\x0a\x9e\xfc\xb5\xb4\xc0\x30\x63\xd5\xb7\xd7\xda\x8b\x09\x4e\xd1\x9c\x26\x71\x4a\xd8\x89\xc4\xe2\x61\x4c\x3e\x93\x28\xd3\x77\xf2\x3f\xc3\x1f\xc6\x4a\xfa\xe5\x31\x09\x7f\x09\xfe\x91\x8b\x5b\x9d\x3f\x75\xfa\x76\xe7\x2f\x41\x3b\x6f\xf7\x1d\xfc\x42\xe3\xca\xb7\xe1\x97\x35\x73\xb0\xef\x34\x0c\xd6\xbe\x52\x3b\x2a\xfb\x82\x11\xf6\x2a\xdf\x49\x89\x4c\x57\x63\x2c\x25\x59\x2c\x65\x47\xcb\x03\x46\x89\x92\x5d\x9b\x64\xd5\x4b\x1e\x93\x81\xed\xef\x57\x23\x82\x6a\x61\x53\x73\xad\x29\x49\x09\x8b\x48\x7d\x0b\x77\x58\x3c\xe4\x2d\xac\x17\x78\x81\xc6\x90\x5a\x7e\x94\x13\x58\xa9\xe3\x5c\xec\x55\x4b\x92\xbf\xb9\x4e\xd8\x0d\xe6\x23\x3e\xf0\x54\x0d\xef\x2d\x08\xbc\xc1\xc0\x5f\x42\xe6\xdd\xf4\x44\x7f\x71\x56\x8e\x0d\xf9\xd3\xc1\x26\xb2\xfd\x4a\xb6\xb5\xa0\xf0\x14\x89\x95\x90\x64\xb1\xd6\x96\xf2\x76\x16\xc2\x5c\x40\xfb\x3a\xe0\xc2\x1d\xf8\x1b\x38\xf5\xe1\x8d\x7e\x38\xde\x1d\x96\x6c\x57\x96\xd0\x7d\x9f\xa7\xf5\x76\x35\x4f\xf5\xd6\x6e\x9f\xe7\xee\x79\x13\xd3\x0c\x64\xcd\x5d\x0f\xf2\x99\xcc\x19\xb5\x7b\x65\x57\x7b\x0c\x03\x58\xa3\xc8\x86\xb6\x74\x77\xfe\xd4\xa7\xbe\x05\x48\x9b\xfb\xe4\x9c\x0a\xcf\x18\x86\x22\x9e\x6a\x59\x30\x36\xe7\x5d\xeb\xb2\xfd\xbb\xfe\xed\xe0\xee\x14\xf5\x51\x8c\x25\x56\x07\x3c\x25\xcb\x94\x08\xc2\x24\xd8\x09\xd4\xf7\x72\x85\x16\x3c\x26\x89\xd6\x68\x3f\x28\xc9\x1a\x9d\x63\x89\xcf\xb0\xc4\x09\x9f\x1d\xa3\x3e\xfc\x53\x7d\x4c\x05\xc2\x89\xe0\x08\x5b\xb2\x22\xb1\x6d\x02\xb3\xd8\xb2\x16\x8c\x22\xbe\x58\xd2\xc4\xf9\x11\x9c\xf1\x86\xb2\x98\x3e\xd2\x38\xc3\x09\xe2\x13\xc5\x55\x94\x06\x3e\x78\x24\x4c\x66\x38\x49\x56\x08\x27\x09\x32\xdd\xda\x17\x90\x98\xf3\x2c\x89\x55\xbb\x76\x94\x82\x2e\x68\x82\x53\xa5\xe2\xeb\xd1\x5e\x99\xb6\xd0\xdd\x9c\xb8\xb1\xc2\xb8\xd4\x6a\x2e\xf0\x03\x11\x88\x4a\xb4\xe4\x42\xd0\x49\x92\x9f\xf9\xfb\x21\x82\x71\x9f\x5d\x0c\xc1\x5e\x10\x49\xc4\x35\x0f\xb5\x9d\x1b\xfb\x90\xed\x71\x81\x19\x23\xd0\x31\x97\x73\x92\x9a\xee\xcd\xcb\xaf\xad\xfa\xdf\x5f\xde\x5e\x0f\xce\x86\x1f\x86\x83\xf3\xb2\xee\x7f\xd7\xbf\xfd\xb1\xfc\xeb\xcf\x57\x37\x3f\x7e\xb8\xb8\xfa\xb9\xfc\xe4\xa2\x7f\x7f\x79\xf6\xc3\xf8\xfa\xa2\x7f\x59\x7e\x68\xc8\xaa\xb5\x19\xc1\x1f\x59\xc7\xb3\x75\xb0\x99\x3e\x97\xcd\xb4\xf7\xe5\x1a\x4d\x8d\x53\xaa\xbd\xc1\xd4\xd9\x28\xcc\x97\x68\x89\x85\xd0\x92\x91\x1e\xc1\xf1\x88\x7d\xe2\xa9\x62\x60\x53\xae\x78\x84\x92\x9e\x64\x9a\x45\x92\xb2\x99\xfb\xe8\x14\x8d\xb2\x6f\xbf\xfd\x63\x74\x41\xd9\x03\xfc\x45\xf6\x71\x71\x0e\x16\xe5\x83\x45\xf9\xb7\x65\x51\x56\xa2\xcf\x89\x6f\x48\xde\x6d\x70\x95\x12\x2e\xc0\x27\xae\x44\x09\x9e\x49\xf5\xa7\xea\x12\xc8\xa3\x21\xc4\xaa\x9d\xc1\xd2\x45\x58\xd5\xf4\x91\xf2\x05\x08\x72\x9f\xa9\x00\x66\xf4\xc4\xd3\x87\x69\xc2\x9f\xda\x99\x2b\x3f\x12\xe9\x86\xa1\x04\xa7\xb7\x60\xa5\xfc\xd9\xcc\xd0\x0d\xfc\x23\x91\x6a\xec\x37\xa6\x97\x43\xb0\xd5\x21\xd8\xea\x75\x83\xad\xf6\xca\x54\xf8\xfc\xac\x35\xb4\x2b\x6a\xfe\x5a\xe3\x87\xab\x75\xb3\xd5\x78\xd1\x3c\x27\xd9\x8b\xf0\xe4\xd0\x15\xb5\x4b\xbe\x1c\x3a\x9b\xd6\xf0\xe4\x60\x18\x6f\x85\x2f\x07\x83\x7e\x79\x9e\xfc\x9b\xf0\x13\x1d\xdc\x40\x1b\x2e\xd4\x9b\x64\xdd\x2d\x6f\xa5\x17\x73\xe2\x3c\xff\x55\x52\x8a\xf9\xe8\x12\xe4\xd1\x21\xaa\xa3\x75\x18\xc7\x9a\xb8\x8d\xca\x40\x8d\xaa\xc8\x8c\x72\x28\x46\x65\xec\xc5\x76\xc1\x16\x9b\xde\x7a\xed\xc3\x27\xba\xde\x7a\xed\x03\x27\x3e\x12\x19\x0c\xe3\xad\xdc\x7a\xc1\xa0\x5f\xfe\xd6\xfb\x8d\xc6\x4b\x1c\x02\x24\x9e\x71\xe9\xbe\xf4\xbb\x72\x7f\x43\x20\x7e\x03\x31\x0f\x87\x20\x87\x4e\x6b\xf4\x65\x45\x35\x7c\xa9\x61\x0c\x6f\x33\x6e\xe1\x10\xa8\x70\x08\x54\x78\x0d\x8f\xd2\xdb\x0b\x54\x78\x56\xc5\x97\x28\xb2\x12\x60\x45\xf5\x95\x9b\x77\x4b\x2e\xea\xf5\x3d\xdf\x79\x5d\xa1\xd7\x41\x9b\xa1\x35\x13\xa8\xf7\x57\x34\xc7\x02\xf1\x28\xca\xd2\x82\x8b\xb6\x78\xca\xcf\x52\x82\xa5\x3a\x22\xa1\xe1\x12\x41\xcb\x28\x25\x11\x4f\xc1\x49\x89\xd1\x72\x8e\x05\x41\x32\xc5\x4c\xd0\x75\x5a\x9e\x6e\x15\xc6\xa5\xda\x79\x0b\x0a\x5e\x79\x11\x5f\x4a\xbd\x9b\xf0\xb8\x74\x20\xf5\x59\xad\x7a\xd2\x7c\x93\xec\x6c\xea\x90\xf6\xdb\x66\xe6\xcf\x78\x54\xd4\xad\xb5\xe3\xa3\x12\xa8\xf1\x9b\x1e\x95\xd0\xda\xb1\x93\xa3\x02\xe3\x7a\x2b\x47\xa5\xbc\x88\xbf\x99\xa3\x52\x35\xf5\x7d\x38\x2a\x36\x1c\x60\xc7\xc7\xa5\xe4\x83\xdf\xf4\xc8\x94\xc3\x15\x76\x72\x6c\xdc\xf8\xde\xca\xd1\xa9\x5e\xd0\xdf\xcc\xf1\xa9\x9b\xfe\xeb\x1e\x21\xe7\x87\x68\x7d\x78\xee\x52\x3a\x9b\x91\x54\x6b\x46\x91\x22\xc5\xf5\x50\x4b\xb9\xe5\x7d\xb3\x03\xb3\xfe\x34\xb8\x1e\xde\xc2\x49\x70\x83\xd5\x63\xff\xcd\x1c\x81\xd2\xbc\xf7\x84\xf6\x4f\x14\x27\x7e\x04\xb4\xb6\x76\x67\xe0\x86\x00\xe1\xc3\x05\xb2\x4c\xc9\x23\xe5\x99\x48\x56\x47\x69\xc6\xaa\xb8\x3d\x18\x09\x9e\x68\x92\x20\xce\x92\x15\x12\x12\xa7\xd2\x3e\x66\x33\xed\x51\x52\x87\x29\xc1\x42\xa2\x07\xc6\x9f\x18\x9a\x62\x9a\x64\x29\x41\x4b\x4e\x99\x3c\x1e\xb1\x21\x43\x37\x7a\x8c\xa0\x79\xf7\x50\x26\xd4\x11\x8c\x30\x63\x5c\xa2\x68\x8e\xd9\x8c\x20\xcc\x2c\x74\x4d\x4e\x19\x88\xa7\x28\x5b\xc6\xea\x60\xa9\x2e\x0a\x36\xa6\xfc\x80\x8d\xd8\x1d\x58\x31\x04\x22\x9f\x65\x4a\x16\x24\x59\xa9\x3e\x14\xed\x4b\x8e\xcc\xfa\xe8\xa1\x1a\x83\x38\x49\x53\x9e\x0a\xd0\xd9\x27\xab\x7f\x60\x26\x29\x23\x08\xd4\x4c\xa1\x81\x8f\x8e\xd0\x05\x17\x10\x93\xfd\xe3\x9f\x05\x8a\x92\x4c\x48\x92\xf6\xd0\x24\x9b\x09\x44\x19\x5a\x26\x58\x4e\x79\xba\x50\x23\xa4\x4c\x48\x3c\xa1\x09\x95\xab\x1e\x5a\xe0\x68\xae\xdb\x82\x35\x10\xbd\x11\x8b\xf9\x13\x13\x32\x25\xd8\xf5\x6e\x1f\xa2\xaf\xfd\x67\x9a\x00\xc4\x37\x3d\x30\xdc\xd3\xc5\x32\x59\xf9\xc3\xf7\x12\xa1\x61\x4f\x54\x23\x24\x46\x13\x12\xe1\x4c\x18\xc3\x8e\x4c\x57\x88\x7c\x9e\xe3\x4c\xc0\xde\xa9\xe9\x19\xab\x47\xc4\x17\xcb\x84\x48\x82\xe8\x14\xc9\x94\x92\x18\xe1\x19\xa6\x6a\xe9\x6e\x49\x43\xe2\xb6\x23\x7a\xb3\x81\x86\xea\x7f\x05\xcb\xc7\x82\xa7\x04\xc5\x44\x62\x9a\x88\x66\xa7\xe4\x8b\x12\x1c\x7a\x76\x7a\x43\xfb\x4b\x6e\x68\xaf\xa9\xad\xe1\x26\x34\x3b\x76\xb8\x0a\xdf\xd2\x55\x18\x72\x85\xbd\xb8\x0b\x35\x48\xc4\x0e\x04\x42\x66\xac\xe2\x11\x4e\xb6\x94\x0d\x6f\xcc\xa0\x3a\x4b\x87\xf6\xc3\xc3\xa1\x78\x5b\x87\x42\xef\xda\xfe\x9c\x8a\xba\x84\x8a\x9d\x23\xc5\x74\xc1\x78\x69\xc8\x88\x10\x68\x81\xa5\xba\xd8\x66\xe6\x8a\x6e\x89\x62\x98\x83\xba\xbc\xa9\x83\xf2\x12\x48\x2e\x5f\x76\xc4\xc2\x21\x52\xe1\x37\x88\x40\xbb\x37\x09\x8c\x87\x1c\xe8\x67\xca\x81\xa6\xe2\x90\x03\x7d\xc8\x81\x6e\xbb\x40\x87\x1c\xe8\x43\x0e\xf4\x9b\xcd\x81\x7e\xd6\xf4\xe7\xdd\x25\x39\xef\x26\x93\xf9\x4d\x49\xe7\x07\xc9\xfc\x20\x99\x1f\xd2\x95\xdd\xd4\x76\xc5\x05\xed\xd7\xef\x62\x92\x10\x49\xea\x0d\x74\x24\x5d\x28\x85\x43\xdf\xf0\x94\x29\x51\x70\x96\x12\x21\xb6\xe5\x69\xae\x61\xbf\xbc\x42\x85\x3f\x22\x47\x99\x75\x64\x09\x76\x9d\x26\x66\xe7\xda\x7e\x9b\x2c\xcf\x0d\xff\x00\xd9\x70\xe0\x81\x07\x1e\xb8\xc9\xd4\xf6\xc7\x1c\xed\x1d\xe6\x97\xb2\x47\x3b\xde\xbe\xcc\xea\x85\xd3\x7b\xed\x68\xcd\x19\xad\xa6\x70\xc8\x4a\xe5\xee\x70\x1b\x3a\xdf\x92\xd7\x77\xe9\xab\x89\xaf\xeb\x76\xde\x26\x53\xd7\x63\x3f\x70\xf4\x03\x47\x3f\x70\xf4\xb7\xcd\xd1\xed\x49\x7e\x55\xf7\xa2\x57\x38\x6d\x4c\xe3\x6d\x6a\xa7\xb5\xaf\x43\x81\x17\x24\x1e\x40\x96\x98\xcb\x71\x4b\x7f\x55\x9f\xf8\x55\xd1\x6c\x3e\x58\x7b\x07\xa4\xff\x75\xbe\xea\x41\x29\xab\xcd\xfc\x91\x79\x81\xb2\x61\xfc\x26\x5c\x92\x95\x2b\xfc\x85\x14\x57\xdb\x0f\x2e\xf2\xe2\xb5\xd5\xf6\x63\xda\x07\x17\xd9\xa1\xb4\xda\xc1\x09\xd4\x72\xc2\x07\x27\xd0\xfe\x3a\x81\x5a\x6c\xe3\xb3\x78\x76\x5f\xf8\x78\xbe\x94\xe8\xd8\x3e\x73\xc7\x26\xd8\xb0\x18\x65\xcb\x84\xe3\xb8\x65\x75\x74\x4f\xa2\x6b\x91\xbe\xc3\x62\x94\x92\x19\x15\x92\xa4\x6a\x5f\x2a\x05\xc3\xf5\xf9\x3c\x6f\xb5\x0c\x7a\xeb\x88\x4d\xbf\xdb\x77\xff\xde\x62\xf8\x37\xe6\xce\x06\x4e\x34\xc1\xb1\xab\x4f\x0c\xe2\xdb\x02\xaf\xd0\x1c\x3f\x12\x1b\x65\xfe\x88\x13\x1a\xe3\xe2\x5a\x17\x66\xd8\x34\xa0\xff\xec\x36\x20\x1c\x0e\xc7\x15\xb4\x13\x61\x14\xb0\x01\xa8\x80\x77\xe6\x4a\x2b\x4f\x52\x82\xe3\x15\x9a\x10\xc2\x1c\xd9\x54\xdc\x27\x35\x63\xde\x89\xe0\xfc\xea\x5a\x69\x99\x7a\xf6\x45\x2d\x7d\xc1\xb8\xd7\x6a\x7e\xb3\xbd\x0e\xba\xbd\xe2\x29\xbe\x7f\x5b\x2c\xe8\x10\x0b\x7b\xb0\x4d\xbe\xbe\x6d\xf2\x10\x0b\x7b\x50\xf4\xf7\x4c\xd1\x3f\xc4\xc2\x1e\x62\x61\x0f\x66\x90\xe6\x69\x1f\xcc\x20\x5f\x44\x2c\x6c\x2b\x19\x7e\xc3\x68\xd8\x37\x2e\xcd\x1f\x84\x79\xfb\xde\x41\x98\x3f\x08\xf3\x5f\xa8\x30\xbf\x1f\x2b\x7c\x90\xe4\x0f\x92\xfc\x41\x92\x3f\x48\xf2\x07\x49\x7e\xe7\xcb\x78\x90\xe4\xab\x25\x79\xf8\xcb\x16\xdb\xe9\x2a\xd6\x77\x14\xe7\x3b\xa7\xbb\x75\x77\x06\x7e\x24\xf2\xad\x7a\x02\x0f\x52\xfb\x41\x6a\xdf\x6f\xa9\x7d\x6f\x26\xf4\xe5\x15\xca\x38\x94\x9a\x38\x94\x9a\x38\x94\x9a\x78\xe6\x52\x13\xf6\xeb\x16\x39\x52\xe6\x70\x49\x2c\x33\xa1\xb1\x8a\xf3\x60\x93\x56\x62\x4f\x8b\xd4\xa8\x42\x0f\xeb\xe5\x1e\xd4\x97\x68\xc1\x95\xee\xc6\x48\xf0\x8e\x65\x70\x3a\xb0\x66\x46\x1f\x09\x43\x36\x39\xa0\x67\xae\xb1\x1e\x18\x53\xfe\xe5\x0e\x9f\x4e\xbe\xc5\x12\x61\x24\xe9\x82\x1c\xa3\xe1\x54\x73\x8b\x48\x9d\x2e\x41\xa4\x28\x44\x63\x69\xca\x87\x8f\x58\x9c\x8f\xd5\xf6\x4d\xf3\xe0\x1c\xfd\x5a\xcf\x32\xdb\x2c\x91\x9a\xf5\xda\xc6\x01\x69\x74\xe2\x38\x14\x1c\xb4\x05\x49\x13\xfb\x65\xd0\xad\x7d\x79\x81\x63\xc5\x18\xbc\x21\xe4\x59\xc2\xfe\xfb\x70\xa7\x53\xe1\xc2\x8b\x82\xef\xf5\xd7\x00\x57\x0a\xf0\xa2\x00\xab\xde\x6a\x18\x73\x88\x7e\x53\x22\x5e\x9c\x25\x04\x61\x21\x78\x44\x31\xa8\x31\x5a\x06\x40\x54\x5a\x4b\x83\x7d\xc9\x76\x1d\x53\x81\x27\x09\x89\xcd\x1a\x93\x3c\xda\xa9\x71\xe4\x54\xa0\x09\x51\x4b\xac\xd8\x54\xb8\xfa\x73\x2d\x81\x54\x8c\xc6\x1b\x0a\x29\x8f\x84\x30\x3d\x90\x06\x09\x5a\x13\xe7\x5b\x15\xa2\x0f\x19\x77\xee\xe9\x41\xa4\x3e\x88\xd4\xbf\x51\x91\x7a\x8f\x22\x34\xf7\x22\x71\x10\x7c\xa0\x8a\xf3\x8f\x9d\x61\x53\xb4\xb5\xf5\x5c\x50\x21\x05\x8a\x32\x21\xf9\xa2\x5e\xf2\xf9\x64\x7b\xe8\xbb\x0e\xce\x38\x9b\xd2\x59\xa6\xef\x96\x5f\x8d\x6c\xe2\x4e\x74\xae\xa6\xac\x96\xa4\x9d\x61\xc8\xd9\xad\xd7\x75\x56\x99\x8f\x58\xe1\xe4\xad\x68\xe7\x4d\xdc\x76\xd5\x43\x7f\xa9\x4b\xaf\x8b\xb2\x9a\xdb\xc7\x8d\xa6\xa9\xf4\x8b\xf1\xcd\xe0\xf6\xea\xfe\xe6\x6c\x70\x8a\xfa\xcb\x65\x42\xb5\xcb\x4a\x53\x18\xfd\x87\x9a\x94\xae\x1a\xe5\x48\xc4\x08\x44\x1a\xcc\x1d\x7c\x64\x4a\x1f\x44\x47\xe8\xec\xe2\xfe\xf6\x6e\x70\x53\xd3\xa0\x21\x09\x40\x1c\x20\x8b\x65\x02\xf2\xd1\x43\x36\x21\x29\x23\x4a\xc2\x37\x90\xef\xb9\xe7\x4c\x37\x3a\xf8\xef\xc1\xd9\xfd\xdd\xf0\xea\x72\xfc\x97\xfb\xc1\xfd\xe0\x14\x59\xda\x52\xcd\xaa\x71\xa9\x51\xc4\x2b\x86\x17\x4a\xeb\x0e\xcb\x5b\xfd\x3d\x23\x19\x88\x63\x74\xc6\x16\x04\x2a\x31\x04\x2d\xda\x01\x5f\xf4\xdf\x0f\x2e\xc2\x96\xe7\xc4\xc7\xa1\x47\x09\x9e\x90\xc4\xb8\xf2\xc0\x3b\xa5\xce\x8f\x87\xd8\xaf\x7d\x7c\x99\x5e\xd5\xbf\xdc\xf7\x2f\x86\x77\xbf\x8c\xaf\x3e\x8c\x6f\x07\x37\x3f\x0d\xcf\x06\x63\xa3\x49\x9d\xf5\x55\xbf\x41\x4f\x46\xe1\x42\x7f\xcf\x70\xa2\x34\x72\x3e\xb5\xc8\xf4\xe8\x69\x4e\x18\xca\x18\x50\x9c\x56\xf3\x41\x2b\xf1\x61\x79\xf4\x8c\xae\x2f\xee\x3f\x0e\x2f\xc7\x57\x3f\x0d\x6e\x6e\x86\xe7\x83\x53\x74\x4b\x12\x50\x84\xed\xa2\xc3\x2e\x2e\x93\x6c\x46\x19\xa2\x8b\x65\x42\xd4\x6a\x60\x83\x03\x31\xc7\x8f\x94\xa7\x81\xb6\x02\xeb\x08\xac\x00\xda\xb7\x0a\xe7\xd8\x5b\xba\xab\xcb\x0f\xc3\x8f\xa7\xa8\x1f\xc7\x6e\x0e\x02\xda\x08\x28\xc7\xa2\x09\x1d\x95\xd0\x84\x22\xac\x03\x42\xa0\x40\xfb\x23\x49\x53\x1a\x13\xf1\xea\x0e\x87\xe0\x40\x94\x55\xe8\x22\x85\x97\xdf\x28\x90\x6b\xd3\x0b\x01\xf5\x95\x5f\x5c\x47\x45\xe5\x2f\x0a\x64\x50\x6f\x38\x28\xed\x63\x6b\x9b\x40\xb8\x3e\x2f\x76\x63\x2a\x66\x17\x8f\xad\x6d\xe8\xe4\x9f\x01\xd3\xfb\xd7\x0e\x23\xa4\x74\x52\x4c\x23\x5e\xa0\x97\x21\xfe\xab\xb9\xda\x5a\x5e\x98\xde\x97\x55\x1f\x96\x7d\x27\xde\x07\x6f\xe1\x26\xf4\x87\xbb\x47\xb7\xde\x8d\x2f\xdb\x58\x11\x79\x41\x24\x8e\xb1\xc4\x8a\x75\xcf\x88\x3c\x46\x57\x0c\x9e\xdd\x61\xf1\xd0\x43\xb6\xd8\x17\xe2\x29\xca\x85\xc7\x17\x48\x2a\x7f\x23\x46\xc3\xee\x0a\xcd\x41\x31\x3f\x28\xe6\xd5\x2b\x73\x88\x50\xab\x59\xe1\x5d\xdd\xa8\x9d\xec\xec\xbb\xbb\xf8\x3c\xb3\xba\x0d\x36\x29\xd8\x45\x83\x1b\x71\xad\x0d\xf4\xed\x5e\x86\x2f\x6b\x05\xdd\xe9\xd5\xa8\x6b\x81\x1d\xee\x3d\xfd\x7f\x87\x7b\xef\x70\xef\x1d\xee\xbd\x3d\x58\xe1\x57\xb7\x28\x57\x70\xf7\x57\x35\x29\xaf\x53\x90\x37\x86\xa6\xcb\x15\xe2\x2e\xe0\x74\xbf\xb6\xc1\xa0\xab\x30\x25\x97\x35\x64\x81\xc4\x1c\xa7\xba\xc8\x76\xc4\x17\x0b\xce\x42\x5b\x75\x0f\x39\xc7\x3a\x18\x02\xd7\x02\x98\x2a\xca\xce\xbb\xa1\x6f\xc3\xc6\xec\xad\xcb\x4b\x64\x14\xed\x54\x84\xd0\xa1\xfa\x07\xfd\xfa\x19\xe5\x8c\x03\x76\xe0\x4e\xb1\x03\xf7\x63\xae\xcf\x92\x7d\xb4\x7b\xfb\xfa\xdb\xc8\x38\x3a\x80\x04\x1e\x72\x6a\x0e\x39\x35\xf0\xfb\x01\x24\x70\x77\xd4\xfa\xbc\x32\x3d\x8f\xc9\xb8\x50\x15\xcb\xfd\x73\x5c\x74\x79\x05\x4f\x7c\xff\x57\xf0\x20\x4f\x32\x82\xd6\x69\xbc\xcb\x4a\x5a\x97\x3c\x26\x5b\x54\xd3\x52\x23\x6a\x5d\x49\x2b\xe8\x6b\xcf\x45\x78\xbb\x4c\x5a\x94\x0f\x06\xfe\xcc\x82\x7c\x0d\xc5\x7c\x89\xd6\xa8\x0a\xfa\x3f\x98\xa6\xd6\x2e\xd4\x97\x5a\xaa\x20\x67\x70\x6f\xc8\x51\xd3\xee\x16\xb0\x21\x35\xe3\x9a\xbb\xa0\xfa\xb9\xbb\x11\xaa\x1f\x3f\x0f\x8c\x4c\xfb\x0b\xa1\x80\x1e\x13\x5e\x05\x9b\xa2\xc6\x04\xdd\xbf\x0d\x3b\x8f\x3f\xe2\x97\xb0\xf4\x34\x12\xd3\x17\x77\x4d\x34\x1d\x8d\xc3\x65\xd1\x72\xb9\xbe\xd4\x2b\xe3\x80\xf6\xd2\x64\x7b\x39\xc0\xa9\x1c\x4c\x3f\xfb\x33\xe1\x83\xe9\xe7\x4d\x9b\x7e\xb4\xa3\x7a\xbc\xc4\x29\x61\xb2\x42\x46\x2f\x5e\x27\xf0\xba\x9f\x37\x6f\xa5\x0e\x68\x40\x4b\x8b\xe6\x42\x76\x57\xd5\x97\x65\x0b\x32\x82\xc1\x58\xcb\x15\x5e\xde\xd0\xc9\x3f\xf3\xbf\x3d\x25\xc0\xfb\xb1\xc2\xe1\xdb\x14\x08\xa6\x31\xec\x85\xba\xbe\x33\x13\x13\xb6\xab\x6c\x23\x2b\x24\xd6\x38\x6a\xeb\xe3\xc7\x6c\x4a\x01\x89\x73\x81\x2b\x9f\x61\x45\x5c\x99\xe9\xe9\xc8\x8a\x61\x79\xfc\xc4\xda\x30\xb3\x6b\xfd\xe9\x39\x7c\xf9\xb6\x32\x91\x6a\x86\xfe\xb2\xe1\x67\x65\x72\x6c\x77\xba\x2d\x71\x50\x9d\x5b\xf3\x34\xa7\xe0\x89\x01\xa8\x38\xb8\xcf\xbd\x0d\xb7\xf9\xd3\x18\xd2\x8b\xea\xae\xa7\x97\x16\x20\x4b\x67\xae\xdd\xc4\x0d\x8d\xbe\xdd\x79\xbf\x7a\x30\xce\x1a\xba\x7f\xd5\xc0\x9c\x06\xc6\xbd\x5d\xb9\xc8\x57\xe3\xcb\xce\x76\xff\x72\x9c\xf9\x23\x91\x5f\x1e\x5b\xfe\x48\xe4\x4b\xf1\xe4\x4d\x19\x71\x23\x33\xca\x6b\x04\xbd\xd1\x38\x91\x12\xff\x7d\xb3\xd3\xed\x12\xaf\xf5\xb3\x9e\xa4\x09\xd6\x72\xa9\xe8\xfe\x54\x25\x37\x06\x8c\x40\x07\x3c\xa4\x0c\x1f\x52\x86\x0f\x29\xc3\x87\x94\xe1\xfd\x4b\x19\xb6\x5f\xbf\x8b\x49\x42\x24\xa9\x95\x9b\xce\xe1\xf1\x6b\xc9\x4d\xba\xf7\x17\x94\x9a\x74\x87\x5f\x9e\xe0\xa4\xe7\x75\x90\x9d\x0e\xb2\xd3\x2e\xa6\xbb\xaf\xda\xab\xa5\xf2\x7d\xd0\x5e\x5b\xa3\x13\xe5\x41\x62\x6b\x63\x03\xcc\xb4\x7f\x5d\x1b\x14\xe0\x21\x3d\xda\xe1\xac\x73\xfc\x5f\xdb\x61\xbf\x1d\x26\x27\x9e\x9b\x8f\x6d\xe3\xde\xb4\xeb\xfe\xc5\x7a\x37\x0f\xb5\x2c\x2a\xd7\xea\xe0\x7c\x6d\x58\x9c\x83\xf3\xf5\xe0\x7c\xdd\x3b\xe7\xeb\xce\x55\xaa\xc6\x8a\xf4\x37\xe6\x6a\x6e\x8c\x0a\xb7\x17\xbd\xd6\x65\x14\x29\x68\xfc\xed\x98\x2c\x13\xbe\x02\x1b\x4b\xa3\xb5\xd9\xd5\xa2\xaf\x08\x8e\x2a\x5e\xfe\xf6\xed\xeb\x92\xd0\xbe\xef\xf7\xbf\x1d\xf9\x4b\xa9\x35\xfb\x22\xf6\xe6\xf3\xde\x0b\x41\xf7\xe4\x9f\x85\x94\x88\x56\x98\x29\x5e\x12\xc3\xfa\x63\x30\x62\xd5\x4f\x3c\xc8\x7c\x73\x6b\x4e\x32\xe9\xc5\x1b\x0a\x75\x00\x96\x24\x95\x2b\xef\x4d\xb2\x58\xca\xd5\x7f\x8d\x18\xcd\x91\xb5\xe9\x8c\xf1\x54\xf3\x40\xf5\xf1\x1c\xb3\x38\x51\xe7\x47\xb8\x76\x22\xcc\x18\x97\x20\x9c\xc0\x0c\x62\xf4\x48\xb1\x16\x65\xfa\xd7\xc3\x16\x3e\xf9\x56\x67\x31\x70\xa7\xbf\xa1\x93\xf8\xd2\x98\xd5\x6b\x6e\xd1\x8f\x09\x9f\x40\x95\x85\x2c\x34\x31\xa8\x06\x0e\x0e\xe0\x60\xe7\x5e\x8b\x79\x48\x2c\x1e\x8a\x89\x5a\x61\xd8\xfe\xb8\x31\x75\x6b\xcd\xbb\x01\x98\x61\xf3\xab\x85\xf4\xae\xf0\x99\x49\xf8\x82\xc7\x30\xe4\xe2\x38\xec\x8f\x7e\x87\xf6\xb7\xbc\x65\xfb\x8b\xad\x52\x05\x3f\xa6\x44\xa6\xab\x31\x96\x52\x31\xa4\x5d\xe6\x94\xdd\x61\xf1\xb0\x45\x4e\x59\xe8\xdd\x59\x93\x53\x16\xf4\xb5\xe7\x1c\x2b\xc8\x29\x0b\x07\xfe\xec\x1c\xab\x25\x71\x7f\x71\xe9\x03\x6d\x8f\xea\x21\x95\x60\x83\xa5\xfb\x52\xd3\x0a\x9a\x78\xf1\xde\x8c\xb0\x70\x1d\x7c\x89\x27\x37\xbc\xdc\x0e\x47\xb4\x69\x8d\xbe\xb8\x72\x1a\x05\x99\x65\xcd\xdc\xde\x48\x59\x8d\xa2\xd8\xb5\xeb\x51\x3d\x8f\xfd\xdd\xdb\x8d\x43\x9d\xbd\x43\x9d\xbd\x43\x9d\xbd\x67\xaf\xb3\xd7\x4e\x67\x6d\xad\xb0\xb6\xd5\x56\xdb\xa9\xaa\xf5\x7a\xea\x33\xf8\x9c\xdb\x2b\x93\x85\x7c\xf4\x50\x8d\xdc\x34\x1f\x3d\xe8\xfe\x4d\x38\xa7\x83\x11\xbf\x44\x3e\xfa\x6f\x54\xb3\x3c\xa8\x95\xcf\xb2\x6e\x5f\xaa\x4e\xb9\xe7\x0a\xe5\x21\x93\xfe\x80\x62\x78\x08\x35\xd9\xe1\xe2\x1c\x42\x4d\x0e\xa1\x26\x5f\x6c\xa8\x49\xbd\x7a\x42\xe3\xad\xb3\x24\x3b\xe2\x96\x3b\x2b\x43\xfa\x2b\x88\x52\x4a\xec\x6f\x81\x64\x5e\xa5\x2d\xe4\xb2\x74\x80\x3c\xbc\xb9\xe6\x30\x8c\xdf\x84\xca\x50\xb9\x9a\x2f\xa1\x3a\x1c\x40\xb0\x77\x0a\x82\xbd\x77\xd3\x3e\x48\x95\x07\xa9\xf2\x20\x38\xb5\x9c\xf0\x41\x70\xda\x5f\xc1\xe9\xb5\xb4\xa1\x2f\x09\x0f\x49\x89\x58\x41\x56\x52\x63\x9c\xb2\xc6\x34\x02\x67\x46\xb6\x4c\x38\x8e\xd7\x45\x1c\xfd\xea\x89\x6f\x0d\x72\x9f\xd7\x6e\x9a\xc7\x29\x17\xc4\xbf\x26\xd9\x4e\x37\xa0\x7a\x7c\x0b\xa2\x9d\x1a\xa7\x1e\x71\x8b\xe8\x48\xbf\xc3\x77\xff\xde\x62\xe0\x37\xe6\x4e\x06\x4e\x33\xc1\xb1\x05\x0d\xd0\xe2\xd9\x02\xaf\xd0\x1c\x3f\x12\x34\xc5\x34\xd1\xf6\x39\x1a\xe3\xe2\xfa\x16\xe6\xd6\x34\xa0\xff\xec\x36\x20\x1c\x0e\x27\xcf\x68\x54\xf7\x85\x96\xaa\x22\x9c\x58\x77\x1f\xbc\x33\xc7\x02\xe1\x24\x25\x38\x5e\xa1\x09\x21\xcc\xcb\x64\x6b\x3b\xe6\x9d\x08\xc6\xaf\x1e\x9e\xe9\xd3\xcd\xab\x46\x79\x03\xd7\xa8\xad\x16\xbd\x73\xc5\xb2\xc8\x49\xb6\xd0\x21\xb7\x51\x1c\xc5\xf7\x6f\x85\xb9\xbc\x84\x9a\xf8\x05\x7b\x91\x0e\x9e\xa2\xdf\x66\x4d\xc6\xbd\xd1\x3e\x0e\x2a\xfa\x21\xc9\xf8\xe0\xf9\x39\x18\x30\x0e\x06\x8c\x9d\x2f\xe3\x3e\x19\x30\x5e\x51\x46\xd7\xb9\x4d\xcf\x52\xac\x64\x5f\xa4\xf5\x83\xb0\x7e\x10\xd6\x0f\xc2\xfa\x17\x2b\xac\xef\xc7\x0a\x1f\x24\xf5\x83\xa4\x7e\x90\xd4\x0f\x92\xfa\x41\x52\xdf\xf9\x32\x1e\x24\xf5\x82\xa4\x0e\x7f\x59\xb4\x80\xae\x62\x7b\x6b\x71\x7d\x33\x68\x80\x76\x6e\x3a\x83\x0d\xf0\x56\x24\xf3\x83\x54\x7e\x90\xca\xf7\x5b\x2a\xdf\x9b\x09\x7d\x79\x09\xc1\x87\x94\xda\x43\x4a\xed\x21\xa5\xf6\x35\x52\x6a\x2d\x2f\x69\x92\x70\x9a\x6a\xe9\xfc\x64\x98\xcb\xd7\x94\x45\x49\x06\xa2\xaa\xfa\xf9\x7d\x46\x93\x18\x81\x8a\xa4\x34\x5d\xca\xd9\x37\x40\x4f\x40\x0a\x30\x4e\x5b\xfd\xa1\x59\x82\xf9\xa9\xc4\xea\xf6\x56\x88\xc9\x47\xbb\x29\x0c\xdb\xae\xf6\xd4\x95\xc0\xdd\xa0\xe2\x5e\xf0\x9b\x6d\x68\x8f\xea\xf0\xf5\xac\x58\xa2\x38\x92\x1d\xdf\x33\x57\xe4\xab\xec\xb3\x53\x7d\xbe\x9f\xcd\x47\x6f\xab\x94\x41\x79\xd4\x87\xaa\x7c\xc8\xdb\xb5\x43\x55\xbe\x67\x9c\xb7\x3d\x67\x6b\x66\x6e\x69\x54\xdb\xc2\xdf\xe8\xb4\x5f\x3d\xd8\xb1\xfe\xa4\xbf\x6a\xe8\x63\xe5\x45\x56\xca\xad\x3b\xf9\x67\xe5\x3d\xf5\x0a\xc5\x08\x3b\x5f\x4e\x3b\x29\x4b\xb8\xcd\xf5\xf4\x91\xc8\x2f\xe5\x6e\x3a\x94\x26\x3c\x94\xd7\xd9\xd1\x74\x37\xba\x7b\xde\xec\x6c\x0f\x85\x18\x0f\x85\x18\x0f\x85\x18\x83\x23\x78\x28\xc4\x78\x28\xc4\x88\xd0\x8b\x14\x62\xec\x2c\x33\xee\xa0\x24\xe3\x36\x12\xa3\xee\xfe\x4b\x11\x1a\x0f\x65\x19\x0f\x72\xe3\xee\xa6\xfb\xdb\x92\x1b\xf7\xd0\x6a\xb1\x17\xf5\x27\x9d\xd5\xe2\xd5\xa1\x80\x1c\x6b\x6f\x0d\x07\xe4\xc7\x9a\xb8\xaf\x77\x8a\x0a\x64\x37\xed\x80\x0c\x64\xfe\xef\x80\x0c\x74\x40\x06\xaa\x99\xf5\x21\x98\xf9\x80\x0c\x84\x0e\xe1\xba\x87\x70\xdd\x7d\x0e\xd7\x6d\xb1\x8d\x07\x64\xa0\x96\x22\xe3\x33\xa1\x03\x59\x99\x6b\x2b\x84\xa0\x0a\x71\x70\x3d\x4a\xd0\xcf\x65\x8d\x68\x6f\x45\x3d\x3b\xd6\x03\x5a\xd0\x01\x2d\x68\x5b\xda\xd9\x0b\x05\xf4\x05\x51\x83\xaa\x38\x4c\x97\x5c\xe4\x0a\xe6\xb2\xad\x82\xf9\x36\x10\x84\xec\x68\x0f\x89\xc9\x87\x14\x88\xfd\x4f\x81\xd8\xbb\xc4\xe4\xbd\xd1\x54\x0e\xea\xfc\x21\x37\xf9\x90\x9b\x7c\x30\x76\x1c\x8c\x1d\x3b\x5f\xc6\x7d\x32\x76\xbc\xb2\xdc\xfe\x8c\x48\x42\xfb\x28\xc1\x1f\x04\x78\xfd\xde\x41\x80\x3f\x08\xf0\x5f\xa8\x00\xbf\x1f\x2b\x7c\x90\xde\x0f\xd2\xfb\x41\x7a\x3f\x48\xef\x07\xe9\x7d\xe7\xcb\x78\x90\xde\x5f\x0c\x5d\xa8\x4a\x84\xef\x8c\x30\xd4\xd1\xcd\xe7\x25\x90\xbd\x25\x69\xfd\x20\xa9\x1f\x24\xf5\xfd\x96\xd4\xf7\x66\x42\x07\xb4\xa1\x03\xda\xd0\x01\x6d\xe8\x80\x36\xb4\x91\x8c\xf4\x6f\xe6\x58\xbe\xf3\x6e\x62\x77\x65\xbf\x7b\x9f\xf0\xc9\xdd\x6a\x49\xd4\xff\x9e\xd3\x05\x61\x02\x24\x5a\x2a\x57\xbe\x4c\x54\xb3\xf2\xe5\x35\x7f\x77\x3b\xbc\xfc\x78\xe1\xa7\xa1\xbd\xfb\x74\x7f\x71\x37\xbc\xee\xdf\xb8\x75\x71\xb3\xf2\xd7\xc2\x7c\x17\x88\x75\x86\xe4\x6f\x88\xd2\x5f\xe1\xd4\xdc\x4a\x2c\x33\xb1\xd9\xc8\x6e\x06\xb7\x83\x9b\x9f\x20\x8d\x6e\x7c\x3e\xbc\xed\xbf\xbf\x08\x08\x22\x78\xde\x3f\xfb\xcb\xfd\xf0\xa6\xfe\xf9\xe0\xbf\x87\xb7\x77\xb7\x75\x4f\x6f\x06\x17\x83\xfe\x6d\xfd\xd7\x1f\xfa\xc3\x8b\xfb\x9b\x41\xe3\x7a\x34\x8e\xb6\x59\x91\x11\xb0\x48\x90\xc5\x82\x22\xc3\x35\xd2\x7c\x0d\x91\x13\x1f\x2d\x3b\xac\xea\xeb\x14\xdd\x1b\xbb\x00\x35\x8d\xdb\x90\x24\xd7\x90\x56\x68\x62\x2a\xf0\x24\x21\x71\xa9\x25\xbb\x86\x75\x2d\xe1\x60\x50\x4f\x4a\x03\x77\x22\xa7\xe2\x79\x91\xe6\x05\x08\x92\x6e\x25\x61\x71\x45\x1f\x7a\x1f\x6a\x7b\x60\x8a\x77\xd1\x47\x12\xf4\x14\x65\x69\x4a\x98\x4c\x56\x5a\xe0\x16\xa5\x46\xed\xf6\xd5\x35\x6b\xee\x54\xd7\xe0\x1c\x0b\x1d\x79\x15\x8c\x3f\x25\x09\xc1\xa2\x62\xcc\x66\xf7\xdb\x2d\x8b\xdb\x2b\x63\xd1\xd1\x97\xd1\x14\xd3\x24\x4b\x49\xe1\xb4\xf0\xc5\x12\xa7\x54\x70\x36\xf8\xac\xee\x32\x75\x90\xaf\xe0\x73\x9e\x6e\x76\x62\x06\x7f\xf1\x29\xf8\x32\xfc\xe7\xc7\xbb\xf0\x5f\xc1\x99\xbf\xb8\x0b\xff\xd5\x4c\xeb\x5e\xc3\x45\xca\x3e\x42\x1f\xef\x4e\xd1\x47\x08\xe9\x4a\xd1\xdd\x1c\x6b\x8a\xbd\xb8\x3b\x45\x17\x44\x08\xf8\x25\xff\x58\x52\x99\xc0\xdc\xde\x53\x86\xd3\x15\xb2\xd3\xd7\x99\xdb\x18\x7c\x25\x76\x69\x8a\x8b\xc7\xfe\x96\x31\x50\xff\xf3\xd5\xbb\xe0\x33\x1a\xe1\x64\xbb\x45\xec\x5f\x06\x7c\xe0\xea\xa6\x71\x29\xfc\xb7\xcb\x6b\xd1\xbf\x3c\x87\x3c\x72\x3b\xd4\x8a\x99\x5f\x12\xa1\x88\x24\xe2\x2c\x36\xfe\x23\x75\xfb\xaf\x3c\xa1\xfe\x6f\x1c\x32\xcb\x33\xa1\x54\xcd\xfe\xe5\x39\x3a\x41\x57\x37\x23\x76\x95\xc6\xda\x98\x4a\x94\x34\xac\x69\x8e\x0a\xc4\xb8\x44\x74\xb1\xe4\xa9\xc4\x4c\x2a\x45\x00\xc4\x00\xb3\x22\x9a\x03\x9c\xf1\xc5\x22\x93\x58\x1d\xb4\xd2\xa2\x32\x6d\x52\xb9\x25\x72\x18\x83\x7b\xa6\x62\x0d\xb5\x9c\x90\xcf\x65\x99\xaa\xf6\x95\x8c\x12\xea\xe1\x34\x2e\xa9\xb2\xb6\x09\x9c\xa6\x38\x94\x26\xde\x51\x49\x16\xc5\xf7\x5b\x86\x17\xff\xab\xd2\xc8\x70\xa6\xd3\x79\x48\xda\x4f\xa3\x39\x95\x24\x92\xea\x08\x6e\x44\x13\xf7\x97\x3f\x5e\x5e\xfd\xec\x4b\x10\xef\xfa\x9f\xce\xff\xf4\xef\xc1\x0f\x37\x9f\x4a\x3f\x8c\x7f\xfa\x53\xe9\x97\xff\x5f\x23\x3d\x15\x7b\x2a\xe9\xf9\xde\x5c\x8e\x40\xa4\x06\xbb\xb2\x9d\x2a\xa2\x0b\x3c\x23\x48\x64\x4b\x45\x01\xe2\x38\xdc\x5f\x25\x52\x5e\x70\x1c\x53\x36\xd3\xe9\xd5\x17\x54\x92\x14\x27\x9f\xf0\xf2\x83\xb5\x81\x6f\xb0\x3a\xff\xf7\x36\x48\x74\x7f\xf7\x4b\xff\x93\x9f\x2a\xff\xee\xfa\xe6\xea\xee\xaa\x71\xd6\x41\x0b\xe5\x63\xa4\x1e\x9f\xc2\x7f\xd1\x09\x52\xad\x3b\xc9\x77\x41\x24\x56\x1a\x01\xfa\x5a\xa7\x84\xba\x14\x2e\xca\x12\x38\x35\xcb\x94\x2e\x28\x5c\x29\xda\x0a\xf8\x8d\x16\xae\x9d\xf6\xe0\xce\x8d\xfe\x40\x27\x7d\x9b\x4b\x99\xc5\x38\x8d\xd1\xdf\x44\x11\x0f\x01\x8c\xcf\xfa\x07\x12\xa3\x23\x34\x97\x72\x29\x4e\x4f\x4e\x9e\x9e\x9e\x8e\xd5\xdb\xc7\x3c\x9d\x9d\xa8\x3f\x8e\x08\x3b\x9e\xcb\x45\xa2\xf1\x1f\xd4\x2a\x9c\xa2\xeb\x94\xab\x2b\x04\x14\x74\x92\x52\x9c\x40\x2a\xfa\x44\xf3\x3f\x3e\x45\xbf\x46\x3c\x25\xc7\xf9\xc6\x18\xc3\x94\xb9\x47\x8c\xf1\xea\x44\xbd\x54\xc1\x4c\x8a\xfb\x89\x62\x12\xd1\xd8\x88\x19\x84\x45\x1c\xac\x97\xda\xdf\xa1\xda\xb3\x79\xb4\xc4\x38\x9b\xdd\x72\x7a\xca\x0a\x8e\x09\xc2\x8f\x98\x26\x1a\x65\x84\x87\x04\xa7\x14\x9f\xa1\x56\x5b\x33\xa5\xa2\x43\x74\x33\xdc\xaa\xf6\xd5\xa5\x9a\x70\xc4\x13\x34\xc9\xa6\x53\x92\xfa\xbe\xee\x9e\xd2\x66\xa8\x40\x29\x89\xf8\x62\x01\x12\x83\xfa\x2a\x13\x9a\xaa\x61\xc5\xcc\x68\x8f\x47\x0c\xf6\x5f\xa9\x39\x40\x01\x31\x07\x56\xc7\x08\x89\x11\x66\x2b\xdd\xcd\x24\x9b\x06\xbe\x74\xc0\x55\xc1\x31\xa2\x72\xc4\xfa\x49\x82\x52\xb2\xe0\x92\xf8\x61\xda\xe0\x78\x0b\x16\x1c\x58\x64\x4a\x96\x09\x8e\x2c\x08\x40\xc2\x23\x9c\xa0\x29\x4d\x88\x58\x09\x49\x16\x7e\x03\x5f\x83\xad\x46\xad\x19\x15\x28\xe6\x4f\x2c\xe1\xd8\xcc\xa3\xf8\xd9\x37\xe1\x69\x1c\x58\xb4\x8d\x41\x9a\xf2\x14\xfe\xf3\x23\x65\xf1\xce\x38\xd4\xfd\xed\xe0\xc6\xff\xf7\xed\x2f\xb7\x77\x83\x4f\xdd\xb8\x8f\xa3\x2c\x18\x1e\xe8\xf0\xa7\xe8\x56\x2f\x02\x4f\x95\x44\x94\xd6\x4c\xea\x93\x21\xa5\xfc\x07\x1e\x6f\xc8\x7d\x3f\xf5\x2f\xef\xfb\x01\x47\xb9\x3d\xfb\x61\x70\x7e\x5f\xd0\x07\xcc\xfc\x02\x19\x5e\xab\x7f\xfe\x6f\x67\x3f\x0c\x2f\xce\xc7\x15\x0a\xe3\xbb\x9b\xc1\xd9\xd5\x4f\x83\x9b\x5c\xb7\xab\x5c\xa2\xc2\x60\x8a\xcc\xea\x4e\x33\xa5\x39\x8f\xd1\x64\xe5\xe7\xa9\xe7\xd8\x2a\x4a\x72\x4e\xc0\x9f\x9b\x63\xfc\xe8\x56\x4f\x81\x37\x59\xb0\x99\xfc\x8b\x05\x8f\x49\xcf\xbc\x03\xd0\x30\xda\xb8\xa2\x25\xe6\xea\x86\x55\xef\x98\x79\x86\x0a\x0d\x12\xe3\x16\xee\x14\xf5\x91\x50\x2f\x66\xea\x50\xa7\x74\x36\x03\xc3\x61\x61\xa8\xba\x35\xf3\x29\x2c\x2f\x7c\xa7\xf7\x7f\x99\x72\x38\xe7\xaa\x5b\x63\x71\x76\x56\x09\xfd\xa1\x46\xb6\x0d\x5a\x4c\x31\x18\x1c\x2a\x86\x66\x37\x4b\x2d\x42\xed\x7a\xe9\xf3\x98\x27\x56\x00\xdb\x12\xda\xde\xb9\x4c\xc9\x23\xe5\x99\xf7\xa9\x41\x3c\x0a\x76\xbc\xb2\xf9\x7c\x01\x60\xd9\xb4\x51\xa4\xd0\x8c\x23\x8f\xca\x16\x14\x0b\x7b\x84\x16\xa6\x29\x5f\x54\xb4\x11\x1e\x93\xe1\xd5\xad\x4c\xb1\x24\xb3\xd5\xb9\x61\x19\x9b\x1f\x8f\xf3\xab\x9f\x2f\x2f\xae\xfa\xe7\xe3\x41\xff\x63\x78\xe2\xdd\x93\xdb\xbb\x9b\x41\xff\x53\xf8\x68\x7c\x79\x75\x37\xb6\x6f\x34\x92\x7c\x4d\x07\xe5\x7b\x3a\x7c\xf1\x14\x29\x96\x0b\xac\xd1\x42\x48\x7a\xfc\x71\x42\xa6\x3c\xd5\x7c\x7e\x61\xc3\x1f\x8c\x08\x63\xd7\xd6\xe8\x62\x85\x59\x9c\x82\x65\xac\xaa\x49\x6d\xf5\x96\x29\xc1\x0b\xb8\x27\x30\x43\x03\x16\x1f\x5d\x4d\x8f\x6e\xf5\x8f\x0b\x9c\x3e\x90\xd4\x7d\xfa\x94\x52\x29\x09\x0b\x54\x3a\x6c\x87\xec\x94\xc4\xbc\x83\x63\x74\xa3\xf8\xbe\x7a\xdf\x5d\x6a\x8a\xd8\x63\x22\x31\x4d\x84\x19\x6c\xb0\xae\xa7\xe8\x02\xa7\xb3\xdc\x0e\xf7\x35\x9f\x4e\x75\x63\xdf\xe8\x61\xa8\x3b\x2c\x98\x45\x05\xef\x55\xa4\x61\xef\x45\xe8\xcf\xbc\xec\xe4\xe1\x32\x55\xdd\x2f\xb7\xa3\xa9\xfb\x6b\x58\x71\xad\xb1\x07\xba\xa1\x79\x52\x41\x6b\x30\x71\xfd\xb8\xf9\x92\xa9\x6e\xbb\x4c\x4e\xe1\x8b\x15\xe4\xa4\xb3\xf8\xd4\xce\x4f\x95\xb6\x59\x41\x4b\xe4\x33\x35\x06\x03\x7f\xdc\x05\x12\xca\x9b\x01\xf3\x2a\x5e\x2e\x09\x4e\x45\xd5\x6e\x87\x62\x60\xcd\xde\xeb\x9e\xfc\x3e\xcc\x26\xdb\x7e\x7a\x88\x33\x30\x38\x38\x21\xa2\x40\x91\x2d\x68\x40\xb7\x55\xa2\x80\x6b\x80\x0f\xbb\x32\x50\x5d\x9f\xa8\x50\x4a\xa3\xfe\xf1\xbd\xc1\x10\xdb\x8c\x20\x3e\xf4\x87\x17\x05\xe1\x62\x7c\x3e\xf8\xd0\xbf\xbf\x68\x36\x13\x06\xdf\x15\xb7\x18\x1d\x21\xf5\x3c\xf4\xbd\xd3\xa9\xbe\x33\x2c\x12\x9a\x56\x69\x09\x03\xa3\x95\x49\xba\xd3\xf6\xea\x98\x2c\x13\xbe\x5a\x10\x06\x26\x9e\xe0\x26\x54\xeb\x39\xc5\xd4\x5c\x2d\xde\x60\xc1\x8a\x63\xcc\x6e\x70\x8d\x1d\x59\xf8\x35\x12\xbb\x9b\x37\x44\x5f\x2b\xb0\xee\x6b\xed\x3d\x33\xff\x73\x2b\xb1\xdc\xf0\x8c\xf5\xcf\xee\x86\x3f\x0d\x42\xfd\xf0\xec\x87\xe1\x4f\x55\x52\xcd\xf8\xe3\xe0\x72\x70\xd3\xbf\x5b\x23\x9c\x14\x9a\xac\x12\x4e\x84\x1a\x70\xd1\x7b\x4a\x85\x8b\x2a\x52\x67\x27\xe5\x09\xa2\x52\xa0\x47\x2a\xe8\x84\x02\xe2\x9d\xf1\x44\xde\x0f\x81\xb3\x42\x9a\x25\x95\x2b\x2b\xbe\xe8\x7e\xc3\x7d\x54\x9c\xd4\xb4\xaf\xcd\x0e\xbe\x7f\x12\xac\x7c\x7a\x73\xec\xa4\x4f\x11\xe8\xb6\x8f\xa0\xb4\x79\x9f\x31\x25\x48\xb3\x19\x49\xf5\x70\xc0\xfb\xe2\x8f\xc5\x7b\xae\x46\xe5\x0b\x2b\xf9\xaa\x39\xa1\x75\x46\x18\x49\x01\xde\xcb\x75\xa2\x05\xa9\x94\xb0\xaf\x94\xcc\xb5\x4c\x68\x44\x65\xb2\x42\x11\xd8\xb0\xc0\x9c\xb9\xc0\x0c\xcf\x8c\x70\x00\x6a\x4e\x81\x24\xfe\xa2\x61\x01\xaf\xa6\xc6\xb4\x7f\x47\xc9\x86\xc7\xec\xfe\xf2\x7c\xf0\x61\x78\x19\x92\xc0\x0f\xc3\x8f\x81\x08\xfb\x69\x70\x3e\xbc\x0f\x6e\x73\x25\xc9\x36\xcb\xf5\xc5\x66\x2b\x8e\xa2\x7b\xe9\x14\x9d\xeb\x4f\x4f\xd5\xe2\x56\x60\x1e\x3a\xe5\xb7\xb0\x0e\x37\x36\xac\xcf\xfe\x31\x60\x32\xad\xf4\x4b\xb4\x35\x21\x19\x1f\x64\x60\x43\xaa\x0e\x55\x28\xf5\x7d\x59\x74\x2a\x97\x43\x39\x8c\x23\x52\x75\x72\x9c\x5b\x96\xfc\x18\x06\x30\x1a\xd4\x19\xb1\x2a\xdc\x5a\x39\xc3\xfe\x09\x5c\xd4\x8b\x4c\x48\xed\x4a\x04\xe2\x44\x0f\x7f\x16\x6a\x41\xc1\xd5\x78\x8c\x6e\x09\x19\x31\x6b\x3d\x98\x51\x39\xcf\x26\xc7\x11\x5f\x9c\xe4\x80\x9b\x27\x78\x49\x17\x58\x49\xd2\x24\x5d\x9d\x4c\x12\x3e\x39\x59\x60\x21\x49\x7a\xb2\x7c\x98\x41\x14\x8d\x75\xa7\x9e\xb8\x66\x67\xfc\x77\x17\x7f\xfc\xf6\xe8\xe2\xcf\xdf\xbe\x2b\x5b\xc8\xea\xf6\x7f\xc0\x22\xbc\x14\x59\x62\xa2\xee\x52\x7f\x6d\xec\x91\xcf\xc8\xba\xfd\xbe\x0c\xb7\x6b\x3b\xfd\xf5\xec\xfa\x3e\xb0\x58\x87\xff\xfc\x34\xf8\x74\x75\xf3\x4b\xc0\x29\xef\xae\x6e\xfa\x1f\x03\x86\x3a\xb8\xfe\x61\xf0\x69\x70\xd3\xbf\x18\xdb\x87\xdb\xd8\xde\x7e\x64\xfc\x89\x85\x4b\x23\x2c\x07\x2c\xf5\x74\x8a\x3e\xf0\x14\xfd\xe8\x76\xf2\x68\x82\x05\x5c\x31\xf6\xce\x12\x3d\xb4\xe4\x31\x30\x5e\x44\x96\x73\xb2\x20\x29\x4e\x8c\xcd\x40\x48\x9e\xe2\x99\xbe\xe9\x45\x94\x62\x19\xcd\x91\x58\xe2\x88\xf4\x50\x04\xd4\x30\xeb\xc1\xa6\x80\xaa\xc5\x67\x45\x3b\xdf\x4d\xc6\x24\x5d\x10\xab\x82\x9b\x7f\xde\xe9\xcd\xd8\x60\x73\xae\xee\x7e\x08\x85\xbd\x0f\x17\xbf\xdc\x0d\xc6\xb7\xe7\x3f\x36\xae\xa7\xfe\x2c\x18\xd9\x2d\x04\x20\x9d\xf1\x24\x5b\x30\xff\xef\xcd\xc7\x36\xbc\xbc\x1b\x7c\x2c\x8e\xee\xaa\x7f\x17\x52\xc6\x4d\x18\x24\xf7\xee\xfd\xd5\xd5\xc5\x20\x70\x09\xbf\x3b\xef\xdf\x0d\xee\x86\x9f\x02\xfa\x39\xbf\xbf\xd1\x30\x9e\x4d\xd3\xb4\x23\xa8\x98\xa8\x9a\x96\x3f\xcd\x5d\xb3\xc2\x56\x9c\xa8\x6f\x82\xd2\xf5\x59\x3e\xf2\x80\x9e\x74\x38\x18\x58\x75\x8e\x9c\x49\x35\xd2\x23\xad\x64\x87\x32\xdc\x26\x54\xcf\x8e\x1b\x37\xba\x89\x2b\xdf\xb9\x21\x68\x6c\x5b\xad\x6c\xe3\x24\xe1\x4f\x3a\x1c\x78\x41\xd5\xad\x6c\x60\xff\xd4\x2b\x22\xf7\x10\x1e\x57\x70\xbc\x70\x5b\x48\x94\x12\xf9\x89\x67\x4c\x6e\x4e\x72\xfd\xcb\x80\xef\x0c\x2e\x7f\x1a\xff\xd4\x0f\x29\x70\x78\xd1\xcc\x6a\xfc\x26\x2a\xae\xe2\xfe\xe5\x2f\xee\x12\x86\xa0\xf1\x9e\xd3\x50\xb5\xec\x1a\x25\x54\x89\xbd\x11\x56\xda\x6b\x02\x12\x0d\x22\x14\x4c\x0e\x0b\x35\x39\x08\x52\x5d\x6a\x7f\x92\xe6\x4f\x7a\x90\xa7\xf6\x8f\x42\x7b\x02\xd6\x05\xac\xa9\x36\x26\x1f\xda\x31\x5a\x35\x43\x84\x3d\xd2\x94\x03\x40\x33\x7a\xc4\x29\x55\xd2\xb8\x6e\x59\xcd\xf5\x14\xfe\xdb\xad\x4d\x30\x8c\x16\x18\xd7\x2d\x4f\xe5\xb9\x0b\x06\xde\xcc\x1a\x52\x15\x14\x5b\x0e\x87\xad\x36\x74\x94\xbf\xad\xd8\x9c\x2d\x83\x86\xc3\x09\xff\x3d\x39\xa7\x38\x51\x0c\x60\x77\xf2\x62\xff\xf2\x76\x18\xca\x8f\xa1\x9a\xe1\xf1\xe5\x8d\xe5\x45\x30\x54\xea\x91\x5b\x65\xe2\xf6\x2f\x17\x5a\xbb\x00\x14\x6f\x7d\x6e\x3d\xc5\xc2\x40\xb3\x68\x69\x62\x89\x53\x51\xf8\x42\x20\x80\xe0\xcb\x03\xae\xd4\x9d\x05\xe1\x4c\x8f\x9c\xc6\x23\x46\x3e\x2f\x09\x13\x10\x1c\xa0\xef\xb3\xdc\xd7\x2e\x8e\xd1\x70\x0a\x2c\x41\xbd\xce\x50\xc6\x8c\x03\x4c\x5d\xb8\x7a\x90\x3d\x25\xca\xe6\xe8\x30\x9e\xf9\x88\x11\x1b\x2c\x95\x0f\x7e\xc4\x7e\x76\x4e\x34\x78\x34\xe5\x8a\x01\xa9\x5d\x34\xed\x9d\x22\xcc\x04\xed\x21\xa5\xb0\x14\xf7\x14\xd2\x0f\x94\x42\x69\x42\xb8\x14\xa7\x31\x7f\xbe\xfc\x35\x50\x8a\x13\xf6\x2f\x83\xea\xbb\xa0\x70\x15\xd4\x88\xc6\x89\xf6\x98\x8c\xdb\xdf\x09\x11\x4f\x89\xf1\xb3\x74\xbe\x06\xd6\x31\xf6\x3b\x2c\x1e\x4a\xbe\x87\x21\x13\x12\xb3\x88\x9c\x25\x58\x6c\x18\x84\x64\x6d\x1c\xbd\x50\xe2\xb8\xb9\xb9\xbf\xbe\x1b\xbe\x5f\xc3\xe5\x8b\x1f\x97\xc3\x80\xa2\x24\xb3\xee\xb9\x49\xca\x71\x8c\x14\xfb\x9c\x71\xed\x0a\x34\x82\x7f\x8e\x65\xaf\x73\x83\x5c\x40\x65\x80\xa3\x9f\xa7\x34\x18\x3b\x87\xef\x4a\xa0\x66\x21\x50\xa4\x56\x02\x79\x26\x0f\xbb\xd5\xe0\x59\xd4\x25\x7e\x8c\x75\x6b\x99\x60\x39\xe5\xe9\x42\x73\xf9\x60\xd2\xba\xf1\xe6\x46\x29\x93\x24\x4d\xb3\xa5\xa4\xb6\x38\x41\x51\x4a\x55\x5b\x76\xc1\x67\x9f\x88\x10\x78\x46\xb6\x71\x40\x57\x29\x0f\xb7\x3f\xf9\xff\x04\x07\x73\x1b\xd9\x3f\x18\xa1\x8d\x7c\xb7\xf4\x74\xc5\x3e\xe8\x40\x9e\x6b\x9e\xd0\x68\xc3\x80\xbb\x0f\xfd\xe1\xc5\x78\xf8\x49\x29\xf1\xfd\xbb\xc1\x45\x20\x4a\xc0\xb3\xfe\x87\xbb\xc1\x8d\x41\x7f\xef\xbf\xbf\x18\x8c\x2f\xaf\xce\x07\xb7\xe3\xb3\xab\x4f\xd7\x17\x83\x35\x91\x39\xb5\x8d\x97\xad\xab\xc5\x57\x4f\x4b\xbf\xc0\x0e\x2b\x5e\xe6\xdb\xcb\x20\xf3\x0c\xd3\x04\x9c\xe0\x5c\x3b\xc3\x31\x62\x3c\xd6\x18\x5c\xc2\x5a\x67\x1c\x2c\x3b\x1a\xca\xaf\x92\x04\xe1\x4c\xf2\x05\x06\xaf\x4d\xb2\x1a\x31\x3c\x51\xac\x15\x27\x89\x17\xde\x95\x66\x8c\x29\x16\xab\x1a\xd3\x35\x07\xa2\x84\x28\x76\xbe\xf4\x12\x06\x8d\xdf\x60\x4a\x19\x44\xda\x2e\x70\xfa\x60\x0b\x28\xba\x34\x0c\x77\x28\x04\xc2\x62\xc4\x34\x36\x98\x91\x56\x5a\xac\xf0\x69\xab\xb7\x6a\x57\x67\x81\x1f\x88\x5a\x95\x45\x16\xcd\xd1\x32\xe5\xb3\x94\x08\x61\x6c\xcb\x11\x66\x3a\x00\xc1\xbc\xae\xae\xa1\x11\x63\x5c\x2d\x85\x35\x61\xc7\x64\x49\x58\x4c\x58\x44\x75\x6a\x20\xf8\xee\x9d\x69\x73\x96\xe2\xe5\x1c\x09\x0e\x4e\x6f\x58\x76\xb0\x5f\xe9\x8f\xec\x4d\x66\xd0\xd0\xe0\xb1\x6f\x81\x4e\x33\xc5\x27\xae\x40\x4e\xd4\xab\x0c\x1f\xdb\xcb\xd0\xba\x5d\xb4\x1d\x70\xb1\x4c\x88\xd4\xd5\x27\x60\xc9\x61\x33\xd4\x5a\x07\xfb\xa1\xb6\xa9\x6a\x13\xd4\x85\x6d\xc7\x8c\x85\x19\xd1\x71\x85\x65\xdb\x1c\x29\xf4\x03\x66\x71\xa2\x5a\xb1\x3e\x8c\xf0\x2c\x42\x2a\x4a\x5f\x51\x8d\x3d\x8d\xdb\xdc\xa2\x11\xce\xc4\x36\xd7\x68\x21\x9f\x53\x5b\x05\x8f\xf2\xa0\x10\x20\x6f\x93\xcc\x09\xab\xbb\x54\x2c\x12\x27\xdc\xac\x92\x7e\x3d\xd3\x15\xd5\x10\x8c\xa6\xe6\x9a\x5d\xa6\x94\x45\x74\x89\x93\x8d\x74\xbf\x42\x30\xbe\x89\x71\xff\x9a\x4e\x15\xf9\x7c\x53\x72\xdb\x4a\x92\x2e\x20\xc9\xd9\x0c\xd3\x6d\x61\x07\x4b\x92\xc9\x6a\x20\x22\x8f\x26\xc1\x29\xcf\xb4\x3f\x0e\xd6\x85\xc4\x15\x47\xf5\xb8\x6a\xbb\xd5\xc9\xc0\x61\x00\xf4\x06\x9b\xad\x23\x7f\xea\xd6\xaf\xd0\x8a\xe9\x5d\x07\xe3\xe1\xe4\xba\xba\xcd\xaa\x1d\xf0\x1e\xfe\xab\x89\x76\x3e\xe1\xa5\xa2\x19\x53\x13\x03\xe7\x73\x34\x4a\x92\xa9\xb3\x67\xe3\x67\x3c\xdf\xb9\xcb\x0b\x69\xbf\x1b\xf9\x12\x9a\x00\xa8\x72\x27\x41\x0c\x81\x97\xa7\x6e\x68\x7c\x9a\x29\x59\x16\x61\x88\x42\x40\x5f\x93\xe3\xd9\x31\xb2\xd5\x4b\x7a\xa8\x7f\x7d\x3d\xb8\x3c\xef\x21\x22\xa3\x6f\x6c\xcc\xa2\x09\x58\x1a\x31\xc9\x8d\xb4\xb2\x42\x73\xfe\x04\xbc\x91\xa4\x33\x12\xcc\xd9\x46\x37\x41\xa8\xf2\x8c\x0a\x69\xc2\x67\x15\x5f\xf1\x6a\xf7\xd0\x45\x51\xcc\xd6\x14\x92\xc9\xf9\x36\xa4\x81\x85\xc8\x16\x4a\x97\x1d\x53\xbc\x18\xa7\x3c\xd9\x86\x29\x9c\xc3\x54\x40\x5d\x76\x29\xfe\x14\x2f\x90\x6a\xd6\x84\x82\x38\x97\xa3\x13\xe9\x94\x60\xa4\xf8\xb2\xba\x37\xbd\x7b\xcb\x7a\x1f\x4c\x3c\x1a\xb5\x21\x10\x00\x01\x50\xc3\x2a\x72\xb3\xf1\xd8\x58\xea\xc7\x38\x8a\x94\xca\xbd\xe3\x49\x79\x05\xa1\xac\x4b\xc0\x74\xf4\x6c\xd3\x5c\x47\xe7\x76\x98\x4b\xc5\xc1\x20\x18\xb8\x5c\xcb\xa5\xa2\xdf\xc9\xaa\xd4\xab\x2d\xd9\x74\x2f\x9c\x49\x45\x5f\xc2\x82\xc0\x4e\x0a\x5d\xf2\x49\xce\x89\x81\x1e\xf5\xbb\xb4\x09\x31\xaa\xe1\x15\xcf\xd2\x2a\x46\x37\x62\xe7\x64\x99\x12\x25\xe9\x17\x1d\x28\x8e\xa6\x6f\x42\x4a\x3c\xd0\xf5\x81\xae\xdf\x3c\x5d\x9f\xe9\x32\x6d\xd6\x57\xe4\x95\x41\xda\x86\xd0\xab\x5a\x69\x6a\x09\x3d\xfb\xfd\x7e\xa6\x2f\xf6\xaa\xea\x52\x21\x15\xd9\x3b\x98\xb2\x52\x5d\x3d\xbd\x91\x50\x24\x1e\x2e\xdc\xbf\x67\x5c\x62\xf1\xcd\xf1\x88\x29\xe9\xe1\x81\xac\xb4\x9d\x51\xdd\xcf\xbf\x57\x42\xe8\x91\x20\x4c\x40\x9c\xf3\xef\xb5\x5f\x4a\xed\xad\xb5\xd3\x6a\x9d\x4c\x97\xf3\x0b\x0b\x5f\x41\x6c\xaa\x69\xd4\x88\x07\x79\xe4\x6f\x5e\x2d\xcb\x3e\xd3\xc3\x9f\x11\x09\xb9\xc5\x92\x4a\x50\x16\x62\x5d\x2f\xb0\x34\xf4\xb5\x36\x1b\x4d\x15\x29\x07\x07\x41\x9c\x6d\xc7\xf1\x44\xb9\x8d\xb5\x2c\xc1\x89\xc9\xb7\x26\xd8\xfb\xc4\x1a\x4c\xa2\x94\x97\x8a\xf0\x61\x81\xf4\x4e\x4f\xf4\x39\xb0\x8e\x5b\xc2\x8e\x9f\xe8\x03\x5d\x92\x98\x62\x08\xfd\x56\xff\x3a\x51\xf3\xfa\xdd\xd9\xcd\xd5\xe5\x38\x4f\x61\xf9\xaf\x11\xeb\x27\x82\xbb\xf0\x7c\xc4\x38\x73\x71\xe6\xcb\x94\x58\x59\xc8\xcc\x05\xcc\x8d\xb9\xfd\x6c\xc4\xea\x46\x10\xf3\x48\x1c\xe3\x27\x71\x8c\x17\xf8\x1f\x9c\x81\x0f\xb9\x0f\x7f\x9e\x25\x3c\x8b\x7f\xc6\x32\x9a\x9f\x80\x6b\x57\x9e\x90\x47\xc2\xa4\xf6\xcf\xa8\xe5\x8a\x21\x6b\x55\x40\x98\xfa\xef\xd4\x98\xf3\x6c\x1a\xa1\x54\xb8\x88\x2c\x25\xfa\x7f\x52\x32\xe1\x5c\x56\x73\x67\x3e\x9d\x0a\xd2\x89\x13\xe7\xda\xc9\xed\x15\xfa\xf3\x9f\xbe\xfd\x4e\x91\xd0\x26\x6b\x3c\xbc\xbd\x1a\xab\xef\x7f\x77\x6e\xbe\x17\x1d\x38\xeb\x95\x76\x8f\x18\x1f\xab\x5e\x0d\x1d\x31\x9e\x31\x60\xfb\x29\x58\xed\x95\x80\xac\xc9\x21\xdf\xc7\x2a\xee\x76\xae\xf3\xfb\xb7\x4a\x97\xd9\xe2\x3a\xfb\x98\xf0\x09\x18\x44\xb2\xa0\x32\x58\x43\x68\xc3\x96\x86\xe4\x73\x2a\x96\x09\x5e\x95\x7a\x58\xb7\xec\x97\x8a\x3b\x2d\x71\x44\x72\x60\x02\x1b\x85\x14\xf1\xc5\x02\x22\xe3\xac\xcb\x20\xa6\x53\x08\x91\x93\xea\xb2\x43\x13\x22\x9f\x20\x20\xd3\xfe\xea\x2e\x69\x6b\x89\x54\xac\x0c\xd8\xe5\x48\x2d\x72\x9c\x81\x1b\x69\xf4\xae\x87\x46\xef\x62\xf2\x48\x12\xbe\x54\xa7\x59\xfd\x40\x64\x54\xb5\x89\x83\x05\xa6\xc9\x25\x97\x2e\xc6\x6f\x9b\xfd\x4c\x49\x44\x97\x54\x9d\xae\x31\x51\xed\x3e\x6b\x2e\x54\xf5\x01\xbb\x9b\x13\x07\xa0\x04\x63\x40\x38\x8e\x15\x11\x43\x99\x34\x3b\xbc\xdc\xb6\xcc\xbc\xa9\x07\xe5\x7f\xba\x0b\x2c\x4a\xab\x84\x1e\xfd\x36\xc3\x00\xca\xca\x1d\x70\x16\x87\x9d\x9e\xa4\x7a\x87\x84\xb5\xf1\xba\x8e\xf3\x92\x55\x8d\xf4\x6f\x2a\xf0\x79\xd0\x05\xc6\x54\x57\x6b\xda\x28\x1e\x40\xb5\x16\xed\xc6\x19\xae\xcc\xad\xfa\xae\x71\x68\xc2\xc7\x0e\x8b\xfc\x42\x9a\xa0\x56\x9b\xa0\xf9\x62\x9c\x3e\x59\x3b\xe2\x28\xe1\x22\xcc\xa1\x6b\x3d\xe8\x33\xf3\x69\xd3\xb8\x07\xbe\x15\x22\x4b\x5c\xfa\x5a\x2b\xba\xeb\x57\x2c\x7c\x01\x24\x42\xb3\x09\x69\x24\x67\xf3\x76\x0f\x51\xf0\xc2\xa8\x35\xc0\x49\x9e\x51\xc0\x62\x94\x4b\x89\x23\x96\xdb\xb2\x04\x7a\x22\x09\x98\xbf\x23\xbe\x58\x82\x04\x64\x86\x6b\x5a\x52\x17\xb8\xc4\x92\xf4\x10\xcf\xa4\x6a\x4c\xc7\xea\xd8\x3b\xce\x04\x02\xe5\x52\xa1\x96\xc9\x8d\x53\xdc\x81\x56\x69\x5a\xd7\xac\x90\x32\xf4\x91\x48\x68\x05\x40\x01\xfd\x09\xea\x32\xcf\x8d\x47\xe9\xac\xb4\x6d\x9d\x4f\x94\x99\x49\x87\x9d\xcf\x13\xaa\xde\x27\x7c\xd2\xb8\xef\x57\xd0\x38\xba\xbf\x19\x5a\xe7\x41\x6e\x57\xf5\x50\x8d\x02\x4d\x63\x70\x7d\x33\x38\xeb\xdf\x0d\xce\x8f\x91\x52\x68\x3e\x12\xe9\xa6\x0b\x71\xd7\x0e\x1f\x4f\x8f\xdc\x64\x68\x31\x21\x09\x8e\x6b\xa8\x9b\xa4\x69\x10\x1d\xbd\x86\x71\x84\xe9\x5b\xcd\x84\x0d\xc9\x53\x94\xe9\x54\x36\x48\x38\x2c\xce\xd3\x58\xec\xd7\x9d\x40\xb0\x9f\x8e\xdf\x8e\xf5\x5a\x8f\x77\x51\xb6\xd8\xaf\x23\x9f\xd0\xd2\xff\xdc\x93\x81\xa3\x25\xe7\x84\xa6\xa8\xd5\xb4\x34\x51\x8d\xdb\xcf\xc9\x73\x7d\x7f\xc2\xcb\xe6\xb0\x54\xfc\x14\x10\xad\x96\x64\x3c\x9d\xfe\xb9\xcf\x81\x65\x6b\x63\xcd\x0a\xb7\x9f\x60\x2e\xef\x6b\xde\xea\xf8\xa6\x8e\x04\x11\xa5\x52\xed\xc7\x23\x56\x18\x84\xf1\x6f\x09\x04\x67\x07\x7e\xa1\x0c\x05\x57\x62\x0f\x4d\xe9\x67\xd3\x68\xee\xf7\xb6\xaf\x7a\x86\x90\x1a\x3f\xcb\x1c\x97\xcf\x54\x07\xb1\xe1\x1a\xbe\x6f\xb4\xfb\x73\x21\x95\xd4\xa5\x24\xd7\x94\x28\xfd\x82\xc4\x08\xba\x75\x5e\xf8\xb5\x22\x83\xc4\xa9\x5a\x14\xdc\x49\xdf\xca\xf1\x4d\x63\x2c\xc9\x91\xa4\x6b\x03\xa3\x4d\xec\x0c\x44\xd9\x60\xe9\xa5\x09\xe7\x37\xcf\x84\xcc\x30\xb3\x2e\xdb\x9a\xe1\xda\x2b\x6f\x0b\x56\xa5\x24\x58\x0c\x61\x63\x20\x5f\x41\x48\x50\x30\x0e\xb1\x84\xf5\x6c\x1c\x87\xb1\x8a\xed\xc3\xb2\x3d\x61\x67\xa4\xab\x19\x6c\xb6\x8c\xf7\x69\xb0\x09\x16\x12\x99\x31\xd5\x69\x92\x9e\x84\xbf\x03\xc4\x87\xa6\xca\xb2\xbe\x6a\xd6\xd6\x1e\xa7\x48\x28\x54\x42\x88\x94\xd4\x94\x3d\xcd\x04\x31\xd9\x63\x0b\x92\xce\xac\x20\xac\x4b\x52\xb9\xb3\x6d\x6a\x53\xd9\x5b\xc2\x67\x26\xe0\xbc\x2f\x37\x7d\x8c\xfa\xac\x94\x47\x6b\xed\xb5\xc1\x7a\xe9\x3b\x09\x27\x4f\x78\x25\xd0\x32\xd5\x29\x67\xda\xa3\x6f\x27\x0f\x8e\xb4\xf0\x23\x67\x29\x92\x36\xa4\x02\x81\x2a\xbd\xde\x98\xee\x55\x5a\x6e\xcf\xed\x5a\xea\x44\x05\x6f\x73\x55\x31\x64\xa7\x6a\xb6\x60\x75\x92\x8c\xa3\x39\x66\x33\x32\x36\x59\x76\x1b\x69\x4b\xaa\x9d\x33\x68\xe6\xdc\xb4\x52\x7d\x39\x5d\x6b\x85\xc9\x60\xcb\xea\x57\xad\x4e\x07\x87\x40\x48\x3c\x23\x48\x8f\xa8\x49\x31\xc9\x73\xe6\xfd\x9c\x0a\x03\x42\x04\x7a\x82\x69\x75\x10\x7a\xd7\xeb\x84\x77\xb0\x0c\x5f\xe0\x09\x49\xb6\x76\x82\x6f\x64\xa5\x83\xae\x0d\xe4\xa2\xe4\x6a\x69\x20\x4a\x80\xa0\xa7\x39\x49\x8b\xec\xd8\xda\xb6\xd3\xac\x2a\x66\xa0\x69\x9e\x41\x15\xb8\x2d\x26\x6a\x31\x44\x37\x99\x6a\x1d\xb2\xa8\x7f\xed\x79\x08\x9c\x55\xf6\x11\xff\xfa\x2b\x9a\x04\x37\x1b\x88\x07\x04\x5a\x33\x8e\xad\x91\x40\xd7\x4e\x65\xe3\xe4\x83\x96\x08\xfb\xc3\x29\x62\x9c\x11\x44\x45\xfe\xb2\x0c\xc3\xa4\x5c\xea\x9e\x12\xf1\xb5\xf1\xa5\x5c\xd7\xf4\xb9\x2d\x2d\x79\x52\x85\xb3\x0d\xd8\xb8\x6f\x46\x94\xa2\x8a\xd3\x15\x40\x7f\x68\x3e\x1c\xca\x74\x6b\xc7\xb9\x73\x81\xfb\xce\x22\xbb\x78\x1e\x3c\xc9\x11\x88\x91\x85\xc1\x21\x8d\x8f\x62\x5e\x32\x1f\x99\xf4\xb5\x11\x73\x96\x0d\x20\x44\x2a\xd0\x02\x2f\x21\xe8\x9a\x71\x99\x7f\xa5\xd3\x31\xa5\xdb\xc2\x9e\x15\xc4\x85\xc6\xe7\xae\x59\x81\x75\xa6\x1d\x7b\xfd\xe6\xeb\x1a\xc2\x5e\x58\xc8\x9e\x19\x7d\x24\xcc\xd2\x74\xcf\x9e\x09\x35\x28\xdb\x69\xb2\x3a\xc2\x42\xd0\x99\xba\x3a\x3d\xc3\x75\x33\x47\x32\x35\x4d\xf7\xc0\x1e\xd9\x7e\xc9\xd4\xc6\x67\x25\x0b\xa5\x4e\x9e\x0e\x50\xef\xac\xc3\xd8\xa7\x52\x83\xe7\xa3\x23\xc4\xb1\x40\xbf\x67\x5c\xfe\xde\x43\x3c\xb2\xc6\x0b\x5d\xf2\xd6\x98\xa0\x7a\x25\x28\x57\x38\xb4\x86\x70\x10\xf6\x32\x6f\xd7\xae\xfc\xb6\xc0\x63\xb9\x43\xfc\x59\xa5\xd1\x41\x39\x3a\xae\x0e\x0b\x5b\xd7\x88\xd8\x99\xc5\xe6\x25\x8a\xb9\x23\x4d\x06\x29\xb1\x59\xd8\x0b\x9e\x92\x42\x9d\x0a\xcd\xcf\x5d\xf8\xe8\x62\x29\x2b\x53\xb0\xca\xa2\x51\x85\xc1\x53\x43\xf6\xe7\x27\x3d\x30\x74\x8a\xe3\x11\xbb\x25\xa4\x1e\xc7\xdd\xed\xc5\xaf\xd0\x10\x8c\xd5\x4a\x8d\x0d\x94\xb6\x8b\x58\xd2\x45\x88\xb2\xd1\x40\x35\x6b\xc0\x91\xaa\xed\x12\x9b\xc4\x7f\xd6\xc9\xe5\xce\x49\xe1\x17\x24\xae\x43\xff\x39\x1e\xb1\x0f\x3c\x35\x57\xb0\x30\xf8\x83\x13\x1c\x3d\x1c\x11\x16\x23\x9c\xc9\xb9\x46\xe1\x31\x7e\x85\x95\xa1\x06\x25\x69\x00\xd9\xb8\x14\x1b\x2a\x22\x9c\xc6\x16\x09\xf3\x91\xdb\x51\x8c\x98\xd7\x08\x20\x1c\x02\x00\x34\x94\xc1\xa9\x53\x35\x09\x20\xee\xd7\xad\x45\x55\x81\x97\x52\x79\x97\xe6\x73\x16\x14\xac\x01\x6c\x46\x46\x84\x11\xd9\x0b\xab\x33\xb4\xd6\x46\xab\xdf\x09\xbf\xe4\xb7\x7b\xb3\x67\x34\x0a\x6d\x92\x32\x33\x50\x92\xce\xb7\x96\xd7\x06\x68\x42\xd3\x2c\x85\xe0\x9c\xaa\x36\xbf\x8e\xe6\x34\xc9\x7d\x17\xdf\xf4\xdc\x30\x55\x93\x09\x79\x24\x89\xc6\xb2\x8b\x52\x08\x5c\xd0\x56\xc3\x6f\xd1\xff\xd1\x45\x4f\xd0\x77\x23\xf6\x11\xd8\x70\x92\xac\x00\x69\xc3\xb5\x8c\x65\xa1\x99\x87\xca\x01\x48\x13\x22\x84\xc2\x81\xe8\xbd\x9e\xe3\x47\x32\x62\xb6\x99\xff\x83\x1e\xd0\x1f\xd0\x77\x75\xea\x9d\x8d\x3f\x78\x66\x3b\xc7\x07\xcf\xbb\xef\xdd\x72\x86\x51\x1a\x7e\x63\xcd\x20\x81\x11\xb2\x22\xe3\xc6\x01\x66\x51\xf6\xc8\xa3\x52\x90\x8b\x7f\x6a\x71\x4a\x98\x1c\x33\x1e\x93\x31\xa9\x70\x69\x36\x30\x09\x25\x04\x5c\xf2\x98\xac\x75\x48\x3a\x66\xfa\x33\x98\x6e\x44\x36\x71\xdb\x01\x81\xff\x2e\xca\xdb\x59\x1f\x42\x4a\xab\x1e\xb9\x43\xa5\xd9\x64\xdc\x9b\x3a\x53\xaf\x8c\x7c\xd6\x83\x0b\xc1\x0c\xa0\xda\xa1\x97\x60\x69\x63\xa3\x8b\xc7\xb1\xe8\x08\x50\x2f\xab\x99\x9b\xcb\xca\xc3\xdb\x01\x4c\xd4\x94\xce\xa8\x92\xdf\xdb\x3b\x6c\x81\x13\x6e\xe2\xcd\xd0\xe0\x23\xad\xdc\x19\xf9\x52\xd8\x04\xac\x23\x47\x7f\xb9\x13\x72\xc2\xb3\xa2\x00\x6f\x16\x80\x0a\x3f\x6a\xdb\xc8\xea\x2b\xc5\x87\x67\x3a\x32\x90\xcc\xa9\x8e\xc5\xef\x9f\x5d\x20\x75\x3a\xf8\x42\x27\xac\xc2\xa2\x65\x72\xce\x53\xfa\x8f\xda\x00\xae\x7a\x19\x3d\xf7\xb4\xe6\xf1\x6e\x7a\x9c\xa1\xb4\x0e\xc4\xaa\x45\x0a\x19\x68\x25\x55\x3a\x13\x9a\x64\x80\xcd\xa2\xd8\xec\x34\x4b\x34\xa0\x63\xc4\xd3\x58\x57\x65\x13\x41\x74\x9d\x7a\xcf\x89\xf7\x58\xba\x06\xa9\x81\xb0\x30\x90\x91\xda\x82\xd3\x28\x80\xfe\x25\x23\xd9\x8e\x02\x14\x0d\x0c\xfc\x0b\x45\x7e\x14\xd5\x00\x3c\x13\x79\xb0\xaa\x5e\x1b\xc5\x9b\xf3\xf5\xfd\xbb\x9a\xa9\xf0\x62\x59\xad\x65\xd1\xa5\x86\x6a\x95\x5c\x17\x0c\xe9\x64\xd1\xb9\xd1\x90\x78\x3b\x30\xe9\xbc\x44\x3c\x47\x59\x46\xaa\x60\x3f\x86\xfc\x1e\x5d\x1e\x77\x91\x45\x3c\x93\x9d\xc4\x62\x0b\x16\xa4\x8f\x67\x34\x99\x6c\xc0\xe4\xca\x42\x75\xd3\x7a\x7b\x06\x14\xc7\xd6\x2a\x82\xac\x25\x47\x6a\xee\x4f\x29\x85\xcc\xf1\x55\xfe\xb2\xab\x8d\x63\xaf\x0b\x9f\xc7\x28\x29\x45\x8b\xb5\x10\xd7\x61\x97\x70\x55\xcd\xe3\x3b\x18\x20\x4c\x43\x61\xd7\x65\xbf\x7d\xdd\x89\xd0\x2c\x69\x5f\x8f\x44\x39\x6d\x6c\xed\x61\x70\x08\xa1\xaf\x63\x40\x74\xa2\xcd\x33\x9f\x8c\x4e\x14\xe2\x5d\x64\x9d\x49\xe4\x36\x34\x55\x76\xa6\x0b\xdd\xf7\x18\xfc\xdc\x5b\xbb\x77\x3c\x17\x40\x9e\x46\xa0\xf3\xc7\x6c\xaa\xe8\x0b\x19\x32\x21\x72\x20\xcc\x60\xf3\x02\x07\xea\x52\x15\x9f\x95\x9f\xe5\xd0\x8c\x96\x23\xb5\x1c\x4a\xa3\xbb\xb4\xa5\xf3\x13\x2c\x64\x4d\xec\xf5\xc2\x44\x7d\x86\x6e\x43\x1d\x7a\xc6\xbd\xc8\x09\x5b\x7c\x44\xa6\x18\x12\x08\x20\xec\xfb\x67\xad\xe5\x51\xa1\xad\x30\x16\x82\x71\xb1\x94\x2b\x83\xd8\x0d\xbc\xd9\x60\xf9\xca\x39\x66\x26\x1b\xb9\xca\x45\x59\xe4\xd3\x71\xe0\xa4\xac\xea\x0c\x3a\x32\xaa\x6d\x65\x93\x76\xa1\xfd\xec\x96\x42\x52\x45\x5d\x44\x82\x2e\x7e\x32\xc6\x49\xad\x3d\x65\xc2\x79\x42\x30\xab\x53\x3b\x2b\x1f\x97\xac\xaf\xd4\x4f\xa4\x30\xc0\x24\x32\xcd\x88\xd2\xb9\x71\x92\x14\xe6\x85\xa1\x7e\xa9\x74\x00\xe8\x93\xbc\x4a\x4b\x7b\x87\x69\x82\x27\xa4\x93\x8b\xf4\x42\x7f\xd0\x48\x45\xf0\x4a\x5e\x5f\xb3\x55\x4a\xaa\x1f\xfe\x55\x99\xc0\xbb\x6e\x60\x7e\xda\x6f\xa3\x08\x11\xa6\xce\x6e\x36\x44\x41\xa2\x2c\xa5\x72\x35\x36\x86\xa7\xf6\x4c\xeb\xd6\x7c\x79\x66\x3e\x6c\xa3\xd5\x9d\x22\xdb\x9f\x35\x74\x81\x78\x93\x52\x8d\xee\x6a\xa6\xd0\x66\xbb\x95\xa6\x56\x99\xd8\xd7\xb4\xb0\x36\xb3\xb0\xdd\x50\x55\x17\x9b\x0e\xcf\xa0\x46\x8e\xf9\xd4\xe6\xec\xb5\x5f\xd8\x22\x9c\x66\x07\x8b\x9d\x85\x06\x5a\xa6\x94\xa7\x06\xb5\xb2\x4d\x60\xd5\x02\x7f\x1e\x2f\x71\x8a\x93\x84\x24\x54\x2c\x36\xb7\x2f\xfe\xf1\xfb\xc6\xd1\x9e\x69\x74\x55\x61\xb0\x8a\x3f\xd3\x45\xb6\xf0\xea\x62\x03\xa4\x8b\x07\xcc\x60\x4c\xf6\x26\xbf\xd0\x0e\x30\xbf\x68\x98\xa4\xa9\x07\xb5\xa1\x74\x62\x07\xba\x64\xd4\x65\x1c\xcd\xa1\x5e\xe9\x14\xd3\x94\x11\x21\x8e\xd1\x25\x97\xe4\x14\x7d\xc2\xcb\x3b\x50\xf8\x74\xb9\x83\x99\xb6\xd0\x62\x81\x94\xe4\x94\x31\x2a\x7b\x23\x66\x90\x9a\xec\xaa\x9c\x44\x9c\x69\xb4\x8e\x08\x16\xd6\x35\x01\x26\x47\x0b\x5b\x21\x35\x02\xba\xa2\x92\x6e\x89\xea\x61\x38\x1f\x94\xab\x58\xc0\x25\x2f\x72\x54\x6e\xab\x13\x38\x11\x2b\x20\x45\x40\xd6\x80\x8f\x63\x4e\x84\xa7\xec\x23\x27\xb3\x27\x74\x4a\x14\x85\x8c\x18\x9f\x86\x86\x09\x0d\xd0\x61\xf1\x3a\x54\xa7\x51\xca\x85\x30\x11\x7a\xba\x9d\xe6\x38\xeb\x2d\xb0\x80\x35\xca\x88\xae\xc2\x55\x44\x05\xf6\x9e\x59\x7c\x60\xf3\xb0\xba\x38\x53\x5d\x53\x6b\xd1\x80\xf3\xb5\xe8\x80\x07\x7c\x72\x76\x31\x74\x20\x98\x85\xae\xcb\x80\xc0\x3e\x32\x4b\x3d\x24\x70\x79\xc6\x1e\x38\x70\xa1\x89\x06\x78\xe0\xf5\x9b\x15\xc6\x05\x6d\x93\x7d\x58\xd8\xfa\x75\x9c\xb8\x40\x33\xeb\xc2\xd7\x76\xb4\x4d\x35\xc1\xcc\x11\x1c\xea\xe7\xb6\xc4\x03\x6b\x52\x6f\x09\x89\x17\x4b\x3f\x35\xc3\xe6\x1d\x9b\x69\xea\xa3\x56\x27\xc1\xbd\x28\x1e\x4a\x84\xb5\xd7\xab\x38\xb8\xd2\x56\x74\xb3\x8c\xdd\x19\x98\x95\x5d\x84\x3b\xbd\x5c\xae\x53\xb2\xca\xbd\xfb\xc2\x14\x0d\x72\x65\x50\xab\xed\x03\x13\xe2\x20\x65\x6a\x37\x74\xdb\x64\x06\x2b\xaf\xa0\x94\x60\x61\xdc\x36\x10\xf3\x5f\x88\x07\xee\xa0\xc2\xbb\x31\xeb\xac\xa1\x23\x07\xe2\xe4\x5d\x35\x06\x97\x34\xb2\x07\x91\xa6\x29\x81\x62\xb2\x1a\x18\x73\x58\xb8\x5d\x00\xc3\x34\x25\x38\x5e\x79\x2b\xe2\x1c\x13\xba\x67\x50\x61\x04\x5d\x28\x21\x0b\x30\xa3\x19\x3f\xe2\x4b\x7b\xab\x07\x6f\x01\x02\x17\x9d\xaa\x1b\xcb\x73\x6b\xa8\x2f\xd8\x11\x54\x49\x54\xf7\x70\x45\x4c\x87\x6d\x04\x62\x40\x00\x97\x73\x4e\xcc\x0d\x37\x7a\xd7\x7f\x7f\x75\x73\x37\x38\x1f\xbd\xcb\xa3\xf8\x6c\x98\xba\x95\x38\x1c\x40\x10\x67\x23\xe6\x02\x6f\x1c\x80\x02\xec\x25\xc2\x71\x9c\xc3\xd7\x98\x54\x09\x1d\x37\xd0\xc8\x91\xbd\x53\xb1\x36\xe4\xa6\xa1\x99\x7b\x88\x55\xde\xd7\x93\xd5\x60\x62\x0b\x4e\x8e\x8e\xb8\x6e\x08\x8d\xdd\xd1\x65\xe3\xa7\xc0\x4b\x10\xf2\x95\xb6\x8a\xad\xff\xfb\xc9\x58\xdc\xf4\xed\x7c\x82\xf5\x25\xdc\x8d\xdb\xd9\x0d\xd9\x60\x53\x3f\xd0\xcf\x24\xbe\xa9\x91\xaa\x76\x12\xf9\xda\x2a\x62\xa0\x72\x17\x94\x8c\xdc\x61\x13\xdc\x54\xee\xd5\x77\xed\xd9\x92\x66\x6f\x85\x2c\x75\x48\x51\x97\x08\xa3\x88\xa4\x12\x53\x86\xa6\x70\xb0\x95\x5c\x0e\xf9\xcf\x04\x6c\xdd\xdf\xa3\x05\x65\x90\x61\xd8\xb4\xb4\xf7\xe1\x3c\xba\xd4\xe5\x1a\x5e\xde\x87\x65\x44\x7f\xb8\xba\x0f\x8b\xc2\xf4\x7f\x69\x94\x55\x0b\x2d\x34\x39\x15\xbd\x29\xe6\xd9\x0a\x26\x59\xdf\xad\x4c\xd5\x44\x3f\x12\xf9\x93\x2e\xf2\xbd\x8b\x50\x3e\x23\x67\x81\x81\x95\x8c\x6d\x9d\xf7\xf6\x64\xf0\x53\x45\x65\xf8\x30\x5e\xd3\x4a\x72\xd0\x83\x2b\x0d\xef\x25\x0f\x1e\xeb\xf2\x27\x50\x4b\x1a\xfc\x9a\xd6\x29\xae\xf4\x25\xce\xd4\x72\x8d\xe0\x6d\x24\x4b\xcd\xf1\xa9\xfe\xb8\x55\x90\xd6\x8d\x1f\x9a\xa5\xda\xca\x97\x12\xf5\xaf\x87\x15\x6b\x7d\x51\xb4\x41\x7d\x59\x58\x6d\x89\x33\x87\xed\x1a\xa6\xcd\x8b\xb1\xdf\x0b\x84\x36\x33\xd3\xed\xc0\xd9\xb4\xd7\xe0\x3a\x74\x45\x3c\xeb\x35\xbc\x85\x3c\x1b\xe4\xce\x18\xc5\x60\x37\x89\xfb\xf9\x32\x74\xcc\xdc\xf7\x07\x64\x62\x19\xfd\x6c\xf5\x72\xa0\x4c\xcf\xcf\x5e\xd7\x05\xe8\xac\xdf\x63\x67\x19\xfd\xf9\x6c\xda\xa4\xf4\xff\xa4\x29\xda\x65\x7c\x42\x0e\xab\x45\x1b\xb6\x01\x2e\x26\x01\xcb\x9f\xae\x4f\x6d\xdd\x50\x00\xf2\xf1\x59\xe7\x9f\x41\xcc\xc7\x4b\x6c\x94\x62\x90\xf0\x2d\x1a\x52\x15\x6a\xec\xf1\x88\x79\x1e\x2f\xa1\x65\x72\x75\x46\x2c\xf2\x16\xc0\xb9\x2b\x76\x6a\x22\x4d\xdd\xcd\x1c\xec\x40\x31\xcf\x4b\xce\x43\xec\xac\x52\x3f\xe6\x74\x8a\x39\xb6\xd1\xf4\x56\xbd\x37\xce\x6c\xdf\xf8\x01\xed\x79\xa0\x41\xa6\x63\xf2\x48\x8c\x03\x1c\x7b\x58\xac\x5e\x06\x56\xcc\x89\x60\x5f\x49\x97\xaf\x40\x13\x83\xf7\x85\x5d\x8c\x62\xee\x65\x15\x98\x9a\x96\x9b\x0f\xf8\x0e\x20\x06\xba\x4a\xb5\xde\xb1\x5a\x6b\x43\x19\xe6\x15\xdb\x09\xf2\x9d\x99\xd0\x69\x1d\x1e\xc0\xe7\x25\x89\x36\xc9\x83\xbe\xc6\x29\x5e\x10\x49\xd2\x26\x7f\x66\x58\x29\x01\x7c\x75\x76\x07\x4d\xbf\x7a\x17\x35\x9a\x16\x9b\xd5\xe4\x3c\x5c\xac\xcb\x6b\x76\xb3\xe8\x04\xe1\xa0\xa6\xf1\x93\x81\x0f\xeb\x38\x0b\xd3\x4f\x3e\x0d\xe3\xae\xf5\xd2\xd8\xb7\x9d\xd3\xcb\xe4\xf3\xde\x95\x32\x63\x03\x7f\xe3\x9e\x24\xf2\xae\x1f\x65\x5d\x06\xef\x3a\x5e\xba\x13\xde\x6d\xc3\xf4\x6c\x1e\x48\xe1\x50\x05\x01\x80\x40\x25\x20\xef\xeb\x64\xd6\xea\x2c\x5c\x10\x5a\xaa\x42\x2c\xbc\x60\x66\x83\xd1\x92\x5b\x1b\x8d\x64\x55\x44\x4e\x2c\x2c\xd7\x1a\x1e\xb7\xab\x0c\xc5\x83\x44\xb3\x6b\x89\xa6\x83\x6d\x4f\x53\x27\x49\x0b\xc9\xd2\xa6\xa2\x81\xc9\x72\x0b\x27\x08\x01\xb4\xe6\x8a\x34\xb0\xe8\x70\xf5\x53\xe6\xfe\x15\x72\x70\x4b\xd4\x3e\xa9\x56\x65\x06\x1c\x7b\xfe\x11\x70\x8f\x24\xbe\x34\x60\x1c\x73\x30\x5a\x1d\x47\xa1\x4d\xd0\xc3\x4b\xed\x5d\x81\x0c\x9d\x15\xcf\xd0\x13\x15\x4a\x17\x1e\x31\x08\x34\x70\xa6\x6a\xc9\x4d\x5d\xc6\x1e\xbc\x05\xb9\x7c\x22\x9b\x2c\xa8\x44\xd8\x9b\x61\x60\x2f\xeb\x99\xf3\xac\x3e\x80\x19\x57\x26\x8b\x55\xe5\x99\xaf\x39\x34\x1b\x18\x7f\xf2\x46\xb6\xcd\x07\xf3\x82\xa2\x9e\x37\x23\xcc\xd3\x78\x7c\x0d\xb3\xf2\xcc\x1d\x52\xc2\x50\xb5\xb5\xc1\x20\x5f\x01\x3c\x19\x15\xb2\x70\xb7\x18\xbc\xab\x35\xe9\x60\xf9\x46\xb4\xca\x07\xcb\x5f\xdf\x45\x42\x58\x1d\x14\x69\x53\x82\x80\xfd\xa4\xc6\x38\xeb\x2a\xb5\x73\x1b\x79\xe7\x4b\x4a\xd7\xb5\x92\xd2\xbe\x41\x73\xe4\x11\x85\x9b\xc7\xa7\x75\x51\x07\xf3\x20\x63\x9f\x8a\xbc\x9c\x81\x30\xb1\x99\x14\x39\x3f\xe3\x12\x02\x43\x23\xa8\x4f\x52\x4a\x56\x18\xb1\x6a\x09\xa4\x99\x27\x6e\x1b\xe3\xb9\x53\x08\x0f\xef\xfc\xd9\x59\x18\x8b\xd6\xcf\x2e\xe9\x4b\x2b\xcb\xa6\xd2\x48\x51\xc4\xcc\xfd\x4f\x35\x0a\x08\x08\x1e\x9b\x64\xcd\x54\x9c\xca\x96\x11\x98\x6b\xcf\x85\xb9\x74\x77\xa8\xda\x95\xb8\x73\xeb\x80\x55\x27\x23\x1b\x6e\x6c\x23\xae\xac\x1a\x5f\x70\x23\x6e\x82\xa0\x0e\xc8\x58\x3b\xc3\xf3\x2a\xa6\xd8\xa9\xc6\x7b\xe0\x7a\x34\x43\xc7\x3a\x0c\xc3\xa1\x4c\x16\xb6\x24\x98\xb0\xa9\x4c\xf3\x0c\x93\xee\x8a\x7a\xef\xb9\xc2\x52\x83\xfc\x4b\x7d\xbb\x01\xc0\xdd\x1b\xc8\xa0\x02\x1f\x76\xa2\x5d\xc6\x62\x92\x32\x82\xe5\xfc\xe5\x82\x34\xcf\xb6\x35\x4e\xbf\x58\xc0\xe6\xd9\x4e\x4a\x9e\x14\x82\x20\x3b\xc6\x3f\x76\x08\x26\xcc\x01\xf0\x4b\x8a\x63\x55\xa9\xa9\x3c\x8f\xba\x0b\x95\x6e\x15\xc7\x59\xad\xcc\x3d\x4f\x44\x6b\x85\xd5\xa7\x14\xcb\xaa\x0e\xbb\x5f\x36\x60\xcd\x92\x7c\x11\xa1\xa3\x29\x7e\x1a\x7b\x78\x90\x63\x8d\xb7\xdb\x61\x37\x6f\xf0\x93\x46\x40\x3d\xc7\x12\x9f\xe9\xaf\x9b\x86\x1d\xc0\x4a\x41\xfa\xb9\x03\x34\x5b\x6a\x77\xb0\xe1\x5e\x7c\x3a\x4d\x38\x56\xc2\x0d\x5c\x8e\x5f\xd3\x63\x72\x8c\xde\x27\x7c\x22\x7a\x48\xd7\xe4\xed\x69\xc1\x1e\x9e\x6b\x50\xec\x6f\xf6\x3f\x40\xf6\xb7\x19\x1f\xdb\x64\x48\x71\xb6\x7d\xa8\x99\x17\xe0\x3d\x6b\x09\x64\x8d\x3c\xba\x79\xdc\xaa\xb5\x45\xf8\x4e\x7f\xf3\x8b\xf9\xa1\xa6\x64\xf6\x9a\xd8\x54\xdf\x2e\xc2\x56\x45\xf3\x22\x4e\xe3\xc4\x80\x32\x98\xa8\xbc\x50\x8f\x6d\x32\xb9\x8c\xd8\x0f\xfc\x89\x3c\x92\xb4\x87\xb0\x44\x0b\xae\xd4\x10\xcf\xcf\x0e\x89\xe3\x01\xbe\x9f\xf6\xa7\x62\x74\x89\x17\x24\x1e\x80\x30\xeb\xc5\xee\x18\xc3\x8f\x71\xd9\x54\x61\x0f\x01\x8c\x8e\xde\x06\xeb\x7f\x1d\x31\x1d\x4f\xa3\x63\x38\x80\xeb\x50\x3b\x31\xb8\x12\x7f\xef\x1c\x4a\xbf\x3f\x46\x77\x8a\xd2\xa9\x08\xc7\xeb\x41\x11\xd4\x8d\x6d\xc4\x66\x29\xcf\x96\x4e\x17\xe7\x13\x30\x02\x68\xc7\x52\x85\x43\x09\x06\x63\xbd\x49\x11\x8e\x95\x4c\xdf\x4c\x38\xaf\x12\x6a\xb5\x51\x3e\xaf\x4f\x40\x8a\x3b\xb8\xf8\x11\x13\xcf\xa9\xfd\x40\x5e\x16\x63\x13\x2a\xe1\x33\x39\xa9\xce\x89\x00\xed\xd2\x59\xef\x82\x84\x96\x30\x69\xaa\x72\x9c\x4d\xb6\x15\x67\xff\xb4\x36\xc2\xea\x7c\xac\xbc\x73\x13\x3b\x62\x4b\xba\x02\x01\x3f\x9b\xd5\xa5\x75\x88\x58\x1d\xbf\xb8\xce\xd2\x25\x07\x9e\x9e\xac\x6c\xfe\x98\x81\x3d\x58\xf2\x65\xa6\xe3\x63\xa8\x1f\x2e\x51\x49\xd9\x54\xc8\x4f\x58\x46\x73\xa5\xc0\xe4\xe9\xff\x3b\x8a\x1b\xca\xb9\xf2\xf3\x5a\x62\x2a\x66\x70\xe6\xf7\x5e\x63\x9a\x6c\x61\x99\xd3\xf8\x61\x36\x86\x14\xfe\x95\x24\x68\xa1\xfa\x0b\x2a\x00\x79\xf6\x15\xfb\x89\x79\x02\xb5\x9c\xd7\x50\xd1\xba\xf1\xb7\xa3\xad\x10\x7e\x7e\xe7\x11\x49\x5b\xe4\xb2\x9e\x9b\xec\xf5\xfc\x45\x64\x24\xa4\x4a\x96\x93\xa5\x74\xb3\x50\x77\x03\x19\xf9\xa8\x44\x0e\x67\xb9\x59\xe0\xa5\x12\x47\x24\x57\xb7\x64\x3a\x23\x3d\xf4\xa4\x78\x81\xcc\x52\x75\x8f\x64\x29\xb5\x67\x1f\xcc\x2d\x6d\xa8\x03\x2c\x1d\x27\x3e\xbc\x78\x84\xbd\xca\x0b\xda\x71\x88\x23\x99\x61\x17\xe0\x04\x34\x91\x50\xf6\xa0\x3a\xd3\x28\xa2\xd6\x41\x97\x2a\x5e\xcc\x5d\x1a\x79\xb0\xa7\x6b\x09\x7b\x8b\x5d\xae\xaf\x23\xb6\xee\xa4\x51\x36\xf3\x90\x42\xaa\xad\x4d\x6d\x80\x40\x2b\xbf\x6c\x07\x66\x5a\xf9\xa9\x95\x7d\x36\xf9\xb6\x21\x8b\xbc\xf6\xf3\x75\x02\x6c\x10\xcc\x69\x02\xea\x8c\xf4\xe4\x63\xb8\x18\x4b\x00\x40\x31\xe9\x2a\x75\xd8\x48\x53\xff\xe5\xfe\xd2\xc0\xf1\x7a\x69\xfe\x0b\xf1\x74\xc4\xf4\xef\x3d\x07\xda\xaa\x5e\xc8\xd1\x90\xf0\x82\xe4\x78\x31\x69\x88\x2c\x01\xb9\x8d\x06\x19\x40\x23\x5f\x39\xcc\x4a\x35\x06\xaf\x24\x60\xa9\x46\xdb\x02\x33\x3c\x03\x9c\xad\x1e\x44\xd8\x80\xb8\x9a\xdb\x2e\x34\x49\xeb\xe2\x1f\xc0\xad\x14\xb3\x34\x49\x65\x79\x0d\x23\xe8\x53\x8b\xb2\x06\xe6\x27\x77\xd3\x56\x53\xbf\x2d\xa0\xb7\x99\xc4\x7e\xd7\xbf\xfd\x71\x7c\x33\xb8\xbd\xba\xbf\x39\x0b\xc4\xf6\xb3\x8b\xfb\xdb\xbb\xc1\x4d\xe5\xb3\x3c\x21\xeb\x2f\xf7\x83\xfb\x9a\x47\xb6\x81\x8b\xfe\xfb\xc1\x85\xff\xca\x5f\xee\xfb\x17\xc3\xbb\x5f\xc6\x57\x1f\xc6\xb7\x83\x9b\x9f\x86\x67\x83\xf1\xed\xf5\xe0\x6c\xf8\x61\x78\xd6\x57\x5f\xfa\xef\x5e\x5f\xdc\x7f\x1c\x5e\x8e\x6d\xf8\xa2\xff\xe8\xe7\xab\x9b\x1f\x3f\x5c\x5c\xfd\x3c\xf6\xba\xbc\xba\xfc\x30\xfc\xd8\xa8\x6a\x54\xcf\xb7\xb6\x6a\x91\x77\x55\x79\x0a\xa6\x27\x08\x4d\x56\x86\x78\xe9\x3f\xc0\xcc\x79\xad\x29\xee\xa8\x67\xff\xd2\x85\xc0\x8e\x14\x93\xb3\x16\xf4\x9c\x3f\x8c\x98\x73\x71\xb8\x6b\x53\xe2\x99\xb0\x19\x74\xc1\x68\x4f\x51\x1f\x4e\x03\xa8\x04\x41\xa7\x90\x27\xea\x46\x6a\x9d\x62\x40\x69\x09\x5d\x50\xf0\x8f\xa1\x23\x54\xdc\xd2\xb0\x41\x33\x27\x18\x82\xb1\xf0\xc7\x4d\xf4\x2e\x8a\xc9\x79\x40\x0b\xa7\xc8\xf2\x60\xd5\xac\x1a\x17\x40\x2d\xad\x18\x5e\xd0\x48\xff\x50\x40\x1b\x32\x38\x44\xea\xdc\x14\x5b\x0c\x48\x28\x6c\x79\x4e\xd0\x8f\x7f\xce\x07\x05\xd6\x4e\x63\x3d\xcc\x4a\x05\x24\xcc\x83\x34\xd3\xab\xba\x8e\x00\x83\x9e\xec\x41\x36\x66\x28\x38\x99\xa6\xce\x18\x98\xa6\x33\xe6\x21\x1b\x04\x76\x6a\x53\x60\x13\x1d\xa1\x02\x15\x9f\xa2\x5b\x92\x90\x08\x4a\x5f\x98\xfb\x4a\xed\xe2\x32\xc9\x66\xb4\x54\x66\x70\x42\xe6\xf8\x91\x72\x8b\xd6\xaa\x41\x6d\x61\x1d\x8d\xf0\x84\x8e\x50\xed\x51\x38\x45\xfd\x38\x16\x21\x0b\x0b\x28\xc7\x32\xc5\xa3\x70\xd8\x3e\x18\x01\x8b\x1d\x63\xac\x34\x1c\x54\xdc\x7a\x5b\xe1\x63\x89\x87\xb1\x25\xb1\xf1\x46\xd7\xf0\x1d\x16\x0f\x15\x55\x45\x2b\x6f\x36\x43\x3f\x5b\xf6\x58\x5f\xca\xb4\xb2\x53\xb7\xd6\x63\x38\x00\x9b\xf5\x59\x0b\x4e\xb6\xa6\x4b\x3b\xe3\xa4\x80\x20\xdf\xba\xbf\x00\x81\xfe\xf9\x2d\xb6\xd5\x72\x10\x1c\x95\xb1\xa3\xcb\x0e\xf3\xb8\x86\x4f\xaf\xdc\x97\x8d\xc2\xd2\xd8\x5b\xb7\xae\x76\xdc\x52\x0e\x98\xb1\xe5\xb6\x17\x91\x00\x9b\x93\x46\x60\x4e\xc7\x94\x19\xc4\x66\xe2\xec\xbd\xb6\x46\x99\x3a\x63\xae\x8a\x00\x9e\xf0\xc7\x40\xe5\x5a\x10\x21\x70\x4d\xae\xba\x67\x28\xda\xe6\xd0\xba\xd3\x63\x3e\x6c\xb9\xd7\xf6\xbc\xdc\xa9\xaf\x9a\x4c\x21\x37\xbe\xbe\x68\x27\xaa\xc4\xb8\xd8\xc6\xb1\xa1\x2b\x9d\xcd\xa2\xce\x7e\x2f\x77\x55\xf3\xd4\xf3\xe0\xd7\xd8\x70\xda\x1a\x9b\x8a\x0b\x56\x09\xc4\xed\x9b\xc8\xbb\x7b\xb8\xbd\xd6\x37\x06\x4d\xc3\x29\xcf\x58\x8c\x70\xb8\x3e\x1d\xa8\x2e\xf0\x27\xf8\x45\xca\x74\x3d\x4e\x5d\x01\xd5\x1b\x69\x0f\x61\x9d\x44\x94\x4b\x20\x22\x8b\xe6\x1a\xce\x59\xb1\xf3\xde\x88\x3d\x79\x1b\x12\x84\xd9\xf5\xfd\x96\x00\xec\xe7\xb3\x62\x50\xf4\x31\x08\x5e\x04\x31\x8b\x42\x24\x9d\x47\x08\xda\xe0\x9e\x23\x8c\xaf\x21\x70\x6f\xbf\xb6\x20\xf5\x0d\xca\x49\x54\x54\x3c\xad\x2a\x2a\xe1\xe6\xe6\xd5\x72\xd8\x55\x21\x89\x86\x21\x78\xe5\x24\xaa\x46\xb0\x83\x6a\x12\xaf\x53\x42\x42\xe7\xce\x2d\x26\x26\x3d\x59\x4d\xd7\xae\xf6\x1f\xec\x8c\xfe\xa0\xad\xf1\x59\x4d\x3e\xbb\xd7\x9a\x03\x81\x43\x47\x50\x9f\xdb\xe4\x59\x1a\x47\xa7\x40\x47\x28\xa1\x0f\x04\x7d\x05\x71\x4c\xfd\xeb\xe1\x57\x3d\xf4\x95\x9f\xcb\xf1\xd5\x46\x07\xd0\x8c\xdb\x54\x94\x00\x0d\x24\x08\xe8\x0d\x8f\x1d\xec\x55\xe1\x24\x9a\x3d\x33\x07\x11\xd5\x9d\x43\xf5\x65\xf0\x0d\x65\x92\xa4\x50\x21\x41\xc7\x7d\xba\x70\x42\xe3\x18\xd1\x72\x21\x15\x15\x6b\x17\x8f\xd8\x64\x55\x74\x7d\xf4\x9c\xef\xa3\xf5\x29\xdd\x1a\xf5\x5f\xb5\x57\x4e\xfe\xdb\x71\x98\x5b\xf3\x7d\xb0\x26\x9d\xb0\xef\xaa\xf1\xe6\x5c\x4c\xd4\x9c\x97\x43\x7c\x68\xd5\xac\x02\x2b\x92\x5d\xcc\xca\x4d\x59\x27\xff\xbc\x35\x72\x6b\x11\x54\xd9\xaf\x5a\x11\x13\x4f\x5b\x23\xf8\x1e\xa8\xec\x79\xa9\x6c\x17\xf1\xc4\xe1\xe0\xba\x5f\xa0\x67\x5a\x8e\xf3\x9a\xb1\x66\x48\xa5\x4c\x38\x06\x1f\x94\x86\x58\x5f\x53\xa9\xa3\x27\xd4\x5b\x93\xf5\xae\xd0\x5b\xed\x4e\xd7\xce\xc8\xf2\x58\x8b\x43\xed\x4b\x83\x53\xcd\xa9\xce\x1d\x92\x74\x41\x7a\x08\x6a\xc9\xe7\x21\x00\xe6\xbc\x02\xb9\xc1\x1d\x67\x0a\xbe\xea\x4e\x0c\xbc\x54\xa7\x64\xd3\x8e\xd2\x78\x1d\x8d\x6c\x11\x7f\x71\xd9\xff\x34\x38\x1f\x0f\x2e\xef\x86\x77\xbf\x54\x40\x87\x85\x8f\x2d\x7a\x98\xf7\xc2\xed\x2f\xb7\x77\x83\x4f\xe3\x8f\x83\xcb\xc1\x4d\xff\x6e\x0d\xb2\x58\x53\x67\x75\xa8\x55\x99\xa8\x52\xdf\xba\x20\x57\x59\xd3\x68\x45\xef\x65\x7c\x31\xaf\x13\x4a\x6a\x30\xc6\x74\x62\x2d\x8b\x49\x8a\x62\xf2\x48\x12\xbe\xcc\x4d\x91\x95\x0b\xe6\x81\x8f\x55\xb4\xdf\x04\x40\x06\x6d\x16\xd7\xf8\x14\xe9\x72\x00\x5e\x45\x24\xd7\x20\x88\x7c\x38\x25\xec\x2b\x89\xc8\xe7\x65\x42\x23\x2a\xbd\xc4\x1b\x9e\x1a\xa7\x83\x76\xaa\x41\xf4\xd7\x1a\xe2\xda\x59\x8c\xc6\xce\x75\x7e\xdf\xbf\x5c\xd6\xf6\xdd\x89\x72\x60\x38\x6b\x31\xa6\x77\xa0\xd8\xd7\xb8\x52\x4b\x58\x3d\x1b\x8c\xee\x39\xcc\x03\xe5\x08\x78\x93\x3c\x53\x83\xe3\x53\x3d\xc8\xf5\xb7\x61\x53\xf4\x48\x70\xae\x9b\xc3\x47\xda\x51\xea\x2b\x07\x81\x04\xb5\x57\x76\x56\x3a\x7f\xdc\xd1\x8d\x5f\x82\x73\x66\x0f\x1a\xe4\x16\xa5\x64\xc1\xa5\x52\xc0\xb4\x9f\xbc\xa7\x84\x2a\x8a\x13\xfa\x0f\x40\x80\x49\xc9\xb1\x17\x57\x00\x09\x36\xb1\x1f\x50\x6d\xb2\xb3\xab\x4b\x87\x07\x53\xdf\x83\x32\xfa\x79\x25\xd5\x52\x01\x7d\x6b\x00\xb8\xac\x2d\x9c\xf5\xaa\x35\xda\xc3\x55\x7f\xc6\xd5\xee\x58\xb6\x3c\xe8\x73\x7d\xc9\xf2\x3b\x5b\xfb\xb6\xb2\x5e\x79\x79\x9e\xb5\xa2\xe2\x0b\x54\x2d\x2f\x27\xc2\x17\x48\xff\x75\x2b\x96\x17\x06\xb3\x3f\x65\xcb\xd7\xae\xdb\xfe\x22\x1d\x54\x0c\xb4\x45\xb9\x72\xe7\xeb\x81\xea\x5c\xdd\xae\x65\x1b\xaa\x16\x38\x7c\xd4\xa1\x72\xf7\x73\xb5\x96\x8d\xc5\xc3\xd6\xdd\xdd\x61\xf1\x50\xd3\xd5\xba\x1b\xfc\x2c\x70\x28\x15\x96\xcd\xd6\xba\xd6\x50\x62\xa0\x45\xaf\xbd\x17\x07\x8f\x84\xc9\x9d\x08\x95\xd0\x44\x45\x26\x63\x3b\xd3\xb0\x2e\xdd\x31\x3c\xcf\x39\x92\x2b\x21\xe9\x85\x6f\xc8\x14\x03\x73\x26\xf2\x89\x10\x66\xdd\xf9\x75\x9e\x53\x35\xb5\x76\xdb\x03\xaf\x96\xd7\x65\x4d\x94\xaf\x59\xed\xbc\x84\x57\x1e\xa1\x67\xa1\x78\x37\xc4\x36\x10\x44\xab\x9e\x7e\x45\x7a\xad\x51\x14\xf7\x5c\xf7\x39\xc7\xa2\xd8\xe5\xda\x2d\xdf\x20\x91\x3f\x68\xe6\x23\x81\x3c\x97\x9d\x94\xd5\xed\x90\xcf\x08\x03\xb9\x4f\x13\x88\x06\x6d\x34\x3d\xe8\xf2\x61\x59\x9a\xe4\xd7\x31\x6e\x21\x58\xe9\xc1\xa8\x9b\x9e\x2c\x53\x02\x05\x2d\x4f\xd1\x75\x42\xd4\x75\x99\xa9\x2b\x33\x4b\x12\x0b\x7a\xd2\x7c\xa5\x77\x02\xea\x79\xf6\x79\x79\x02\x63\xc3\xc4\x2c\xe8\x4f\xf3\xcc\xbc\x35\xd8\x7d\x16\xaa\xb7\xbe\x60\xf7\x03\xeb\x4f\x28\xfa\x83\xee\xb6\xd2\x21\x80\xa0\xff\x63\x5f\x47\x11\xf4\x1f\xea\xaa\x4e\x89\x98\xf3\xa4\x71\x0a\x9d\xa1\x94\xba\xcc\xc1\x2e\xe5\x33\x4e\xc2\x44\x67\x8d\xeb\x42\x44\x5b\x5c\x46\xe7\xba\x89\xca\x2b\xb0\x69\x8a\x0e\xad\xd9\xb9\xec\x0d\x04\x9d\x09\x77\x32\x43\x03\x47\x54\x6e\x1f\xf1\xe1\x60\x72\x7b\x73\x2e\x81\xae\xb4\xc3\xcc\x7d\xee\x15\x26\x75\xd1\xcd\x54\x0a\x24\x64\x9a\x45\x00\x96\x38\x27\x69\x27\x80\x46\x17\x03\x9f\x37\xa1\x06\x5c\xcd\xda\x0c\x50\x33\xc8\x29\x26\x96\x43\x04\x40\x36\x66\x8b\xf5\x94\x2b\x65\xe8\x7a\x06\xba\xad\xdf\x22\xac\x49\xfa\x6c\xee\x8b\x80\x5a\x82\x09\x1c\xa0\x51\xba\x43\xa3\x18\xd4\x6e\x47\x7b\x00\x64\x24\x53\xc8\x5c\xcc\x3d\x14\xc5\x4b\xde\x58\x15\xd7\x25\x5c\x04\xbb\xd3\x2a\xbb\x22\xf8\x42\x9d\xfb\xf3\x2d\x5d\x1c\x6a\x32\xab\x31\xe4\xab\x6d\x13\xe6\x10\xcc\x5f\x9b\x67\xa1\x4d\x12\x23\x9d\x7e\xa9\x81\x1b\xcd\xda\x39\xd3\xb4\xae\xd6\x3b\x62\x37\x6a\x14\xfa\x8b\xdc\xd5\x9d\x57\xc2\x24\x79\xcd\x9e\x29\xc2\xe6\x2b\x58\xf4\xba\x48\x23\x31\xf6\x0a\x01\xd7\x4d\x6c\x07\x05\xa7\xde\xeb\x77\xd0\x34\xc1\x33\x0b\x5a\x00\x45\xa6\xa7\xb9\x9e\xa4\x84\x3d\x5d\xb5\x59\x27\xd0\xea\xcb\x83\x4a\x93\x14\xeb\x44\xe5\x8c\x58\xf8\x48\xf8\xcc\xf1\xaf\x2a\xe6\x6a\x35\x31\x66\x2d\x20\x62\xc4\xbc\x3e\x1a\xd0\xc6\xb4\x36\xb4\xa1\xd8\x0f\xfb\x4c\x63\xe7\x59\x80\x7f\xea\x1d\x2a\x55\xf5\x35\xd3\x5b\xe0\x25\xd8\xcf\xf4\x19\xe4\x53\x77\xff\xdc\x99\xd0\xe7\x63\x18\xf1\xff\xfc\xf7\x5f\x8f\x69\xa3\x6d\xd4\x3b\x94\xb9\x8f\x30\x77\x04\x79\x71\x78\x5e\xad\x62\x0c\x17\x05\x2a\xb0\xc0\xc2\x91\xf2\xf0\x73\xb6\x89\x57\x9a\x63\xf1\x7c\x4e\xe9\x4a\xac\x7b\x6d\x47\xf2\xb9\xfa\x3a\xf7\xb4\x1e\xa4\xce\xfe\x51\x24\x94\x09\x92\x6a\x12\x74\x40\x0b\x15\xe5\xdf\x20\x3a\x69\x8d\x95\x9d\x2c\x30\xed\x14\xe5\xaa\xde\xaf\xc6\x2e\x0a\xcc\x6c\x78\x46\xd2\x71\x9c\x05\x61\x93\xeb\xda\xbe\x56\x1f\x9d\x67\x72\xb5\xbe\x7d\x91\xe0\xe8\xa1\x0b\x5e\x94\x7a\xbf\xa6\xd9\xf5\xa2\x8c\xe7\xdc\x0e\xc5\x99\x1a\x34\x26\x52\x40\x63\x32\xd1\x56\x81\x9e\x09\xac\x91\x41\xfd\x3e\x4f\x1c\x35\xbc\x53\x63\x46\xc2\xc8\xa1\xa2\xb3\x65\x36\x0e\x85\x37\x3e\x1e\xb1\x0f\x1a\xc6\x1a\x44\x65\x3d\x80\x08\x2a\xe8\x91\xcf\x4b\x2e\x48\x90\xaf\x50\x81\xac\x6b\x32\x8a\xcc\x30\xaa\xa5\xa8\x42\xfd\xc4\xad\x84\xa8\x57\xc7\xd5\x2a\x6f\x78\x79\xca\xd5\x14\xb8\xd5\x3d\x1d\xd1\x25\x55\xb4\x33\xae\x3c\x69\xcf\x57\xd9\x3a\x8f\x66\x00\x84\x05\x99\xac\x7a\xc8\x4d\xaf\x40\x10\x09\x79\x24\x29\x9e\x29\x19\x0b\xd3\xc4\xc7\x4f\x0e\x8d\x23\x35\xec\x64\xdd\x01\xca\x93\x85\x80\x2d\xa0\xb8\x38\x82\x30\xa5\xa2\x8a\x16\xc3\xa0\xf4\xad\xf3\x27\xaa\x5c\xb2\x1d\xe4\xa6\xbe\x8f\x23\xbd\x22\x12\x91\xcf\x92\x98\x32\x48\x77\x36\xf3\xa4\x1c\x78\x8b\xaa\x83\xf4\xeb\x2f\xf5\x67\xaf\x77\xde\xb7\x19\x85\x36\xb5\x26\x16\xe6\x86\x31\xd5\x38\xe7\x98\xc5\x26\x7f\xca\x48\x7f\x54\x98\xd9\x69\xcb\x85\x8b\x92\x35\x59\x40\x1e\x00\xa7\x6e\x53\x23\x85\xc2\x45\x66\x25\x79\x25\x4b\x82\x63\x91\xa7\x4a\xa4\xca\x98\xa4\x89\x22\x0e\x33\x06\xa5\xe7\x65\xcc\x41\xe0\x40\x4c\x67\x1d\xca\x0a\x15\x82\xb2\xd9\xd8\xac\xa4\x4d\x05\x6a\x77\x31\x84\x34\xf5\x49\x37\xa5\x7f\x7c\x6f\x1b\x6a\xb6\x4c\x6a\xb2\x56\xd3\x77\x49\x48\x20\x0a\x32\x6e\x27\x63\xa0\x4b\x6c\xee\xd2\x98\xc6\x41\x89\x58\x98\x68\x17\xb5\x1a\x64\xb3\x72\x5e\x6f\x7e\x85\x08\x24\x20\x75\x4a\xa7\x3e\x40\x8c\xaa\xac\xc9\x9c\x12\xb5\x19\x53\x43\xe6\x44\x34\x53\x4e\xc1\x65\x7e\x16\x92\xaf\xb0\xed\xce\x04\xe2\xe2\x24\x99\xe0\xe8\xc1\x89\xc7\x4e\x49\xe4\xa9\x85\xa3\x55\x62\x23\xd4\xdb\xd0\xc4\xa5\x06\x1a\x81\x74\xa3\x13\x9b\x35\x31\x69\x64\x07\x33\xec\xbc\x73\x53\x58\x97\xe9\x52\xaf\xa0\x4e\xea\xd1\xeb\xa8\xde\x98\x2c\x13\xbe\x5a\xd4\xdc\x67\xc5\xc4\x96\x6d\x7c\xd4\x75\x79\x35\x3b\xbd\xca\x0a\x4c\xaf\xf3\x65\x56\x8a\xc4\xdf\x01\xce\x48\x07\x2e\xf9\x31\xe1\x13\xb0\x4b\x19\xbd\xd0\x46\x97\x7b\x41\xce\xc5\xf3\xdc\x35\xe6\xbd\x78\x22\xa9\x58\x26\x78\xd5\xd4\x83\x8e\xb6\x7e\xde\x7d\xd3\x19\xad\xeb\xcd\x36\xed\xe3\x14\x2b\x3f\x7f\x96\x02\xc6\x56\x12\x30\x95\x8c\x81\x7f\x19\xf3\x07\xb1\xf6\x0f\x9d\xe7\x72\xbc\x4c\xb9\x92\x14\xf8\x88\x49\x3c\xb3\xbb\x6b\xa4\x4b\xfe\xc4\x48\x2a\xe6\x74\x19\x14\xe2\xd9\x3a\x32\xd2\x90\xb4\xf9\x1f\x1d\x07\xd8\x81\x79\xf2\xe5\x91\x4e\x59\x57\x04\x22\x96\x38\xca\xed\x55\x51\x82\x85\xa0\xd3\x95\x97\x69\xee\x82\xcc\x20\x73\xc1\x15\xa1\x08\x8b\xb9\x54\xba\xfe\x82\xcc\xe6\xdd\xa4\x7d\x6e\x9f\x56\x73\x1f\x9e\x42\x1a\xfb\xc0\x3e\x50\x80\xbb\x04\x2e\xd0\xb2\x46\xf8\xb6\xd9\x36\x66\x64\x26\xe7\x64\x77\x03\xb3\x19\xe3\x9b\xe5\x8f\x36\x82\x55\xd4\x9b\x39\x72\x61\xd7\x0c\xdb\x28\x5a\x2e\x7d\xdd\x9f\x06\xcc\x31\x36\x5f\xb8\xfc\x92\x20\x1b\x19\x07\x18\x0d\x7a\x8d\x94\xf2\x67\x8d\x8e\xea\x7c\xb9\xf4\x78\x48\x59\xce\x3b\xe8\x21\xb1\x15\x70\x4c\x7b\xd2\x3e\x27\x09\xd9\x49\xd4\xe4\x06\x74\x5e\xf4\x6e\x7b\x14\xde\x48\x44\x39\x10\xef\x7a\x33\x49\x77\x1a\x2f\x8e\x2a\xa7\xee\x9d\x0d\x6a\x83\x08\xd3\x1a\x64\x8c\xea\x91\xff\xac\x07\x6a\x82\x4c\xab\x08\x4c\x71\xce\x18\xb6\xbe\xad\x6a\x58\x05\xb1\xa5\x5b\x30\x27\x26\xef\xc6\xee\xa3\xc5\x30\x71\xc2\xae\x95\xbe\xf6\xf7\x18\xbc\x72\x48\x66\xcd\xe8\x3e\x92\x36\xf1\x08\x6b\x8f\xe8\x46\xdc\xb4\xee\x4a\x6c\x47\x2a\xc6\x97\x28\x39\x9a\x11\xa9\x8b\xcc\xba\x4a\xba\x6f\x90\x4c\x76\x16\x63\xbe\xd3\xad\xa8\x66\x02\xdd\x4e\xf5\x2d\x91\xc2\xde\x78\x25\x54\x33\xb3\x53\x47\x36\x5d\x36\x4f\x3e\xdd\xdf\x2d\xda\x8f\x93\x7c\x63\xac\x2a\xcf\x77\xc1\xae\xa7\x97\x9d\xd0\x07\xa0\xad\x60\x08\xb0\xcf\x0c\x40\x2b\x1c\x5e\xcf\x67\x58\x52\xe5\xd7\x78\x63\xcd\xf0\x5a\xf9\x61\x4b\xcb\xf9\x1c\xdb\x6b\xa2\x29\x5b\x6f\xee\x73\x92\x5a\xd7\xb1\xec\x42\x47\x79\x66\xa3\x88\xa1\xc6\xb5\xda\xf5\x21\x28\x02\xa1\x3a\xff\x6b\xee\x58\x34\x5b\xb6\xcb\x43\x56\x85\xcf\xbd\x7d\x3e\x48\xc2\xb5\x77\x60\xbc\x4c\xc9\x94\x7e\xde\x48\x14\xbf\x86\x4f\x8d\x7a\xa9\x96\xb9\x80\xf8\x0d\xd6\x0e\x40\x08\xcf\xb5\x7d\xbb\xd2\x4f\x29\x95\x92\xb0\x11\x03\x78\x63\xf1\xc7\xd3\x93\x93\x49\x16\x3d\x10\x79\xf2\x40\x56\x88\xa7\xc1\x4f\x9b\xa2\x89\xec\x1e\x9d\x5c\xef\xeb\x5c\xca\xa5\x38\x3d\x39\x99\x51\x39\xcf\x26\xc7\x11\x5f\xe8\x78\x23\x9e\xce\xf4\x1f\x27\x54\x88\x8c\x88\x93\xef\xbf\xfb\x2e\xdf\xe2\x09\x8e\x1e\x66\x3a\x3f\xb3\x6c\xc5\x09\xb6\xfc\xb6\x5c\xc1\xa7\x3b\xe2\x6b\xca\xd9\x98\x7c\x56\x44\x5a\x55\x23\xba\x2d\xf4\x85\x40\xfd\x9f\x6f\x91\x58\x31\x89\x3f\x9f\xa2\x4f\xba\xa0\x37\xfa\x81\x67\xa9\x40\xe7\x78\x75\xc4\xa7\x47\x0b\xce\xe4\x1c\x7d\x82\xff\x9a\x9f\x9e\x08\x79\x40\xbf\x10\x9c\x9a\xfd\xd5\x02\x8b\x03\x8d\x06\x2f\x44\x9a\x31\x61\x2a\x85\x7f\xf7\x1f\xb6\x54\xf8\x29\xfa\xf6\xe4\xbb\xff\x40\xbf\x87\xff\xff\xff\xa3\xdf\xd7\x68\x6a\xdd\x72\x7f\xf3\x32\xee\x95\xad\xc1\x4a\x6d\x50\x34\xe9\x2c\xe5\xf9\x4e\x55\xb6\xfc\x40\xa3\x07\x3e\x9d\x8e\x25\x5d\x10\x1d\x1c\x3a\xc6\x69\x09\xd3\x69\x43\x20\x15\x6a\x4a\xbc\xe8\x2a\x99\x39\xc4\xaa\xe9\x54\xa7\x7e\xd8\xe3\x26\xb2\xbc\xc4\x05\xf8\x54\x82\xb2\x21\x54\xc0\x57\x24\x56\xa7\xa2\x8b\xff\xc4\x5a\x67\xca\x85\xe8\xf2\x54\x29\xbf\x6c\x91\xf3\x83\xfa\x4e\x7d\xbe\xae\x84\x7a\x39\xda\xe0\x8b\x71\x21\xc3\xd4\x5e\xcb\x7d\x2c\x4a\x9d\xaf\xf7\x1c\xdf\xf2\x74\x2b\x79\xf9\x81\x94\x42\x58\x5a\xc2\x09\xdb\x62\x19\x7e\x01\x2d\xc8\x3a\xe0\xa9\x03\x34\xd2\x7a\xad\x29\x3a\xb0\xde\x0a\x45\x53\xed\x6b\x6b\x77\xe8\xd5\xd4\xcf\xdd\x27\xeb\x86\x09\x8e\x37\xfb\x76\x0e\xa7\x0e\xa3\x55\x57\x9c\x62\x89\x15\x23\xae\x40\x3d\x58\xb7\xa1\xb7\x7a\xcf\x88\xd0\x8d\x83\x17\x18\xa2\xef\x98\x95\x4c\x4c\x52\x4a\xe5\x7e\x42\x2e\xf8\x2e\x60\x22\x4a\x90\x7f\x5b\xf0\x39\x6d\x2a\xcb\x59\x84\x85\xdd\x04\x91\xcd\x2b\xcf\x83\x15\xf7\xd8\x10\x59\x43\x83\xee\xf6\x50\x8a\xc1\x91\x2a\xe7\x98\x69\x25\x6a\x8a\x23\xca\x66\x3d\x0f\x54\x01\x72\x65\x7c\x9e\x55\xb5\x92\x77\x58\x3c\xec\xd6\x39\xb8\x75\x11\x02\x1a\xe7\x40\xd8\x9a\x22\x8d\xef\x90\x96\x32\xca\x25\x16\x0f\x3b\x2b\xd2\xae\x96\xa2\x4d\x79\x76\x1b\x7b\x4f\x7c\xa1\x0d\x10\x06\x95\x72\xe5\xa1\x50\xd9\xf0\x49\x5d\x00\x95\x26\x24\x2e\x62\x71\x14\xc7\xbf\x8e\x10\xb4\x5a\xec\x79\xa1\x00\xaa\x61\xa1\x14\xbf\x58\x9b\x67\xd9\x4a\x1f\x25\x75\x73\x61\xf1\x20\x5c\x25\x0c\x24\x16\x38\x49\x7a\x28\x25\x99\x50\x57\x6f\x0f\x09\x92\x4c\x8f\x2c\x6a\x62\x8c\x12\x3e\xa3\x11\x4e\xd0\x24\xe1\xd1\x83\x18\x31\x75\x95\xb0\x99\xbe\x01\x97\x29\x8f\x88\x10\xde\xdd\x9b\xc7\xe5\x9b\x20\x56\x28\x83\x21\x49\xba\xa0\x8c\x0a\x49\xa3\x42\x65\xeb\xe3\x11\xd3\x65\x5d\x94\x36\x14\x71\x5d\xbc\x03\x86\xab\x64\x01\xa2\x71\x1c\x32\x66\x30\x69\x81\xa1\x9b\xf4\x6c\x1b\x55\x51\x47\xbd\x3b\xc8\x36\xb7\xdb\x33\x96\xe1\x69\x58\x43\xcf\x67\xe6\x33\x38\x43\x4d\x14\x73\x13\x92\xb3\xa3\x06\x47\xe6\x0e\xc4\xcc\x12\x45\x1e\x33\x12\xdc\x6d\x2e\x94\x62\xcf\x92\x5f\x61\xc8\x35\x29\xaf\xeb\x68\xfa\x4c\x97\xca\x36\x30\xc8\x45\xbf\x98\x2d\x81\x6d\xa0\xee\xd5\x25\xf1\xa8\x88\xc4\x2e\x8f\x5a\x7b\x75\x95\xf4\x5c\xfd\x6a\x2c\x4c\xc8\xc8\x91\xc3\xd8\x53\xfc\x50\xe3\x20\x42\x27\x85\x62\xc8\x65\x8a\xda\xa7\x9a\xd5\xee\x92\xee\xca\x16\xd7\x0a\x12\x1d\xeb\x57\xdb\x95\xae\xc5\x23\x09\xc6\x16\x92\x2d\x24\x9a\xd6\x0f\xaa\xa5\xbd\x22\xad\xca\xe8\xd0\x14\x07\x4f\x1f\x69\x5e\x8d\xc8\xf4\xd6\x68\xcf\x50\x33\x6a\x65\xcc\xf0\x89\x62\x63\x03\x5d\x61\x2a\xa5\xcc\x28\xaa\x0b\x75\x99\x3a\xff\x4a\xaa\xcd\xa2\x88\x90\xb8\x32\xb8\x40\x8d\x68\xef\xf0\x36\xae\xb1\x9c\xeb\x24\x9b\x05\x97\xba\x18\x86\xc6\xdb\xb0\x86\x16\x0d\xd0\x30\x49\xf8\x04\x2e\x24\x80\xe2\xb0\xe9\x16\x5e\xb8\xb4\x9e\x37\x89\xd1\xd7\xde\xfd\xe2\x12\xc0\xbe\xa9\x06\x86\x08\x56\x64\x0f\x60\x38\x8a\x16\x9e\x5a\x30\x8e\x10\xed\xfd\x18\x5d\x17\xb2\x16\xbd\x95\x99\x62\x75\x6d\x34\x66\xc0\xbe\x12\x74\x47\x61\x12\xcf\xb7\x43\x1d\xa1\x3b\x82\x3e\x77\x00\xdd\x51\x98\x67\x4d\x4c\x16\x9f\x3d\x6b\x2e\x89\x9a\xd4\x05\x6f\x1f\xe0\xab\xb3\xe7\xb5\x88\x17\x90\xa0\x3d\x90\xab\x2a\x42\xdc\x2f\x58\x92\x42\x4d\x84\xd7\x85\x25\x29\x0c\x66\x9f\x61\x49\x0a\x43\xdd\x5f\x58\x92\x8a\x81\xb6\x80\x25\xd1\x5e\xe6\xb1\x22\xea\x76\x4c\x01\xe2\x15\x27\xd9\xf4\x16\xee\xdd\xc6\x31\x9a\xc2\xbb\xfa\x1a\xb3\xa2\xa4\x41\xe9\x82\xd1\x9a\xd8\xf6\xba\xb8\x1c\x2c\xb6\xa2\x3d\xe7\x06\xa2\x42\x6b\xf1\xcb\x04\xb3\xf0\xea\x80\xc2\x86\x29\x89\x14\xf9\x69\x46\x95\x57\x7c\xef\x19\xeb\x92\x1a\x85\x36\xa8\x46\x78\x69\x72\x85\xea\xc0\x73\xf7\x27\x2b\xa2\x1b\xe2\x0b\x00\x73\x04\xac\xbe\x55\x5a\xfd\xa7\x02\xfe\xe4\x9c\x3f\x19\xc9\x11\xc8\xcf\xd4\xaa\xee\xa8\xcc\xf8\x98\x31\x05\x9a\x6e\x89\x19\x13\x4c\xe4\x80\x19\x53\xbd\xc1\x7b\x8b\x19\x53\xd8\xf3\x76\x98\x31\x55\x5b\xbe\x01\x66\x4c\xd0\xcc\x17\x83\x19\x53\x58\xd1\x2f\x06\x33\xa6\x30\xaf\x03\x66\xcc\x17\x82\x19\xb3\x9e\x8f\x54\xa2\xa2\x54\x1f\xde\x6e\xa8\x28\x95\x22\x7c\x3d\x8b\xd8\x36\xa1\x17\x04\x86\x17\x46\x45\x09\x26\x70\x08\x00\xea\x1e\x00\x54\x49\x7c\xa6\x6f\xa8\x03\x6e\xa2\x82\x8a\x17\x59\x4b\x5c\x94\x60\x7f\x5a\x5b\xd7\x76\x41\x89\xcf\x1b\x72\x06\x46\xfe\xb6\x1a\x77\x3f\x58\x45\x61\xd0\x94\x94\x64\x64\xd1\x01\xb4\x70\xee\x3b\x38\x0f\x94\xbb\x41\xe8\x5a\x61\x79\x9d\x5b\x40\xd3\xe2\x2e\xed\xbf\x15\x65\xeb\xb6\xa0\x57\x9b\xdd\xd3\xd1\xfe\x6e\x07\x01\x76\xf8\x6a\xdb\x13\x54\xb2\xdc\x4d\xb3\xeb\x2e\x32\x97\xfb\x1c\x14\xd6\x74\x89\x4b\x79\x61\x4d\x2d\x1b\x17\xf2\xb5\x94\xfa\x6f\xbe\x9c\x51\x21\xd3\xda\xe0\x8d\xd2\x08\xb7\xf1\xf4\x2d\xb3\x4d\xb2\x2c\x67\x9b\x7d\xb6\x20\x0b\x9e\xae\x8b\x1c\xa9\xfc\x52\x48\x9e\xe2\xd9\x3a\x45\xbc\x5a\xad\x5a\xce\xc9\x42\x09\x41\xe3\xae\x8d\xb4\xdd\x6f\x97\xd5\x66\x92\x2b\x2a\xaa\xab\x7a\x7e\x3c\xf5\x6e\x6c\x2a\xa6\xb6\xdd\xee\x6d\xb7\xd9\x96\x66\xed\x66\x28\xb6\xa8\x46\xcd\x96\x2b\xf3\x52\xe0\xad\x05\xfa\xae\x8c\x07\x70\xe1\x18\x1b\x7a\xfc\x6b\x70\x67\xca\x1d\x82\x43\x50\x90\xf4\xc8\x97\x51\x03\x27\x5c\x79\x04\xc1\xba\x5b\xdd\x66\x8b\x65\xcf\xd2\xda\xc0\xb4\x36\xa6\x23\x5d\xee\x5c\x29\x4e\x3e\xf2\x7d\x91\xbe\x27\xab\x8a\x4c\x97\x76\xb6\x49\xca\xe4\x9f\xfe\xbd\x8b\xa7\x1e\x84\x7c\xb3\x6e\x53\x9a\x10\x84\xa3\x88\x08\x6d\xcd\x32\x81\x8b\xba\x92\x64\x96\x26\xdb\xec\xaa\x3a\x1c\x6a\xde\x8a\x65\x3a\x30\xa7\x38\x27\x1e\x7d\x01\xcf\x53\x9e\xcd\xe6\xd6\x9a\xa1\xa8\x50\x4d\xad\x6a\x2f\x7f\xd2\x61\x26\xdb\xec\xe5\xfb\x8c\x26\x9b\xd9\x8a\xf2\xc8\x2e\x35\xcc\x8f\xc3\x3b\x24\xe6\x8e\xfe\x27\xd0\x6c\xe5\xc6\x96\x07\xdd\xbe\x4f\xf3\xad\xb3\x8c\x42\x37\x3d\x0b\x60\x32\xe5\x49\x02\xb6\x3d\x41\x16\x8f\x75\x95\x28\x61\xc2\x77\x74\xc3\x7a\x7b\xf0\x35\x78\x08\x84\xc4\x8b\x65\x2b\x89\xe6\x5a\x0b\x5b\x02\xd9\xd1\x17\xdd\x83\x3a\x70\x88\x33\xc2\xaa\xac\x3d\x3f\x97\x81\x48\xdf\x58\xf8\x96\x0d\x27\xda\x59\x08\x97\x5d\x92\x17\x0e\xe3\xaa\x9a\x47\x07\x16\x10\x44\x35\xe7\x3c\xde\xfa\xc7\xb5\x1c\xdf\x57\xf3\x1b\xb1\x7e\x10\xff\x6c\x4b\xdc\x4c\x56\x79\x00\xa5\x16\x89\x7d\x4e\x02\xf8\x8d\xc6\x4e\x20\xb9\xb1\x1e\x80\xe0\xae\xb1\x77\x74\x80\x97\x0d\xe2\x82\xe8\x4f\x12\x1f\xe1\x68\x15\x25\x34\xf2\x54\xc0\x59\x8a\x97\xf3\x2a\x76\x53\x2e\xd9\x7e\x40\x39\x68\x1c\xd9\xce\x51\x0e\xea\x40\x89\xbb\x44\xaf\x5a\xba\x82\x6a\x9f\x07\xf4\x85\x0a\xf4\x85\x9e\xcb\x2f\x66\x39\xbc\xf2\x2b\xa6\xad\x96\xcf\xdd\x01\x82\xe1\x15\x20\x18\x36\x39\x7c\x39\xbe\x42\x70\xec\x0e\xb0\x10\xef\x5a\xc1\x42\xb8\x4b\x70\xaf\x32\xfd\xeb\xcf\xe3\x2b\x67\x90\x97\x07\xf6\x9a\x30\x10\x15\xe2\x42\x17\xb9\xa9\x09\x07\xa2\x89\x2e\x5a\xad\xcb\xeb\xa2\x32\x74\x5b\x99\x4e\x80\x0b\x95\x77\xd7\x9e\xc0\x2f\xd4\x6f\xc3\x9e\x9c\x9b\x5d\xe6\x18\x74\xab\x1f\xe1\xe7\x19\x74\xd1\x6e\xba\xa5\x1c\x38\x7a\x78\x5b\x69\x07\x39\xa6\xfa\x66\xa9\x07\x7d\xeb\x52\x25\x29\x9a\xf3\x04\x80\xee\x83\xd5\x72\x1d\xb8\x80\x57\xb7\x40\x76\x33\x6e\x97\x24\xd2\xda\x56\xb9\xb0\x6d\x23\x49\xbd\xf5\x24\x03\x4f\xfe\xdd\x6d\xa2\x81\xbf\xb2\x9b\x26\x1b\xac\x19\x5c\x93\xe8\xb1\x61\xc2\x81\xd7\x63\xa3\xd3\xc9\xce\xae\x95\xe3\xa9\x48\x2c\x1b\xc4\x04\x95\x80\xe7\xb7\x07\x63\x58\xe0\xcf\xe3\x25\x4e\x71\x92\x90\x84\x8a\x45\xdd\x99\xa7\x4c\x92\x59\x91\xd2\x02\x63\xec\x1f\xbf\x6f\x0e\xc0\x0c\xbd\x8f\xb6\xe6\x31\xf8\x1f\xb3\xc5\x44\x93\xa2\x1d\x88\x29\xd0\x20\x39\x4a\x33\xe6\x43\xc9\xb8\x8d\x41\x80\x9b\xab\x8b\x28\x4f\x33\x88\xce\xc1\xd1\x1c\xaa\x81\x4c\x31\x4d\x19\x11\xa2\x63\x21\x6b\x11\xea\x89\xfa\x06\xa6\xff\x08\x24\xd4\xa3\x20\x4e\x38\xf2\x32\xa6\x21\x7c\xc3\x62\xc8\x36\xb1\x8a\x43\x30\x60\x39\x18\xb0\x7a\x6d\xf6\x31\x20\x30\xaf\xa5\xde\x31\x28\xb0\x6e\xfb\x77\xc1\x04\x76\x18\x1c\xf8\xca\x51\x74\xcf\x13\x40\xf7\xba\x11\x8f\xcf\x11\xec\x78\x08\x09\x7c\x7b\x21\x81\xf5\xc7\xb6\x53\x58\xe0\x1a\x08\x00\xdb\xcb\xb6\x31\x58\x2e\x2d\xfd\x59\xe3\xb0\x9c\xd7\xcb\xfb\xa2\x65\x2c\x56\x9e\x37\x7f\x88\xc7\x7a\xa6\x78\xac\x8a\x25\xee\x16\x93\xb5\x91\x78\xfc\xf2\xe1\x22\xc5\x42\x58\xcf\x19\x32\xb2\xc6\x4b\x2a\xb2\xc9\xf8\xd9\x8f\x5e\xe5\x9c\xdb\x9e\xc0\x9f\x1d\x51\x68\x91\x28\x55\x74\x36\x21\x71\x0c\x26\x18\xc9\x4d\x51\x88\x9c\x76\x18\xd1\xf4\xad\x98\x2f\x16\x8a\xd8\x71\xc2\xd9\x4c\xd0\x98\x78\xa5\xe7\x72\xc9\x4a\x27\x65\x8d\x18\xec\x6f\x92\x90\xd4\x6a\xf0\x29\xfa\x5a\x50\x16\x11\x5f\xab\x4f\x51\xcc\x89\x60\x5f\x29\x01\xec\x91\x20\xcc\x56\xe8\x81\xf1\xa7\x84\xc4\x33\xd8\xa1\xe2\x60\x8e\x10\x25\x3d\x44\xa5\xfb\x2c\x25\x58\xa7\xac\x8e\xd4\xd8\xc1\x2f\xab\x45\x40\x62\xbe\xf5\xca\x9f\xb8\x66\xbe\x39\x46\x68\xc8\xd0\x14\x47\xb2\x87\x44\x36\xc9\xdb\x8f\xb9\xae\x67\xf1\x48\x98\x3f\xf1\xbc\x91\x67\x0b\x17\xaa\x0c\x0f\x2a\x50\x9b\x3d\x6f\x8a\x00\xfa\x09\xc5\x5b\x79\x76\x1f\xf1\x36\xf0\x3a\x9f\x32\x61\x5c\x00\x88\x33\x77\x98\x4c\x0e\xab\x43\x14\x03\x54\x7f\x8d\xce\xd5\x50\x64\x10\x17\xa6\xd2\x75\x2c\xb9\x1b\xde\x14\x13\x30\x66\x12\x68\x57\x2f\x77\xcc\x9f\x98\x90\x29\xc1\x0b\xa3\x9a\x2a\xe6\x0d\x2e\x1c\xed\x84\x57\xa3\xa7\xa9\xbe\xb4\xbb\x6c\xf1\x05\x65\x0f\x6a\x77\x73\x0c\x35\x28\xce\x02\x3d\x57\x6c\xda\x7b\xca\x70\x10\x83\xb8\xc1\xae\x25\x59\xa7\xa0\x18\xaf\x0c\xe3\xaa\x0e\xbe\x4e\xe2\x75\x88\x72\x5d\xcc\x78\x02\x2a\xd2\xa0\x09\x14\x4c\x53\xac\x4e\x17\xa0\xc0\x48\x62\x80\x4d\x9c\x93\x64\xe9\x15\x75\x58\xe2\x54\xba\x3a\x96\x1a\x51\x49\x71\x87\x45\xc6\x00\x06\xcb\x68\x88\x4f\x06\x38\xc7\xd8\x11\xf2\xc6\x8f\x47\x6c\x28\xbf\x82\xc2\xb8\x9c\xcd\x92\x15\xc2\xf1\x23\x15\x39\x9e\x5d\xc4\x99\xc8\x16\x24\x2d\x14\x4b\xd2\x4e\x66\x84\x2d\xad\xa8\xb1\x29\x59\xed\x11\x27\x34\xb6\xc5\xfb\xd4\x8f\x13\x32\x55\xf7\xde\x12\xa7\xc2\x5a\x24\x2b\xac\x89\x66\x73\x63\xb5\x56\xaf\x76\x26\x7f\xf2\x8f\x1d\x5a\xe4\x27\x14\x1b\xdd\xe5\xa4\x78\x3e\xbd\xf2\x93\x75\x01\x7e\xa5\x49\xa1\xe6\x8b\xc9\xac\xc2\xf9\xba\x7c\x4f\x8b\x39\x90\x69\xef\x91\xea\xc7\xca\x40\x7a\x70\x9d\xcc\x3f\x85\x09\x9a\x51\x6b\x63\xa0\x7f\x36\x09\x85\x4b\x41\x48\x2c\x69\x64\x4b\x69\xba\x12\xc6\xfa\xeb\xfa\xad\xdd\xb6\x46\xac\x88\x70\x52\xde\xe1\xfa\xb5\xbc\xd5\xef\x37\xf3\x3e\x73\xdc\x74\xdb\x8d\xc1\x9a\x11\x4f\x92\x2e\x68\x75\x85\x99\x9f\xe5\x9f\x37\x8f\x28\xef\x47\x6d\x80\xdd\x0b\x38\x35\xda\xec\x87\x13\x23\x59\x08\x69\x76\xc9\x7f\x49\xf3\xd0\x95\x31\x2b\x8e\x18\x9f\x02\x9e\x61\x52\x57\x8c\x75\x99\xf2\x05\xed\x82\x43\xa1\xb1\x70\x6f\xac\x03\x7f\x8d\xeb\xc6\xba\xf9\xa1\xe8\x96\x26\x2f\xd3\x23\x84\x7a\x61\xa6\xe5\x8c\x86\x33\xb4\xc0\xa5\x92\xc0\xad\x16\x7c\x9d\x96\xdc\x47\x0b\x6d\xa2\x30\xab\x27\x74\x65\xb7\x07\xb2\x82\x34\xf5\xe4\x09\xaf\xf2\x90\xd6\x2e\xc7\x29\x0f\x1a\x35\xe7\x05\x5b\x2a\xf3\x4e\x8c\x0b\x80\xd0\xfb\xa5\x57\xa1\xcd\x09\x3a\xab\x22\xc3\xce\x67\xc9\xce\xf9\x39\x85\x6c\xff\xd8\xfb\xf2\x75\x97\xdb\x30\x3c\x0c\x5e\x8b\x08\x86\xd3\xbc\x54\x9f\x02\xca\xd9\xf9\x1a\x15\xda\x41\x5a\x97\xb3\x9e\xb3\xeb\xea\x56\x5f\x60\xcd\x0c\x59\xb7\x5a\xac\x2d\xa3\xe4\xbb\x61\x1b\xd8\x1e\x1d\xa2\x41\xe5\x79\x5f\x0f\xdc\xd4\x45\x87\x98\x2a\xd9\xc5\xd4\xfc\x73\x80\xd3\x26\x1e\x69\x4a\x13\x22\x8e\xd1\xb0\x42\x9f\xb0\xd1\x40\x20\x55\x01\xee\x13\xf8\x45\xad\xbc\x93\xa5\xd4\x43\xdd\xb6\x52\x0d\xa2\xa6\x32\x6e\x6e\xa5\x48\x89\x1a\x73\xa4\xbd\x24\x9c\x01\x2e\x03\xb8\x22\x53\xaa\x0b\x43\x2a\xf1\x52\x82\xc1\x4d\xf1\x02\x6a\x52\x8b\x74\xb1\x72\xf7\x81\x92\xb1\x25\x49\xb1\x29\x2c\x90\x8f\xaa\x66\x4b\x77\x81\x26\xda\x3e\xd8\xca\xf6\x7a\xa7\xbe\x28\xef\x4d\xe5\x08\xef\xc2\xd6\x3b\x8f\xce\xc9\xe5\xdd\x5d\x3e\x1f\xe0\x53\x6b\x7f\xc2\x68\x9a\x12\x30\x51\x2e\x5c\xf6\x02\x8b\x49\x2a\x24\xe7\x70\x43\xdd\x9e\xff\x78\x72\x3f\x44\x44\x46\x50\x37\x6d\xc4\x22\xf1\xd8\x53\x02\xed\xdf\x33\x22\xd5\xcf\x35\xd1\x7d\x74\x41\x98\x00\x4e\x40\xdb\x16\x8d\xb6\x0b\xa3\xfe\xf7\x3c\xfc\xbe\x81\xe4\x4b\xb1\xa2\x40\xbb\xae\x80\xa7\x22\x53\x80\x29\xd3\x4b\x2b\x2a\x28\x46\x17\x8f\x1f\x54\x41\x95\x6f\x10\x1b\xc2\xfe\x96\xb1\x8e\x62\xd2\x59\xfe\x91\x37\x8a\x1a\x29\x6c\xb1\xc4\x29\xad\xc0\xa3\x69\x0e\x3a\xd1\xdf\x54\xb6\xbe\x8e\x89\xe4\x31\xb8\xa6\x14\x3f\xca\x51\xdd\x91\x4c\x09\x01\x16\xe2\xe8\xc9\xdc\xf5\x26\xe7\xc1\x4d\xcc\xfb\xe8\x78\xc4\x3e\x59\x93\x69\xfe\xab\xab\x31\xaa\x03\x99\x48\x8c\x32\xd0\x99\xc2\x56\xa0\xd9\x98\x0a\xf7\x03\x80\xd4\x89\x2c\x91\x1a\x6e\x78\x0a\xc5\xef\xed\x40\xf5\x93\x2a\x2e\x91\x62\x16\xcd\x2f\xf9\x76\xb5\x87\xe9\x74\x4c\x92\x2e\xb2\xe3\x70\x3a\x48\x84\xa2\xef\xe8\xa1\xe6\x74\x6e\x02\xa8\x9d\x4f\x06\x24\x37\x0b\xb9\xaa\xb5\x12\x6d\xa7\x4b\x34\x78\x31\x41\x60\x64\x2b\x86\x0a\xe9\x6c\x00\xb5\x8b\x46\xb6\xd6\x36\x36\xed\xa3\xb7\x66\xb9\x09\xf4\x82\xb0\x1c\xb1\x34\x63\x00\xa0\xe5\x4c\xee\x18\x09\x92\x52\x6d\xfb\x8e\x38\xd3\x32\x80\x31\x9e\xcc\x14\x9b\x50\x92\x1f\xf8\x5d\x38\x03\x8d\x8a\x67\x02\xdc\xfd\x0b\x22\xd5\x05\xf5\x35\x80\xf4\x6b\xa7\x47\x0f\x2d\x53\xba\xa0\x92\x3e\x12\xf1\x4d\xc5\xd6\x9d\x61\x89\x13\x3e\xeb\xa7\x92\x4e\x71\x24\xef\xf0\x56\x3a\x33\x36\xcd\x6c\xea\x40\xb7\xc3\x40\xc3\x73\xb5\xf8\x33\xc2\x48\x0a\x13\x85\xd2\xa7\x95\x47\xb8\x6b\x51\xd4\x9c\x73\x03\x64\x70\xa4\x41\x56\x85\xb3\x31\xe0\x4c\xf2\x85\xd2\x48\x71\x92\xac\x00\x3c\x55\x3d\x99\x63\x31\xb7\x1b\xad\x11\x57\xdb\xdc\x4d\x66\x71\xcf\x70\x34\x27\xb7\x50\xeb\xbe\x6a\x71\x0b\xa3\x7c\x47\x58\xb6\x78\x77\x8a\xfe\x27\x9f\xe3\x59\xff\xec\x87\xc1\xf8\x7c\x78\xdb\x7f\x7f\x31\x38\xf7\xe6\x63\x9e\x7c\x1a\xde\xde\x96\x7f\xfd\x61\x78\x57\xfe\xf1\xfa\xea\xfa\xfe\xa2\x7f\x57\xd5\xca\xc5\xd5\xd5\x8f\xf7\xd7\xe3\x0f\xfd\xe1\xc5\xfd\xcd\xa0\xe2\xd3\xfb\x3b\xf7\xd0\x3c\xfb\xab\x77\x88\x20\xde\x03\xa2\x53\xaa\x47\x5b\x3c\x67\x47\x28\x7c\xf1\x14\xdd\x1b\xef\x0d\x35\xa8\xeb\x36\x68\x42\xe7\x26\x3c\x61\xa1\x58\x15\x14\x37\x1e\x31\x64\x3f\x57\x73\xaf\xfb\x54\xbb\x95\xa2\x39\x41\x09\xe7\x0f\xd9\xd2\x70\x30\x1d\xe0\xc8\xb8\xb6\xc8\x10\xe1\xb5\xf6\xc3\xf0\xee\xd4\x79\x91\xca\x8d\x79\x29\x88\x96\xd4\x61\x5c\xd8\x72\x4d\x30\x72\x2c\x53\xf2\x08\x67\xd2\x79\x17\xbd\x1e\xdc\x06\x34\xf5\xa3\x5b\xc3\x4c\x16\xba\x89\x63\x53\x78\xc1\x4e\xcc\x6b\x38\xdc\xbe\xa6\xd5\x74\xcb\xa1\x61\x33\xd1\x84\x44\x38\xd3\xce\x37\x75\x1d\xa5\x29\x4f\xfd\x01\xe7\xdb\xbe\x65\xa3\xef\xca\x52\x46\x08\xb0\x2f\xe0\x8c\xa8\x4f\xbc\x93\xa3\xf4\x65\xd0\xa5\x2d\x64\xdb\xdc\x40\x6b\xda\x7a\xd7\xb9\xc7\x04\xa0\x62\x14\xe7\x76\x00\x66\x14\xbc\x79\x58\xa2\x27\x02\x51\xae\x99\xc1\xac\xd4\x1a\xb2\x3a\x81\xd0\x9d\xb6\x43\x5b\xa0\xe4\x20\xfa\xb5\x96\x65\xee\x42\x2c\x56\xdf\x0b\x52\xc5\x2e\xb7\x08\x55\x3c\xd7\x8d\x02\x0f\xb5\xae\x55\x18\x71\x8d\xc5\xdf\xf2\xec\x0a\xcb\x73\x83\x14\x54\xbe\x37\xd6\xb0\x74\xc5\x5c\xdb\x8c\xc7\xa6\x67\x04\x10\x3a\xdd\xf2\xd5\x5d\x58\xc0\xda\xb5\xba\xe3\x31\x5e\x29\xe2\x80\x98\x06\x91\x2d\x97\x3c\x95\xa8\xa6\x0d\x04\x27\x5d\x8f\x0f\x6e\x06\x33\x0f\xc7\xa2\xa0\x11\x25\x07\x88\x0a\x94\xbb\x76\x11\xeb\x66\x5d\xf3\x73\xef\xa7\xbe\x82\xba\xe6\x10\x17\x17\x81\xe2\x1b\x50\x68\x95\x88\xba\x4d\x24\xd3\x52\x5d\xc3\x6d\x01\x80\xab\x7a\xbf\xb2\x2d\x54\x6e\x79\x42\xa6\x72\x5c\xe9\x4d\x69\x30\x1c\xaa\x16\x59\x5d\x92\x0f\x9d\xcd\x77\xd0\x62\x7b\x59\xfe\x7b\xe3\xed\x52\x02\xbc\xa7\xc7\xa7\x9c\x4b\x2d\x45\xe6\x9a\x06\xb2\xab\x09\x46\x00\xd3\xa9\xae\x58\x90\x8b\x6a\x4a\x32\x7f\x60\xfc\x89\x39\x8b\xb9\x38\x1e\xb1\x01\x86\x32\x1a\x4e\x5d\x30\x01\x0b\x5a\x56\x5f\x2b\xa5\x07\xa8\xfc\x7b\x82\x21\x91\xd3\xbd\x29\x39\x94\xac\x50\x5e\x79\x21\xf8\xae\xcd\xe9\xd1\xd6\x64\x2b\xa8\xe9\x09\x1b\xcc\x70\x49\x96\xc6\xe2\xad\xe7\x99\x87\x73\x83\xd3\x54\x75\x75\x8c\x7e\xb6\xf6\x19\x88\xaf\xc8\x2b\x86\x48\x7d\xe3\x24\x78\x65\x93\xe4\xab\x16\x76\x17\x79\xe7\xbb\x8e\xb8\x68\x5e\x60\x97\x63\x57\xb1\xca\x81\x9a\xcc\x98\xb6\x9b\x76\x08\x2f\x3b\x73\x1f\xdd\x92\xe6\xf8\xd3\x0f\x00\x00\x2e\x49\xaa\x94\x4d\x90\x19\x58\xb2\xfa\x5f\x7a\xb3\x20\xdf\xdc\xc4\x26\xc7\x16\x90\xd9\x78\x26\xd5\xf9\x01\xcf\x9a\x12\x03\x26\x00\x44\x91\x80\x1c\x70\x8c\xfa\x50\x3f\x03\x2a\x23\xa8\xab\xd0\x46\xf1\xd0\x19\xe3\xeb\x02\x07\x6a\x88\x29\xf2\x88\xe9\xb6\x9e\x98\x04\x50\x53\x1e\x5a\xbd\x1b\x8a\xda\x41\x9a\x8d\xe2\x2d\xb8\x8c\xb9\xd3\x3e\xb9\xa6\x83\x8a\xfd\x1a\x41\x38\xa5\xe1\x7a\x1f\xfe\xab\x7a\xe8\x1f\x33\x9c\x62\x26\x21\xb4\xc4\x48\xde\x29\xf1\x42\x1c\xc9\x67\x08\xde\x62\xda\x5c\x0b\x3f\xf9\x9b\x6b\x5d\xe9\x33\xfa\x48\x18\xa2\x71\x0f\xd1\x63\x72\xdc\x33\x45\xf0\x44\x36\xc9\xdf\x9c\x2b\xc9\x61\xc4\x4a\x29\x23\xc7\xa8\x9f\x08\x6e\xbe\x20\x2c\x4a\xa0\x5e\x8d\x17\x05\xe3\x28\xdf\x38\x7f\x26\x2b\xd0\x2f\x60\x2b\xf3\xe6\xb9\x79\xe0\x7d\x38\x62\x58\x68\x5f\x73\x02\x27\x3d\xff\xbd\xaa\x26\x55\x10\x7f\xf0\x8c\x80\x71\xa5\x6b\xe8\xd9\x36\x49\x83\x15\x37\x6d\x10\xbc\x01\x1b\x93\xa7\xf2\x78\x49\x31\xe8\x6b\x2c\x51\x42\xb0\x90\xe8\xbb\x6f\x3a\xc5\x5c\xd8\x09\xe6\xdc\xd5\x1c\xdf\x3c\x20\xd5\x46\xb4\xd5\x15\xd6\x03\x30\x79\x53\x09\xd8\x09\x90\x3d\xb5\xcf\x92\xa3\x47\x2a\x32\x28\x01\xe4\xc5\xd0\xeb\x22\x2e\x54\x0a\x1b\x14\xa8\x55\xa6\x1a\x3e\x62\xe1\x5f\x8c\x5b\xd2\x0c\xab\x82\xb2\x8c\xf2\x44\xb5\x7a\x06\x59\x92\x79\x6c\xd9\x1c\xcb\x11\x33\x9c\xd5\x86\x63\x78\xe5\x1a\xfa\x49\x12\xc6\x73\x61\x08\x59\x64\x6a\xc2\x50\xc0\xe8\xd8\x2d\xd0\x25\xa8\x5f\x2e\x04\x28\x2c\x66\xe8\x0e\x8b\xd2\xd4\x46\xcc\xa5\xa0\xf9\x6d\x57\x4a\x3b\x55\x56\xe0\x17\x14\x82\x2b\xba\xbf\xd0\x95\xa4\x5a\x08\xc3\xf5\x95\x3e\x1b\xbc\x26\x25\xcb\x7b\x83\x6c\xbc\xeb\x0e\xda\x8b\xca\xd5\x56\x6c\xb8\x66\x9f\x78\x85\x51\xbc\x66\x73\x3d\xd9\x62\x1b\x05\xdc\xc5\xa2\xbd\x94\x5f\x36\x18\xfa\x30\x86\xd8\xf2\xf5\x5c\x30\x8f\xd5\xb6\xac\x03\xcc\xd1\x34\xf6\x42\x47\xbd\xb8\x3a\x08\x2d\xb6\x8c\xcf\xbc\x59\xe3\x1f\x5d\xbe\xed\xe9\xf7\xf2\xf9\xdb\xa9\xb8\xe0\xb2\xf2\xc4\xeb\x85\xbd\x7e\xfc\x37\x1c\x11\x16\xad\x74\x4f\x16\x2e\xab\x9c\x23\x67\x91\x85\x30\x98\xdc\x2b\xc5\x43\x53\x14\xee\x18\x0d\xe0\xa2\xb1\x35\xe2\xf0\xd4\xba\x0d\xbc\x97\x47\x4c\x69\x26\xea\x8e\x17\x7a\xd0\xb6\xfd\x90\xc4\xab\x4e\x80\xce\xcf\xdd\xca\xe3\xb2\x58\x8f\x82\x58\xa7\x4d\xd8\xf4\x60\x68\x03\x60\xde\xd0\x60\x76\x8a\x62\x1e\x3d\x90\xf4\x24\x25\x31\x15\xa7\xe0\x01\x97\xb5\xae\xb7\x85\xd2\xb6\xb7\x96\x34\xda\xd6\x6b\x2d\x57\x57\x5b\x40\xe1\x33\x08\x2a\xb6\x25\x0d\x7a\x88\x4e\x41\x9d\xb0\xf9\x05\x3a\xe9\xc0\x58\xb7\x11\x61\x32\x5d\x2d\x39\x65\xd2\x99\xb2\x0a\x0b\x61\x35\x0d\x25\xb4\xd5\x85\xd8\xa6\xbb\x88\x94\xd9\x70\xda\x77\x73\x22\x88\x0d\x0b\xd0\x93\x92\x1c\x69\x5f\x88\x66\x17\x4b\x2c\xe7\x02\x32\x24\xc2\x35\x30\x4a\x17\x7c\xaa\x56\x08\x2f\x21\xaa\x40\x5b\x29\xf2\x8f\x5c\x1c\xbf\x90\x34\x49\x46\x8c\x11\x12\x0b\x04\xc9\x0c\x5f\x55\x66\xe2\xa8\x4f\x7b\x08\xc7\x31\xfa\xdf\x5f\x7f\xb8\xf8\xe5\x6e\x30\x1e\x5e\x82\xcd\x79\x78\x31\xf8\xa6\xe7\x7e\xbc\xba\xbf\x73\xbf\x6a\x0b\xcb\x23\x49\xd1\x02\x3f\x80\x8a\xc7\x84\x96\xff\x20\xda\xdd\x1f\xa9\xcd\x51\x52\x4f\x04\xb1\x11\xa4\x46\x4c\x71\x59\xed\x66\x0f\x6b\x2b\x96\x68\x9b\x5f\x07\xe5\xf7\xc6\x7d\xd2\x4c\x83\x96\x78\x5c\x17\x56\x0c\x5c\x10\x26\x15\x8f\x31\xd6\xbe\x5c\xf7\xcd\x09\x8e\xb0\x19\x65\x75\x71\x6e\x84\x3d\x3e\xa7\x10\xff\x23\x59\xfd\xa4\xd4\xeb\x6b\x4c\xd3\xd6\xb4\x37\x60\x8f\x34\xe5\x0c\xa6\xe6\xcc\x5a\x79\x4d\x6b\x22\xad\xb7\xcd\x3b\x54\x42\xcb\xc2\x10\x49\xb1\xac\x8d\xa5\x2c\x24\x6e\xef\xc7\x74\xfb\xda\xfb\x4b\x3e\xcb\xd4\x66\xc3\x09\xc3\x6e\xf0\x23\xa6\x09\xc4\xc1\xda\x8b\x26\xa7\xc1\x11\xbb\xbb\x3a\xbf\x3a\x45\x24\xc1\x13\x9e\x42\x76\x8c\x0e\xdc\xb1\x4d\x98\x05\x83\x5a\xa1\xae\xa1\x20\x13\xb2\x87\x96\x79\x26\xa4\x6f\x44\x3b\xd6\x6d\xac\x2b\x25\xc6\xd3\x72\x1e\xe1\x6e\x55\x40\x33\xd9\x6b\x9e\xb6\xb9\xfe\xd5\x6b\xb0\x74\x7c\xa9\x14\xb9\x02\xe7\x35\x77\xf3\x94\x60\x5d\xc5\x47\xbb\x85\x8c\x2d\xdf\x04\x86\x26\x49\x80\xd8\xae\x0e\x8e\x38\x36\x8e\xf2\xfc\x4d\xce\xd0\x8f\x7f\x16\x68\x92\xc9\x11\x0b\xdb\xe0\x0c\x0a\xe7\xbf\xc7\x32\x9a\x7f\x33\x62\x57\x4a\xcd\xfc\xf1\xcf\x35\x29\xdb\x31\x96\x78\x5c\x4d\x94\xf5\x6b\x72\x8e\x25\xbe\xe0\x38\xa6\x6c\x66\x80\x08\xaa\xd7\xe2\xfd\xe0\xae\x7f\x8a\xae\x8c\x0e\xef\xb2\x2c\x73\x84\x07\xaf\x21\x60\xc8\x30\x11\xcb\x45\x80\x95\x33\xc7\xfa\x8d\x89\x0c\xa4\x27\x75\x61\x8d\x18\x2c\xa5\xe6\xaa\x54\xa2\x25\x37\x98\xae\x4a\x2b\xd3\x00\x02\xd8\x55\x87\x4f\x56\x48\xad\x0e\x90\xb1\xdb\x0c\x23\x8f\x81\x3c\x53\x66\xf6\x23\x06\x0a\xba\xcb\x7c\x4b\x78\x84\x13\x88\x9c\x3b\xf2\x6c\x7a\x4a\x6d\xe7\x19\xa4\x21\x41\xc8\x0a\x5b\x85\x01\xae\x2e\x33\xce\x09\x65\xfe\x46\x81\x01\x00\xf6\xd1\x38\x53\x17\x5c\x71\x9c\xe3\x11\x1b\x4e\x75\x60\x5d\xa2\x57\x47\x7d\x48\x18\xf8\x93\xed\xb2\xa8\xa7\x96\x1f\x41\x75\x33\xed\x56\xc4\x11\x98\xef\xd9\x0a\xc2\xa2\x01\x07\x92\x43\x80\x46\xce\x9d\x0d\x51\x96\x76\xd1\xdd\x89\xde\x67\x23\xa6\xe3\xf9\x82\x7d\xf1\xb3\x84\xbd\xde\x39\x83\x70\xc3\xfc\xba\x74\x02\xc6\xd2\x84\x1f\x1a\x59\x7f\x99\x92\x23\x5b\x67\x58\xfd\xea\xad\xa9\xba\x61\x8f\xd1\x8d\xaf\x5e\xc7\x3c\xca\x16\x16\xec\x06\xd2\xb5\x4c\x9c\x9a\xb9\x44\x1d\x85\xe8\x8b\x7d\x1d\xc5\xe3\x34\x9a\x53\x49\x20\xa7\xaa\xb5\x7e\xac\x09\xa6\xef\x7f\x5a\x96\xd4\xeb\x05\xdf\xeb\x2d\x4b\xd7\x3b\x92\x1d\x2f\xc3\x96\x82\xd6\xd6\x63\x75\xac\x01\x4e\xbe\xcc\x01\x39\xa0\xb2\x3d\x57\xaa\x2d\x07\x23\xb7\x4e\xd9\xe3\xf1\x57\x02\x0d\xaf\x95\x04\xa4\x34\x5e\x77\x06\x33\x21\x75\x08\x18\xa4\xc1\xe8\xaf\x75\x18\x7e\x0f\x7d\x8b\x46\xd9\xb7\xdf\xfe\x31\x42\x9f\xed\x1f\x7f\xfa\x8f\xff\xf8\xe3\x9f\xba\xc4\x95\x5b\x85\x1c\xda\xcd\xd7\xc8\xc1\xeb\x86\x22\x91\xbf\x03\x65\x4e\xb5\xc5\x2e\x98\x03\x58\xb7\xfc\xc6\x1c\x50\x9b\x46\x55\xf5\xd8\x8b\xf0\xc1\x33\x73\xc2\x85\x7f\x32\x51\x70\x34\xf3\x48\x02\x41\x64\x2f\xe4\x10\x4e\xd8\x35\x12\xfd\xff\x6a\x00\x45\x18\xab\xa3\xb2\x59\x24\x12\x4d\x9c\x78\xad\x1a\x41\x5f\x1b\xfb\x9f\x04\x07\xe2\x37\xf6\x82\xe3\x49\x4c\x52\x53\xb2\xce\x9a\xec\x9c\x21\x11\x98\x03\xf9\xbc\x4c\xb8\x89\x11\xc1\x48\x90\x25\x06\x01\x42\x31\x83\xe3\x11\x1b\x7c\xc6\x8a\x73\xf7\x6c\xfd\x54\xf8\x48\x7b\x5e\xa6\x38\x22\x48\x8b\xea\x5f\x7f\x3e\x55\xbf\xf5\xd0\xea\x14\x42\x3d\x7b\xe8\x1f\xa7\x26\x29\x1b\xa7\x72\xac\x7e\xfa\xc6\xca\xda\xa6\x09\x18\x34\x15\x68\xf4\xee\xe4\x11\xa7\xba\x2c\xcd\x89\x41\xd3\x7d\x67\x78\xab\x43\x0a\xf7\xa5\xf3\x84\xf3\x07\x13\x08\x5b\xfa\xf2\xc4\x42\x3c\x00\x81\x3b\xcf\x89\xde\x7c\x13\xd3\xac\x24\xc9\x23\x78\x81\xa0\xe3\xe5\x04\x1d\xff\x4d\x70\x86\x8e\x57\x78\x91\x98\x5f\xed\x53\x13\xa7\x8b\x05\xb2\x35\xf8\x6c\x94\x4e\xb2\xd2\xb6\xd2\xf7\x09\x9f\xc0\xbc\x3e\xd9\xb9\xea\x48\x57\x18\x68\x7e\xff\xe4\x57\x96\x99\x88\x91\xa5\x74\xa2\x3a\xd4\xf7\x55\xaf\x00\x97\xab\x9a\xd5\x67\x37\xa4\xff\xd6\x9e\x61\x58\x14\x9b\x1e\xa7\xcd\xc3\x2e\xca\x4c\x35\xfa\x19\x7d\x6d\x98\xd0\x37\xea\x96\x31\x61\xc5\x7a\x19\xaa\x3a\x58\xb9\x0e\x7e\xf1\x3a\xa0\x0c\xe9\x84\xc7\x86\x2f\xff\x71\x72\x7c\x7c\xec\xbe\xbe\x54\x53\xf9\x7f\x11\x95\x82\x24\x53\xdd\x92\xbd\xc3\x56\x23\xf6\xc9\xa2\xe1\x59\xf3\x75\x0e\x1e\x03\x95\x24\x23\x9e\xa0\xa3\xdc\xa4\x1b\xf3\x48\xa0\xdf\x29\xc1\xd6\x5b\x4a\xf8\x51\x69\x72\xd5\xa7\xca\xd4\xed\x7d\xa1\x63\x65\x4c\xe2\xc5\x83\xe5\xe3\x45\x38\xd5\x16\x0b\x1f\x5a\x11\x68\x41\x51\xce\x89\xc1\x94\x80\x8a\xc6\x92\x7c\x96\xf0\xa8\x06\xb2\xa3\x32\xe4\xbc\xfa\xae\x2c\x31\xdc\x1c\xb9\x43\x93\x75\xcd\x02\x18\x60\x05\xc3\x1b\xf4\x3c\x7b\xbe\x03\x45\x5d\x2f\xcc\xc7\x67\x13\xd9\x62\x81\xd3\xd5\x49\x7e\xda\xca\xc4\x99\x83\xad\x02\x97\x49\xec\x02\x80\x13\x37\x31\x47\xcb\xc4\x31\x18\x01\xd3\xde\x69\xee\xec\x46\x80\xee\x0e\x11\x75\xba\xb6\x01\x61\x11\x8f\x0d\x5d\xe7\x79\x9d\xa1\xcc\xe2\xde\x29\x4b\x2b\x36\x26\x46\xe4\xe6\x38\x26\x75\xb2\xb7\x79\xc3\x7e\x5c\xc3\xc0\xf9\x18\x2a\x6f\x90\x59\x07\x07\xe9\xf0\xea\xd6\x7e\xd3\xfe\xda\x85\x75\x08\x85\x76\x6c\xf5\x44\x6b\x93\x48\xf1\x53\x7e\x01\x43\x74\x87\xb6\xcf\x64\x2e\xeb\x55\xff\xfb\x8c\x5f\xd3\x44\xdd\x5b\x40\xe3\xc7\x23\x16\xfc\xdc\x43\x24\xa1\x0b\xca\x5c\x74\x9d\x66\xef\x7c\xaa\xe5\xe7\x07\x2a\xd5\x96\x89\xf8\x41\x71\x30\x0b\x20\xe0\x29\x55\x7d\xb6\xb2\xa4\xe3\x5c\x53\xc6\x06\x91\x09\x35\xae\x5c\x4b\x57\xe2\xac\x6a\xe2\xc8\x88\xa4\xd4\x23\x3c\x38\xbf\x23\xa6\x5a\xb3\x67\x29\x0f\xeb\xf5\xda\xf3\x9a\x3b\xb2\x28\x65\x1e\x07\x80\x3e\x82\xd8\x5c\x27\x01\x57\x88\x28\x03\x96\x2d\xb6\x4d\x0a\x31\x61\xbe\xaf\x65\xa8\xbb\xce\xab\xc5\x9a\x04\x23\xc2\xb2\x85\x3d\x50\x1d\x28\x6e\x60\x04\xa0\x98\x44\x09\x86\xbb\x03\x1a\x82\xd8\xc7\x9e\x76\x91\x7a\x95\x69\xcd\xf5\xa2\xbb\xd1\xc0\xa7\x09\x61\x5f\xeb\x7f\x7f\x83\xcc\xdd\xf0\x6d\xcf\xdc\xe7\xa9\x30\x4a\xa4\xdd\x73\x00\xce\x27\xb1\xb6\xa2\x03\xfe\xd9\x0c\x43\xbd\x70\x63\xda\x09\x34\x4f\x90\xc0\x56\x3c\x43\x4f\x54\xcc\x47\xec\x8e\x5b\x93\x23\x62\xdc\x21\xc8\xf5\x40\x1d\x2d\xf5\x87\x05\x30\x01\x18\x75\x15\x05\x14\x0a\xd6\x77\xcf\x09\x82\x30\xd6\x31\xe3\x31\xe9\x18\xcd\x5e\x51\x2a\xdb\x78\x22\xac\x07\x3b\x25\x3a\x6f\x0b\x6e\x8a\xda\x42\xbf\x42\x74\xb4\xce\x57\x56\xd6\x37\xed\x40\x91\x94\x27\xb6\x29\x64\x86\xbb\xd5\xa0\x15\xab\x73\x7a\x79\xb6\xc1\xda\x87\xd5\xff\xb7\xd2\xd1\xe2\xcd\xfc\x13\x7a\xee\x11\x2c\xbb\x0b\x31\xc6\x68\x96\xf2\x6c\xe9\x92\xd1\x6d\x5a\x9e\xde\x06\x23\xd3\x0c\xd9\x94\x9f\x1a\xad\xea\x82\xb2\x07\x4d\xf1\xcf\xb5\x47\xae\x02\xbd\xf7\xbb\xbd\xc3\xf4\x8a\x1f\x21\xca\xa2\x24\x83\x8b\x4f\x48\x1c\x3d\x68\xf8\xc0\x3a\xb3\xaf\xfa\x66\xbc\x3e\xe9\xb1\x46\x62\xca\x92\xc4\x74\x9b\x5f\xa0\x79\x61\x9f\x47\x8a\x11\x46\xf7\x37\xc3\xea\xbe\x1f\x68\xd9\x9d\x53\x7d\x7b\x86\x04\x02\xff\xf9\x91\x76\x8a\xbc\x2c\xe0\x9c\x92\x80\xd4\x9d\x79\xa9\x0e\xdd\xab\x70\x7b\x6f\xe9\x3f\x56\xb7\xd0\x78\x51\x41\xa9\xd5\x93\xcf\x3b\x3e\x37\x1f\x7f\x52\xdf\x56\xef\xc8\x27\x48\x3a\x72\xc8\x0c\x0b\xcc\xd4\x04\x6d\xaf\x35\xd6\x18\x7d\x31\x6e\x34\xa4\xfb\xe5\x46\x03\xd2\x3d\xb6\xc4\xe4\x36\x5d\xd9\x56\x9e\xb4\x41\x12\x27\x5a\xe1\x96\x73\xd0\xc4\x7a\xe8\x36\x9a\x93\x05\x86\xa0\x97\x45\xa8\x91\x81\x64\xfa\x75\x82\xd3\x99\x96\x13\x05\x91\xe2\x9b\x8a\x1d\xce\x83\xbf\xb7\xd8\xe1\x0d\xea\x05\xf8\x0e\x20\x90\x42\x9a\x38\x80\x1b\x65\x08\x3d\xe4\x98\x93\xab\xbc\x61\xee\x0e\x2a\x7c\xc8\xe1\x88\xa7\x29\x40\xe4\xc5\x4a\x1a\xaf\x07\x65\xd8\xb2\x6e\xcc\x25\x5e\xb8\x04\x66\x5b\xbd\xc2\xe4\xa9\xe8\xc1\x4d\x08\xe0\x50\xd5\x8f\x61\xeb\x02\x31\xfe\x10\x0c\x60\x7b\xdd\x08\x46\xac\x6f\x5f\x71\x49\x90\x20\xe2\xa6\x5a\x0e\x81\x40\x39\x1d\x16\x0a\x62\x26\xce\x57\xdd\x4c\xae\x66\x12\x5d\x73\xcd\x8a\x35\x6e\x94\x98\xeb\x80\xeb\xb4\x18\x63\xf5\x1d\x3b\x8f\x9a\x9e\x1f\xbb\x97\x00\xab\xc6\x91\x88\x8a\x25\x9a\xaa\x3a\x5e\x2f\x52\xda\x04\x77\xd3\x90\x5f\x15\x4a\x07\xd3\x25\xab\x9c\x4c\xd5\x8a\x6b\xd5\xa4\xd0\x59\xf9\xb4\xca\xad\xb8\x31\xc5\x8b\x71\xca\x93\x6d\xf6\xc8\x36\x11\xa8\xb9\x73\x8d\x27\xba\x42\x7f\xcf\x70\xa2\xed\xfd\xcc\x90\xa3\x1d\x36\x48\x0c\xdf\xff\x09\xf5\xe1\xba\x44\x9f\x80\x2f\x82\xa7\x13\x5a\x93\x1c\xd1\xc5\x92\xa4\x82\x2b\x7d\xac\x66\x93\x1f\xfe\x2c\xc6\x06\x0c\x78\x8c\xa3\x88\x67\x65\xe0\xdf\x0e\x33\xa9\x68\xcd\x9f\x14\x46\x0f\xd9\x84\xa4\x8c\xe8\x52\x94\xf0\x1e\xb2\xef\xb5\x1a\x2e\xc7\x99\x9c\x7f\x3f\x8e\x12\xda\x1a\xa1\x18\xd2\x2c\xfa\xea\xb3\x33\xfd\x55\xd3\x04\x82\xf6\x83\xa1\x33\xa4\x9f\x21\xfd\xec\x18\xbd\xc7\xd1\x03\x61\x31\x5a\x26\xd9\x8c\x9a\xdc\x67\xb8\xa1\x80\x5d\x7a\x56\xaa\x70\x62\x5a\xe5\xd5\xed\xab\x6b\x68\xc4\x16\xf8\x01\x34\xa4\xcf\x26\x1a\x5d\x69\x9a\x9d\xb4\x2d\x47\x0f\x25\x10\x08\x9b\xa8\x2b\x48\x94\xa5\xea\x0d\x7d\x3e\xa4\x3e\x1f\x60\x57\x02\x20\xb4\x8c\x21\x0c\x38\x12\x5f\x09\x94\x2d\xad\xf1\x03\x0c\x1e\x09\x38\xa0\xf4\x24\xa1\x38\x19\x55\xe2\xe0\x9c\x8c\x18\x04\xf5\xd9\x16\x57\x8e\xab\xf8\x3e\x4f\xe7\x7b\xaf\x3a\x7c\x53\x9d\x45\xbd\x9d\x3b\x45\x9b\x91\x76\x1e\xb0\x28\xe7\x84\x81\x1e\xd6\xbe\x65\x48\x45\x6f\xbf\x69\x41\x70\xa2\x9e\x45\x6e\x38\x72\x4b\x98\x31\x6a\x30\xb1\x8d\xad\xd0\x8b\x1b\xb2\x26\xf5\xfc\x7b\x2a\x90\xc0\x92\x8a\x29\xad\xd4\x4f\xfd\xdc\xf5\x6d\x56\x1d\x77\x4b\x98\xaf\x48\x96\x2f\xac\x85\x0b\x80\x3e\x46\x1f\x40\xdd\xce\xa7\x24\xb9\x4b\x3d\xaf\x63\x09\x72\x4e\x6a\x51\xd3\x76\x11\x39\x60\x67\xd0\xd6\x8a\xe2\x82\xdd\x8f\x51\x3f\x37\x73\xea\xe4\x7b\x6d\xc0\x5c\x33\x23\x92\x08\xb2\x09\xf1\xb5\xb2\x08\x80\x33\x10\x08\x08\x81\xac\x22\xd4\xef\x39\x82\xa3\x1b\xe6\x13\xe4\x93\xe1\x07\xc2\x9a\xd4\xbe\xf6\x23\x1c\x04\xd9\xb8\x55\x43\xec\x3b\x85\x9f\x6b\x9d\x7f\x93\x01\xb6\x3f\x76\x39\xde\x01\x9d\x9e\xa8\x25\x57\x82\x7e\xf4\x60\xa2\xd8\xb5\xd9\xc7\x20\x26\x3c\xcd\xb9\xf0\xcf\x99\xdd\x3f\xd8\x4c\x99\x66\xc4\x46\xab\x43\x16\x80\x5b\x60\xed\xfe\x67\xdc\x07\x54\x80\x51\xbb\x43\xaa\x4d\x5a\x6e\xbf\x91\x65\xa1\xb0\x0c\x60\x2e\xb7\x4d\x95\x4f\xf3\x8f\x7f\x16\x57\x70\x62\x77\x91\x14\x9c\xe0\x09\x49\x9e\x01\x27\x6a\x43\x43\xa4\x0b\x35\xd1\xe3\x02\xa3\x7f\xec\xb2\xd0\x97\x3c\x46\x39\x79\xd5\x45\x3c\x32\xc6\x75\xa8\xc1\x1e\x4e\xcb\x1b\x5c\xeb\xb9\xad\xa3\xec\x4f\x9e\xb7\x52\x97\xdc\xd5\xd8\x2b\x9e\xc8\x65\x12\xc7\x40\xfb\x35\xd7\x3f\x15\xee\x3e\xa9\xa6\xb1\x6b\x1e\x6f\x43\x58\xdd\xf1\xb5\xca\x74\xdd\x22\x9c\x51\x54\x55\xfc\x69\x58\x89\x25\xaf\x0f\x44\x8b\xc7\xed\x6b\xe4\x80\xdf\x71\x92\x4d\x6f\x01\xdd\xb7\x2e\x39\xde\xc2\x1a\xcd\x89\xcb\x76\x51\xfb\xac\xba\x71\xb1\xd7\x75\x9b\x62\xdc\x58\xf9\xf5\x8f\xd1\xff\xbd\xbd\xba\x3c\x5a\xe0\x54\xcc\x31\x24\x1f\xda\xb6\x7a\x16\x83\x5e\x2b\xa0\xd6\xbc\x4e\x19\x1a\xb1\x23\x34\xe3\x3d\xed\xcd\x39\x45\x73\x29\x97\xe2\xf4\xe4\x64\x46\xe5\x3c\x9b\x1c\x47\x7c\x71\x92\xaf\xcd\x09\x5e\xd2\x93\x49\xc2\x27\x27\x29\x81\x88\xbe\xa3\xef\x8e\xbf\xff\x0e\xb6\xe6\xe4\xf1\xbb\x13\xb0\xe1\x1f\xcf\xf8\xef\x2e\xbe\xff\xcf\x3f\xfe\x49\x35\xbc\x5c\xc9\x39\x67\xa7\xc6\x55\xd4\xd8\xf6\x91\x16\x7c\x4f\xf4\x27\x85\x5e\xfe\xf3\xf8\x5b\x7f\x18\xe6\xd5\x05\x8f\x49\x22\x4e\x1e\xbf\x1b\xdb\x9d\x39\x5e\x76\x71\x7e\xe5\x0c\xdf\x2d\x79\xa1\x40\x94\xfa\xdd\x91\x8c\xcd\x3d\x5a\xb7\x2d\x15\x67\xc5\x8f\xd7\xdc\xe2\xc4\x3c\x90\x92\x3f\xb0\x83\x06\xe6\x24\xa9\x1a\x9d\xbe\x2b\x7c\x70\xad\x6c\xd3\x29\x3d\x0d\xbc\x6f\x34\x02\x68\x4a\x6d\x83\x58\x62\x5a\x15\xe7\x63\xbc\xcc\xdb\xac\xdf\x73\x82\xac\xee\x1a\x5d\xd5\x4c\x77\x43\x64\xd5\x44\x7f\x6d\x7d\xe2\xfc\xc9\x22\xaa\xee\x02\x87\xb4\x65\xa5\x0e\x07\xd6\xa8\x89\x07\xc6\x62\xc7\xd5\x8d\x46\x82\x25\xd6\x61\x12\x26\xc4\x52\x40\x38\xa6\x06\x3b\xe0\x53\x07\x1b\xab\x23\x69\x35\xc2\x34\x9f\x56\xfc\xf1\x3e\xe1\x13\xf1\x8d\x83\x58\xc1\xc2\xf6\x91\x63\x1e\xd4\x93\xe0\x6e\x50\x4a\xed\x52\x3c\xa7\x7e\x62\xcf\x8c\x2f\x85\x74\x59\xf8\x6a\xa2\xca\x03\x5d\x75\xc6\x27\x4e\x79\xc6\x2c\xca\x23\x67\x84\x4f\x21\x4a\x00\x2e\x40\xeb\x05\x01\x23\x08\xe3\xd2\xcb\xee\x4c\xc9\x52\x33\x52\x30\xd7\xd5\x2f\xf7\x96\x48\xa7\xeb\xd6\xf9\x39\x90\x4e\xb7\x5d\x77\x73\x70\x5e\x69\xc1\xb7\x0d\x55\xd0\x47\xa9\x03\x9b\x85\xf7\xd7\xba\x26\x1c\x1f\x00\x5f\x84\x5f\xc1\x4c\xa3\x99\x40\x78\x32\x39\x92\xfc\x08\xd2\xe2\x21\xd9\x5a\x63\x0f\xd7\x55\xe4\x00\x97\x4e\x97\xeb\x40\xbd\xdf\x62\x9c\x3a\x24\xfd\xb3\x37\x50\x73\xf7\x8a\xbc\xb6\xb9\x52\x2e\x19\x23\xa9\x31\x56\xaf\xbd\x39\x3a\x3a\x7c\xfc\xad\x6c\xf6\xf8\xe6\x02\xa8\x8f\x0b\xeb\xe2\xfd\xb0\xc7\x04\x8e\x11\xc4\x5d\xcf\xf9\x82\xab\x6b\x9b\x67\xc2\x7b\xa8\xe3\xf6\xe1\xb2\x69\x28\x33\xbf\xd4\x30\x38\xaf\x37\x1b\x75\xb4\xd4\x23\xad\xcb\xfb\x2f\xad\x07\xc7\xf6\x66\x32\x09\xc1\x85\xd7\x8c\xdf\xa1\xc2\x36\xd3\x0d\xb8\x13\x17\x60\x3b\x85\x9a\x27\x06\xeb\x91\xfe\x43\x89\xea\x8a\xa4\x5c\x8c\xbc\xcd\xab\x37\x81\xa7\x1a\xed\xc9\xc7\x83\x2b\x94\x36\x2d\x0e\x9f\xb0\x6c\xd1\x71\x0f\x5c\x10\x53\x9b\x0d\xc0\x4c\x87\xf5\xd8\x78\x9e\xa3\xca\x80\x9e\xba\x73\x69\xeb\xa1\xc4\x63\x8b\x48\xd6\x6d\xa8\xb7\xae\x01\x03\x3e\x56\x1e\x77\x0e\xe8\x00\xd1\x5f\x7a\x8d\x35\x43\xb0\xb2\x45\x5d\x90\x45\x17\xad\xb5\x49\x09\xac\x0a\xc5\xd3\xf8\x32\x79\xe4\xad\x22\xcf\x92\x02\xe2\x3e\x7c\xcc\x4b\x15\xad\x96\xa4\x87\x26\x19\x3c\xbf\xbc\xba\xf3\x5d\x8c\x94\xc1\xe3\xa3\x68\x4e\xa2\x07\x48\xc3\xd1\xd7\x89\x26\x34\x5b\xa6\x6a\xb2\x1a\xb1\xbc\x20\x86\xe4\xd6\x5f\xb6\x72\x88\xa3\x0e\x75\x97\xa7\x28\xa6\x62\x99\xe0\x15\x78\x26\x98\x8e\xb1\xcb\xbd\x1a\x2e\x38\x55\x1d\xb3\xcd\x0c\x70\x50\xb1\xc3\xf0\x4f\x2b\xc1\xc2\xbf\xec\x24\x5c\xb9\x4a\x17\x2f\x5e\x25\xb0\x6d\x8d\x01\xbb\x4d\xa4\x55\x5d\xed\x19\xcf\x5f\xae\x77\xd4\x77\xb9\xbb\x3c\xf1\x62\x51\xd4\xd1\x3b\x1b\xc1\x0e\x4a\xea\xc8\xd6\x73\x54\xff\xd6\xc5\xc2\x48\xfa\x48\xe2\x11\x0b\x33\xf1\x8d\x10\x90\xef\x32\xca\x6b\x12\xd4\x9d\xbf\xee\x86\x19\x1f\xe4\xb0\x39\x08\x0c\xb2\x0f\x73\xdc\x21\x17\xa5\xdd\x50\x23\xa1\xba\x18\xe2\x33\x80\xf9\xb7\x36\xd6\xe5\x45\x10\x0c\x82\xb9\x29\x51\x12\xf8\xc5\x1c\x61\xba\x3c\x63\x0d\x42\xe2\xa2\x57\x4d\x34\x6b\x29\x69\xab\xaa\x8d\x11\xb3\x09\x38\xd3\x2c\xd1\xc0\x52\x35\xab\x65\x61\x07\x6c\xa8\xe0\xeb\x85\x8c\x3a\x83\x00\xf2\x8a\x46\x38\xf7\x95\xcd\x98\x88\x56\x79\x75\x5a\x20\x5d\xc2\x44\x06\x77\x84\xc5\x8b\x87\x1c\xba\x19\x91\xc0\x9e\xe3\x2c\xd1\xf9\x24\xe0\x98\x04\x08\x03\x9c\x24\x88\x4a\x31\x62\x0e\x71\x41\xe3\x67\xc2\x15\x6a\xb3\x03\x63\x23\x43\x43\x17\xd0\xac\xa9\x2a\x06\x17\x2b\x8d\xa8\xf4\x47\x04\x0e\xb7\x95\x8f\xb1\xbc\x5c\x12\xac\x83\x9f\xcd\x31\x64\xbe\x10\x5d\xdc\x04\x13\x29\x0c\xb5\x9e\x76\x11\xb4\x5b\x4f\xba\xba\xd6\x57\xe7\x2d\x39\x46\x7d\x3d\x3b\x25\x41\xdb\x82\x47\x7a\xb4\x26\xe5\xca\xc4\xa4\x28\x31\x55\x0a\x57\xb3\xd5\x29\x22\x4b\x9c\x4a\x1a\x65\x09\x4e\x93\x95\x2d\xd4\x4c\xa7\x5e\xed\x26\xd8\x03\x9d\x6f\x6f\x8a\x42\x03\x0c\xbd\xb1\x65\x0b\xbc\x20\x5e\xaa\x8f\xd1\xd7\x13\xcf\x17\xa6\x41\x04\xb5\x93\x45\xb5\xf5\xcd\x31\x3a\x2f\x56\xea\x82\x33\xe1\xe1\xf4\x50\xa1\xd9\x9f\x1b\xaf\x17\xa3\xae\x2b\x7e\xd1\xa9\xd2\x11\xbe\xf2\x4e\x5d\x5d\x15\x49\x2c\x1e\x3a\x3a\xda\x2c\xda\x6b\x73\x7c\x55\x65\x8e\xca\x1d\x54\x1a\x0c\xdc\x6f\xee\x40\xd4\x0c\xd0\xde\x0c\x1d\x07\xe9\x63\x1c\x6d\x30\xd0\x9f\xbd\x52\x7e\xc5\xc1\x2e\x1a\x4a\x45\xc1\x3e\x76\x1c\xaa\x07\xe3\xde\x7d\xa0\x1e\xe5\xf8\x6e\xd5\xda\x95\x5d\xaf\x93\xff\x1c\x00\xaa\x23\x35\x2e\xa5\x0f\x11\xed\x88\x2f\x54\x03\x86\x31\x18\xe4\x75\x80\xc9\x74\x87\x6d\x42\x50\x42\xd9\x83\x4d\x8a\x53\x3b\xdf\x43\x38\x6f\x1d\x0e\x9f\x1e\xbd\x26\xe6\x1a\xb1\xa6\x0a\x54\x76\x0b\x49\xa7\x5d\x60\x79\xb5\x2e\x61\x47\xd2\x09\x37\xb8\x54\x33\xd7\x9b\x47\xfb\x6d\x69\x0c\xfd\x72\x12\xac\x8d\xf7\xd2\xf7\x8b\x17\x84\x22\xa9\xab\xa2\x5a\xbb\xbe\xd7\x73\x5c\x5d\x78\x7b\x3d\x50\xfa\xfd\xe5\xf9\xe0\xc3\xf0\x32\x44\x37\xff\xcb\xfd\xe0\x3e\xfc\xe5\xe6\xfe\xf2\x72\x78\xf9\xd1\xff\xe9\xf6\xfe\xec\x6c\x30\x38\x0f\xdf\xfb\xd0\x1f\x5e\x14\xde\x53\x3f\x85\x2f\xf5\xdf\x5f\xdd\x14\xf0\xd4\x6f\x7f\x1c\x5e\x5f\x87\x3f\xdd\x0d\x3f\x0d\xce\xc7\x57\xf7\x01\x24\xfb\xf9\x2f\x97\xfd\x4f\xc3\xb3\x71\xc5\x78\x6e\x06\x67\x57\x3f\x0d\x6e\x06\xe7\x8d\x50\xeb\xf9\x7c\x2b\x97\x74\x17\xde\xe8\x8d\xf1\xf5\xfb\x68\x9a\x52\xc2\xe2\x64\xa5\x83\xe5\xac\x92\x52\x88\xcd\xf1\xaf\x00\xba\x20\x3c\xdb\x26\xe6\xed\x6e\x4e\x10\x7f\x54\xea\x65\x82\x4c\x6b\x26\xd4\x1f\x8b\x87\x5a\x74\x17\x99\x96\xad\x8d\x8d\xa1\xbd\x32\x5d\xb9\xe0\xf1\xc6\x98\x55\x97\xfb\x6d\x3a\x41\x4b\x92\x36\x8d\x05\x2e\xe8\x34\x5b\x4a\x3a\xa9\x8f\x62\x6c\x99\x13\xdd\x5d\x0d\xd4\x48\x25\xd5\x49\x9d\x97\xd5\x8c\x31\x08\xe6\xdb\x26\x8e\x09\x5a\xd8\xb4\x6c\x84\xfb\xda\xc6\x7e\x2c\xb3\x49\x42\x23\x44\xe3\x1c\x5f\x45\x47\xf9\xe9\x98\x73\x6d\x8a\x2a\x02\x1a\x2d\x49\x0a\x12\x93\x12\x44\x97\x29\x39\xc2\x99\x9c\xdb\x1a\x94\x10\xfe\x64\xe0\x27\x47\x4c\x90\x28\x25\xd2\x96\xc5\x26\xb1\x2d\x24\xe0\xf5\x04\x83\x31\x99\x27\x31\x24\xb9\x1e\x7b\xe0\x92\x35\xb6\x47\xfd\xa5\x6e\xbd\x83\xf1\x45\xbf\xdf\xb8\x34\x66\xc4\x54\x14\x8b\xc5\x81\x6c\xa8\x1f\xda\x72\x04\x6a\xde\x8a\x53\x47\x36\x42\x52\x6f\xb2\x0d\xb6\xac\x9e\xc6\x3a\x1a\xf3\x09\x25\x8c\x8d\x34\xad\x9b\x47\x67\x29\x81\x4b\xc4\xb8\xd2\xac\x1a\x0d\xae\x5f\x13\x9c\x09\x31\x99\x4a\x63\x98\x90\x39\x4e\xa6\xda\x22\xa3\xb6\x26\x3f\x57\x65\x12\xbd\xe3\x0f\x84\x99\xf2\xf0\xaf\xc2\x0e\x99\x16\xc0\xf3\x5c\x24\x67\x9c\xc8\xcd\x37\x50\xca\x3c\xb5\x35\xec\x75\x70\xba\x2e\x93\xaa\xc5\x55\xef\xb1\x8e\x10\xcd\xb1\xc6\x6c\x5c\xfb\x74\x4a\x3f\xab\x06\x47\x8c\x54\xa2\x2d\x81\xbf\xdd\x66\x85\x3b\xbe\x0c\x68\x23\x3a\xb5\xf6\x81\x30\xa8\x84\xa0\xcb\x99\xad\xa5\xd9\x6e\x76\xc2\xf2\x5e\x34\x18\x0a\xc1\xfc\x44\x83\x02\x11\xbe\xf5\xd8\xae\x13\x64\xa1\x3c\x90\x63\x74\x6e\x12\x06\xd5\x2f\x67\x17\xc3\xc1\xe5\xdd\xf8\xec\x66\x70\x3e\xb8\xbc\x1b\xf6\x2f\x6e\xdb\x1e\xbf\x5d\x04\x32\x17\x4e\x5f\x31\x96\xdc\x71\x88\x13\x73\xf2\xf2\x7c\x1a\x37\xa9\xfc\xd8\xc1\x96\xac\x1f\x3d\x8d\x97\xe3\x98\x8a\x48\x5d\x7f\xab\x31\x61\x31\xc0\xd4\x6d\x44\xaa\xd5\x4d\x15\x67\xe1\xde\x40\xee\x0d\xcb\x41\xf4\x6d\xf7\x68\x29\xda\x3d\x07\x1c\x1b\x53\x09\x5c\x1d\xfe\x78\xc4\xbc\xdb\xe6\x78\x3d\x36\xb1\x6a\x6e\xbb\xb9\x85\x4d\x14\xe7\xa4\xc7\x4b\x85\xc8\xb0\xe2\x8f\xf6\x35\xc8\x53\xad\x59\x15\x83\x1d\xe2\x63\xe5\x51\xaf\x1a\x13\x52\x2a\xf2\x02\xb3\x18\x4b\x9e\xae\x6a\xa6\xd8\x8e\x79\xfa\xc7\x26\x64\xa1\xfe\x95\xad\xf4\x7f\xbb\x0b\xfa\x55\xcc\x8a\xa4\xa4\x11\xf5\xee\xae\x7e\x1c\x5c\xde\x8e\x07\x97\x3f\x8d\xaf\x6f\x06\x1f\x86\xff\xed\x40\x01\x4c\x6d\xf9\xb0\xce\x0b\x51\x97\xa2\xe2\x2e\x36\x3d\xb1\x92\xbf\xe8\x62\x2b\xb6\x1d\x03\xb0\x4f\xa7\x23\x66\x39\x4b\x9a\x37\x3f\x4f\x79\x36\x9b\x57\x37\x54\x1c\xe5\x75\xff\xee\x87\x8d\x86\x09\xc9\xe3\xba\x22\x83\x3e\x6d\x65\x8c\x25\x3a\x35\x7c\x4f\x03\x33\x15\x86\x07\x10\x08\xf0\x6a\x95\xc1\xbb\x86\xa3\x6d\xa4\xbd\x94\x99\x56\xa3\xf0\x5f\xf1\x7a\x1d\x01\xdd\x79\x7c\x33\xb8\x46\x20\xa8\x4d\x17\xfb\x29\xb5\x76\x5a\xf1\x5b\x70\x83\x7d\x7f\x94\x90\xd9\x8c\xc4\x9a\xbc\x8a\x0d\x1b\x53\x90\x61\x81\x51\x7e\xaf\x57\xad\xa2\x29\xbd\xb1\xc5\xc5\xec\xe2\x48\xda\x33\xf0\x6b\xf7\x49\x35\xaf\x38\xb3\x45\xf8\x22\xce\x84\xc4\xac\xc6\x41\xd5\xb1\x50\x78\x5e\x5f\x20\xcd\xcb\xf5\x1b\x03\x89\xb5\x5c\xe7\xe7\x60\x13\x6f\x8e\x29\x31\xc2\x8c\xc5\xc3\x2b\x3d\xe2\x55\x0d\xac\xd8\x84\x42\x29\xe6\x67\x37\x6e\x34\xaa\x4e\x26\x63\x1e\x2c\x8e\x1a\xe3\xdd\xc0\xb9\x69\x6b\x10\x14\x4e\xa8\x0d\xac\xdb\x71\xe5\x76\x67\xf1\xcc\xcb\x4e\xbb\x42\xe6\x56\x78\xeb\x6e\xdf\x2a\x14\x6d\xf6\x0a\x5a\xc7\x59\x64\x70\x0b\x75\xb3\xb9\xe7\xdc\x18\xb4\xec\x05\x1b\xa3\x23\xbf\x50\x7e\x7c\x04\xb9\xcf\x23\x56\xe7\xd5\xa8\x28\x32\xef\x53\xc0\xb5\xbd\xb5\xb6\xc3\xcd\xe8\x10\xf0\x67\x17\xbb\x5d\x4a\x0a\xb2\xaf\x83\xb0\x57\x13\x78\x60\xf6\x65\x82\xb5\xdb\x32\xbc\x8e\xeb\xb2\x53\x1d\x57\xed\x16\x1f\xd1\xce\x35\x1f\x82\x5e\xe8\x2b\x72\x8e\x85\x96\x5c\x65\x34\x0f\x07\x0e\xb3\x09\x81\x2d\x8a\xc3\x75\x92\xe0\x76\x16\x82\x56\x8e\x8b\x9e\xd6\xa9\xa9\x30\xa3\xf7\xcb\x14\xb8\x9a\x2b\xdd\x08\xdf\x17\x8e\x9c\xf2\xa2\xf9\x1e\x30\xac\x04\x67\x2c\x9a\xa3\x65\x82\x75\x1a\xd6\x1c\x0b\x4d\xd2\xd6\x31\x8e\x27\x34\xa1\x12\x32\xc8\xb5\x53\xa9\xb0\xc2\x4a\xa3\xc1\xe9\x83\xc5\xae\xc2\x39\x82\x4d\x13\xd1\x6f\x19\xf6\x96\x17\xe0\x7c\xc9\xc0\xb7\xfc\xc8\x7a\x5f\x34\xba\xa4\x72\xb2\x34\x41\x6f\xf9\x76\x28\x8e\x07\x64\x99\xcf\xa5\xdb\xce\x9a\x16\xaf\x8b\x9f\x07\xeb\x5d\x71\x51\x77\x8f\x13\x30\xb0\x8c\x1d\xd8\x7c\x11\xb4\xb1\xf2\x64\x4d\x13\x8e\x6b\x0a\x87\xd9\xb6\x35\x06\x63\x5d\xdb\x31\xcf\x26\x75\x98\x5f\x7a\x54\xcd\xad\x37\xd9\xfd\xed\xb9\xdd\x95\x5d\xd0\x67\x80\x58\x12\x49\xbb\x99\x36\xbc\x49\x63\x49\x8e\xe0\xf3\xea\xc6\x0d\xd2\x55\xeb\x39\x97\x08\x2d\x47\x02\x76\xc8\x62\x4a\xa4\xad\x28\x3f\xfd\x97\x0c\x4a\x5c\x5f\x4d\x6f\x75\x4a\xf3\x36\x44\x26\x69\x99\xc2\xaa\x4f\x62\xb1\xd7\xbb\xd0\xa9\xe2\xd3\x40\xeb\x74\x96\xaa\xd9\xdc\xaa\xaf\xdb\x1f\xc8\xb0\xba\xe6\x32\xa5\x1c\x12\x8f\x4d\x49\xce\x06\x70\x94\xca\x7e\xb7\x58\xc9\xbf\x67\x24\x23\x8a\xf6\x27\x59\x3c\x2b\xdb\x36\x3b\x48\x67\xf9\x94\xe6\xfc\x09\x2d\xb2\x68\x8e\x6c\xe3\x28\x26\x09\x5e\x05\x53\x03\x79\x49\xf2\x04\xe0\xc6\x36\xc4\x3e\x8a\x32\x21\xf9\x02\xc2\xd5\xf2\x76\xd3\xff\x8f\xbd\x6f\x6b\x6e\x23\xb7\xd6\x7d\xcf\xaf\xe8\xca\x79\xb0\x7d\x8a\xa2\xce\x24\x95\xaa\x53\x53\xb5\x1f\x38\xb2\x9c\x61\xa2\x91\x1c\x49\x1e\xef\xbd\xc3\x14\x0d\x76\x83\x54\x47\x4d\x80\x46\x77\x4b\xc3\xa4\xf2\xdf\x77\x61\x5d\x00\xf4\x95\xcd\x8b\x3c\xce\xec\x79\x98\xb1\x2d\x75\x03\x68\x5c\x16\xd6\xf5\xfb\x4a\x05\x1b\x3e\x12\x45\x61\xd2\x45\x59\xb4\x66\x43\x55\x40\x40\x0e\x0c\x68\xdd\xbd\xbf\xbc\x98\xbe\x9b\xd6\xa2\x49\x93\xbb\x3f\x87\xff\xfe\x78\x73\xfb\xe7\x77\x57\x37\x1f\xc3\x9f\x5d\x4d\x3e\x5c\x5f\x7c\x3f\x7f\x7f\x35\xb9\xae\xc4\x9c\x26\xf7\x93\xbb\xcb\xfb\x1d\x61\xa5\x66\xaf\xdd\x0b\x21\x02\x8c\x12\xab\xbb\x90\xe3\x12\x22\x80\x6c\x5d\x52\xaf\xdf\x46\x13\x46\x6c\x09\x29\xd3\x04\x87\x06\x21\xa4\x8d\x1c\x6e\x14\x41\x7c\x2b\x0a\x41\x9c\x98\xe3\x68\x12\x31\xb7\x29\xa4\x8d\xe6\x56\x59\x20\x38\x0b\xbb\x3a\xd8\x84\xd5\x18\x62\x6f\xb9\x79\x5a\x0e\xbd\x24\x20\x99\x4c\x86\xf0\x8d\xc4\x64\x3f\x9e\xa9\xcb\x27\xa9\x8a\x12\xb0\xe5\x44\x96\x31\x07\x2d\x3f\x10\x94\x7d\xf1\x28\xf3\x74\x9d\x66\xc2\x78\x06\x85\x1b\x6a\x0b\x14\x76\x1e\xab\xab\xf2\x6f\xc2\x6a\xb3\xf1\xf0\x61\x1a\xc1\xb8\x2f\xae\xa6\xa0\x02\xc5\x05\xc3\x03\x73\xe7\x33\x85\x40\x25\xd4\xe3\x5a\x40\x2a\x73\xa1\xc9\x9f\x86\xdd\x77\x92\xf2\xdf\xb6\x30\x18\x1c\x80\x84\x83\x9e\xe7\x97\xca\xae\x71\x83\xe4\xbf\x5c\xaa\xc2\x6c\x07\xeb\x35\xf7\x80\x2e\x97\x83\x6e\x4a\x89\x34\x55\x56\x05\x74\x77\x44\xdc\xfa\x35\x28\x3b\x9c\xe5\x45\xde\x78\xe7\x74\x97\x80\x60\xd7\xa1\x7f\x67\xf6\x12\xfa\x5a\xe7\x21\xac\xaa\x86\x59\x58\xe8\x52\x25\xcc\x0a\xbf\x4e\xd5\xf9\x5a\xfc\xf4\x86\xbf\x14\xab\x14\x1d\xb2\x29\x20\x50\xc8\xcc\x5a\x22\x5b\x2b\xe4\xfa\xa7\x6b\xa6\x7a\xe6\x6b\xb7\xb6\xc8\x92\x15\xcc\x1e\x6f\xa3\x62\xf2\xd2\x93\xdc\xb6\xad\x5f\x03\x9f\x1a\x13\xa4\xe8\xc0\x43\x23\x1b\x23\xed\x83\x2e\x33\x2a\xc3\x84\x37\xf7\x6f\x48\xbb\xad\x70\x68\xb4\xcb\xee\x30\xca\x7b\xd4\xb1\x69\x8d\x2f\xbf\x00\xc0\x38\xf5\x64\xd7\x0c\xa3\xcd\xec\xe8\xa4\x34\x63\x0a\xa3\xd9\xc5\xfa\xbb\x5e\x00\x51\x77\xce\x1c\x79\x46\x82\x63\x1b\x96\x82\xf1\xf0\x00\xa7\xa0\x11\xc2\xe6\x2d\x90\xc9\x1c\xdc\xbd\xca\x9a\x5b\xf2\x73\x49\x11\xbb\x6f\xfe\xdf\x7e\xf7\x6c\x61\xb6\x11\x63\xaf\x86\xf9\xf4\x54\x4e\x42\x77\x2e\x8c\xab\x54\x69\x1b\x78\xc9\x6d\xa9\xec\x55\x7c\x8a\x64\x87\xe1\xd1\xac\x5a\xa7\xf4\xcf\x9d\xe9\xfa\xec\x88\x35\xf8\xfc\x8b\xa1\x3d\xfd\x58\x03\x79\xa2\xee\x20\x1f\x96\x5a\x0f\x2f\xb4\x85\x88\x1f\x9f\x85\x49\xd0\x57\x08\xd9\x07\xe3\xe8\x7b\xfd\x2c\x9f\xa4\x19\x45\xb1\x34\x85\x20\xfc\x87\x1c\xc2\xaf\x70\xa0\xa8\x9d\x99\x82\x14\x71\x04\xd3\x50\x40\x2f\x58\xa4\xab\x07\x6b\x4f\x06\xc1\x73\x6d\xac\x38\x2a\x10\x5c\x67\x23\x63\xaa\xb8\xef\x98\x80\x65\x26\x9e\x9a\x80\x16\x87\xd4\xc6\x46\x53\x57\xb4\xc4\xd1\x29\xc6\x18\xed\x4b\x77\xa0\x09\x23\xa1\x89\x25\xd2\xa3\x68\xa5\x33\xa1\x56\xe3\xf1\x38\x92\x45\x3c\x7e\xb3\xd7\x46\xa7\x06\xc3\x78\x97\xcb\xed\xcc\xb4\xce\x65\xb6\x75\x55\xe2\x2e\x03\xdf\x4e\x33\x64\xfc\xe7\x29\xba\x3c\x5a\xb6\xff\x5d\xbd\xc6\xf6\xcb\xba\xce\xdb\x2d\xd5\xbd\x8b\x75\x3a\xda\x01\xc8\xf2\x3d\x5a\xc2\xe7\xdb\x2d\xaf\x3d\x8a\xcf\x98\x61\xc4\x17\xa1\x75\x00\xc2\x69\xb5\x6f\x65\xd5\x8f\xba\x8b\x8a\xef\x20\x10\x97\xd6\x96\xa8\xc4\xfb\xa0\x8a\x99\x2e\xcf\x45\xad\x40\xe8\x88\xda\xa0\x96\x53\xd3\xb2\xa9\x5d\xe5\xdf\x31\x59\x45\x3a\x2b\xd7\xdd\x98\x23\xc7\x2a\x6a\x7e\x90\xf8\xb7\x0b\xe8\x6e\xb0\xa2\xe6\x49\x0d\x19\x34\x99\xc6\x8b\xee\x56\xaa\x8d\xb2\x12\xd9\xa4\x39\xa0\xe3\x1c\x52\xdb\xe3\x9a\xc1\xa6\x21\x2a\xb4\xdd\xa0\x9b\x0f\xab\x7e\xb2\x2d\x96\x2b\x71\x14\x81\x5e\xc9\x51\x9b\x82\x50\x52\xb7\xf0\xa9\xe7\x2a\xed\xbd\x46\x00\xc9\x7b\x50\xfc\x0c\xd4\x93\x00\x15\x92\x92\x29\xa0\x41\xe6\xe0\xd7\xd1\x92\x2b\x45\x1e\x65\x40\x23\x94\x00\x5e\xe4\xf3\x38\x7a\xa7\x0d\x70\x05\x51\x6c\x98\xc2\xf7\xfe\x66\x2c\x7c\x27\xe8\x83\x7e\xfa\x86\xb3\x36\xf0\x0b\xb1\x09\xc0\xe5\x4f\x84\x2a\x5a\x1b\xf0\x49\x4d\xd0\x16\xbe\xf2\xa3\xb5\xb6\x5b\x1f\xa7\xf6\xe1\x51\x84\xe0\x9e\x7c\xbc\x8b\x70\xaa\x09\x59\xd0\xf4\x0d\x34\x68\x64\x77\xde\x08\x4c\xd7\xfc\x00\x8d\xa3\xb2\x0e\x38\xe9\x0c\x2d\x69\xa7\x5d\x16\xf1\x83\xbf\xe1\xaa\x6c\x5a\xc4\xaf\x40\xdf\xb9\xf6\x58\x89\x98\x92\x17\xe6\x36\x11\x63\xbb\xb3\x94\xb5\x92\x10\x0c\x10\x45\x94\xe8\xb0\xd9\x28\x2d\x76\x27\x90\xec\x89\xe7\xb1\x6b\xab\x15\x1a\x13\x03\xe8\x3b\x2b\x31\x1d\x50\x5d\x53\x44\x47\xe0\xec\x3b\xd4\xbd\x09\xae\xbf\x8e\xf0\x57\xad\x37\x9d\xa9\x6a\x57\x8d\x49\xe2\x0c\x8f\xd4\x48\x04\xe6\xca\xad\x96\x50\xa4\x4f\xf6\xa0\x36\xb7\xb5\xdb\xa0\x20\x01\x9a\x7b\x6f\xa6\x70\xd8\x01\xba\xd7\xa3\xdc\xe6\x21\x37\x00\xed\xa8\xa8\x6b\x43\xa6\xf6\x7b\x98\x61\x7f\xe7\x52\xc0\xc4\xcd\x03\xb6\xc3\x61\x37\x0a\x76\xfa\x83\x7d\xb9\x27\x75\xac\xd1\xb8\xdd\x83\xbe\x14\xc7\xfb\xae\x48\x4c\xf8\x79\xa6\x35\xf4\xd9\x21\x2d\x4c\x98\xde\x0d\x08\x06\x96\xb5\xa3\x66\x8a\x00\x00\x83\xa8\xab\x15\x38\xcd\x65\xa3\xfa\x40\x84\x1d\xdb\x56\x8a\xd5\x01\x9c\x91\x29\xdb\xda\x09\x48\x99\x5a\x86\x88\xb7\xb1\x82\x8a\x7d\x45\xad\x1d\x1e\x98\x72\x44\x8b\xdb\x99\x66\xe4\x55\x65\x9a\x38\xc2\xe5\x41\x92\x09\xd4\xb2\x63\x69\xa7\x6f\xa2\x5a\x33\x7c\x38\xbf\xe7\xee\xf2\xe2\xf6\xf2\xfe\x8b\xa5\x21\x71\x0e\xd0\xde\x79\x48\x3c\xce\xb7\x97\xef\x26\x1f\xae\xee\xe7\x6f\xa7\xb7\x2f\x91\x88\x44\xbf\x3a\x20\x13\xe9\x8e\x70\x45\x2f\xb4\x2a\xe4\x4f\x47\xdd\xc9\xa6\x54\x73\xb1\x47\x46\xbc\xc3\xee\xed\x53\x77\xb0\xd1\x26\x2e\xaa\x03\x2d\x25\x54\x28\xbc\xd1\x1c\x0c\x6a\xc0\x28\xbb\x4c\xb3\x0c\xea\xd4\x9c\x1b\x97\x8a\x4f\xec\xa4\x82\xfc\x61\x6a\x3c\x92\xa9\x33\xb5\xa8\x00\xc3\x82\x6b\xe9\xc1\x1a\x5b\x58\xa1\xb6\xb1\x13\x60\x52\x28\x53\xea\x83\x4e\x5d\xa5\x4a\xfa\x61\x20\x21\x54\xa9\xa2\x4e\xbc\x3b\x5a\xc4\x97\x2c\x43\x24\xc5\x6b\xa8\xae\xc9\x3b\xae\xb2\x3f\x59\xfd\xe4\x5f\xba\x2f\xc4\x43\x9c\x2a\x54\x4c\x2b\xa7\xf9\xae\x7d\xeb\x9e\xfb\x23\x00\xf3\x6e\x57\x52\x80\xaf\x1b\x38\x97\xfc\x42\xd2\x42\x20\x68\xb9\x77\x82\x3f\xa6\x98\xad\xa1\x97\xb5\x79\xb6\xa2\xd0\xce\x75\x0a\x1e\x71\x81\xdc\x35\x51\x9c\x95\x79\x21\x0d\x99\xe7\x93\x8f\x77\x33\x85\xd4\x9c\x74\x0b\x11\xb0\x35\x76\x81\xb9\x02\xba\xd2\x3f\x6b\x28\xa1\x04\x7b\x8d\xbe\xd0\xb5\x14\x2a\x47\x46\xbc\x2c\x93\xc6\xef\x0c\x1c\x8f\x94\x09\x71\x22\x00\x6d\xa2\x7f\x9f\x48\xd1\x34\x9c\x5a\x3b\x5e\xfa\x2d\x91\x82\xd5\xf7\x53\x57\x19\x24\x24\x22\xbe\xe4\xce\x69\xc9\x87\x1f\xba\x8b\x28\x87\xb3\x75\x13\x55\xb3\xd3\x07\xed\xa5\x7b\x6c\xee\xd7\xad\x74\xc2\xad\x34\xe0\x5e\x0f\x6f\x89\xe8\x41\x5b\x01\xea\x30\xa9\x7d\x38\xd3\x95\x61\x67\x90\x67\x63\xa7\xb1\xf5\xd6\xf1\x50\x42\x07\x05\x38\xaf\x6f\xae\x2f\xc3\xf0\xe4\xf4\xfa\xfe\xf2\x8f\x97\xb7\x95\x92\xbb\xab\x9b\x49\xa5\x6c\xee\xee\xfe\xb6\x56\x2d\xf7\xdd\xcd\xcd\xd5\x65\x23\xce\x79\x79\x3f\xfd\xa1\xd2\xf8\xdb\x0f\xb7\x93\xfb\xe9\x4d\xe5\xb9\xef\xa6\xd7\x93\xdb\xff\x0a\x7f\x72\x79\x7b\x7b\x73\x5b\xeb\xef\xc3\x45\x7f\xc4\xb4\xf2\x19\xed\xa6\xb8\x0f\xc8\x04\xa8\x4a\xad\x53\xfa\xf9\x38\xcc\xbd\x42\x14\xad\x0a\xf5\x60\x4b\x87\x38\xd9\x3e\x97\xd2\x6c\xa9\xf2\x1f\xb5\x50\xfc\x49\x2c\x14\xa6\x5d\x15\xc4\x2a\x9d\x84\xf9\x42\x33\xf5\x11\x79\xa7\xdf\x11\xe5\xfb\x1f\xc1\x69\xca\x0f\x7b\xee\x42\x38\xac\x7f\xc1\x3e\xdc\xef\xc6\x33\x55\xe1\x7c\x0b\xde\xaa\x50\xd6\x8e\x67\x8a\xc1\x2d\x13\x1d\xe7\x63\x38\xcb\x63\x6d\x56\xe7\xc4\xe0\x60\x65\x9d\x7e\x5c\x68\xfd\x78\x2e\xd5\x39\x68\x1b\xc5\xb9\x28\x0b\x7d\x0e\x01\x17\x4c\x48\xc9\xcf\x19\xe8\x9d\x91\xf2\xf3\xf3\x87\xf4\x49\xc2\xff\xc6\x0f\xc5\x3a\xfb\x3f\xf9\xe6\xe1\xa7\xb3\x55\x66\xce\xec\xbb\x67\xe1\xbb\x67\xfc\xee\x19\xbf\x7b\x66\x5f\xc3\xff\x6d\xb6\x68\xb8\x4b\xa2\xdc\x9c\xa9\x54\xe5\xd2\x14\x50\x9d\xf8\x6c\xd2\xc2\x13\x02\x6f\xa3\x57\xff\xfc\x67\x34\x36\xe2\x19\x13\x70\xdf\x8a\x42\xbc\x47\xcd\xf1\x5f\xff\x7a\x15\xe5\x85\x26\xda\x8a\x8d\x30\x9f\x4b\x59\x58\x1d\x36\x93\x71\x11\xfd\xdf\x99\x02\xa6\x9b\xf5\x76\x5e\xa0\x46\x8d\xda\x65\x92\x47\xff\x81\x6d\x4e\x11\x05\x23\xc9\x6d\x4b\x1d\xb9\x39\xa9\xc8\x5a\xb8\x41\x3a\x8c\xaf\xcf\xd9\x5b\x7a\x7e\x0f\x89\xf3\x39\xab\xc4\xfa\x1d\x00\x65\xfe\x39\x03\xb8\x95\x4c\x0b\x0e\xf7\x44\x6e\xf3\x82\x04\xa4\xc1\xb5\x9d\x91\x86\x53\xf1\x88\x13\x73\x28\x5d\xd2\x1d\x42\x2b\xb1\x4d\xd6\x60\xbe\x00\x2b\xd0\x5b\x98\x00\xc0\x92\xda\x13\x72\x87\x3a\x2e\xd2\x51\xc2\x97\x83\xec\x2f\xb4\x11\x2b\x4f\x1f\xca\xf4\xe4\xbf\xff\xf6\xfc\x7c\x14\xad\x72\xf8\x63\xf1\x19\xfe\x80\xf8\xc3\xa9\xc0\x64\x1a\x93\xe9\x42\x69\x43\x3c\xb5\x9d\x2f\x1f\x25\xc3\x5e\x1e\x90\xaa\xb6\x4d\xbf\x2b\x55\x92\x49\x9f\x4f\x5c\x31\x76\x33\xcd\xdc\x44\xa8\xf2\x40\xf2\x2f\xc3\x01\xa7\x68\x80\x44\x0b\x19\x0b\x2b\xf8\x1a\x7d\x63\x78\x5a\x2f\x0b\xa9\x50\xcf\x31\x1e\x10\x58\xa0\x4e\x02\xb1\x21\x08\xa6\x02\xd5\xe6\x7a\x03\xbc\x9b\x29\x38\x00\xef\x11\x85\x6a\x54\xff\x15\x30\xe7\x21\xa6\x14\x20\xb6\x20\xc1\x9f\x64\x4b\x1c\xeb\xb0\x4a\x63\x55\x9d\x8d\x50\x89\xc8\x61\x07\x2e\x0d\xf8\xb1\x4c\x24\x9a\x03\x1d\x61\x40\xdf\x5a\xf6\x42\x6d\xc9\x67\x1c\xce\x04\x22\x5e\x05\x63\x1e\x05\x83\xc0\x3b\x01\xb9\x42\xeb\x2f\x8e\x67\xca\xb1\x4e\x62\x34\x8d\x79\x8c\x37\x5b\x2a\x71\xac\x4f\x7a\xca\x3a\x11\x4d\xf7\xc8\xf3\x7a\xd5\x9f\x05\x46\xe3\xd0\x69\x02\xe0\x5a\x21\xe9\x06\x13\x83\xbc\x06\x1e\x50\x69\xf2\x37\xf6\x18\x02\x9c\x63\xe1\x61\xc0\xd2\xdc\x2f\x86\x23\xa9\x24\x3d\xd0\x36\x0f\x11\x44\x48\x40\x50\xdb\x2a\x3a\x56\x9b\x0a\xb6\xfb\xa8\x7c\xed\xf1\x8d\xb6\xf1\xd2\x5f\xbf\x68\xac\x23\x8c\x0c\xb7\xf2\xe6\xee\x05\x11\x80\x47\x36\x94\xb8\xd8\x28\x71\x5a\xa2\x72\xc2\x0c\x07\xa9\xbd\xb2\x0a\x6b\x01\x14\x33\x45\x37\xf0\x28\x5a\x4a\x51\x3c\x40\x68\x3c\x7f\x42\x61\x8c\xd7\x7d\xf1\xac\x7d\x74\x85\x71\x32\x21\x9c\x5e\x69\xdc\xab\xff\xf8\x18\xf8\x8a\x45\x5c\xa0\xeb\xb8\x0b\x41\xd0\xa9\x2a\x30\x59\xad\x02\xf1\x80\x79\x60\xd8\x45\x7f\x47\x33\x80\x8f\x07\xd3\x84\x99\xd8\xa2\x0b\x30\xaa\x8f\x03\x7f\x61\x05\x0f\x7e\x1d\x3a\xf8\x03\xe1\x08\xf5\x48\x14\x8d\xc7\x73\xe6\xbd\x73\x21\x54\x1a\x78\x5e\xba\x0e\x55\xcf\x44\xc0\x00\x0e\x4b\x5c\xb6\xaf\xee\x04\x94\xc8\xa5\x61\x4c\x48\xfc\x56\x44\x94\x78\x48\x4d\x72\xb6\x11\xa6\xd8\xf2\xf6\xcd\xd2\x85\x11\x66\x0b\x84\xe6\xd1\xc4\x18\xfd\x7c\xea\x59\xe8\x14\x2d\xf7\x22\x7f\x3c\x31\x40\x0d\x00\x32\xed\x03\x30\xd3\x8a\x27\x53\x09\x96\x27\x72\x7e\x18\x76\x4d\x17\xfe\x4e\x6b\x3f\x46\x16\x66\x3b\xb7\x1b\x71\xbd\xe9\x94\x14\x83\xd2\xae\x86\x2b\xb9\xfb\xc1\xe2\xc0\xfd\x3c\x00\x16\xa7\xb2\xaa\x5f\x0f\x2c\x4e\x0b\xe2\x4d\x13\x16\x67\x7a\x3d\xbd\x9f\x4e\xae\xa6\xff\x5d\x6b\xf1\xe3\x64\x7a\x3f\xbd\xfe\xe3\xfc\xdd\xcd\xed\xfc\xf6\xf2\xee\xe6\xc3\xed\xc5\x65\x7f\x9d\x6b\x73\xf4\x5e\x05\x3f\x8b\xc2\x7e\xbe\x8d\xee\x03\x17\x3c\xa6\x2b\x91\xfe\x4d\x9c\x01\xb0\xab\xec\x61\x4e\xd5\x6a\x04\x07\xf5\xdb\xe8\xd2\x98\xe9\x5a\xac\xe4\xfb\x32\xcb\x20\x50\x86\xb9\x81\x17\x46\x82\xe1\x39\x8a\xde\xeb\x64\x1a\xbc\x07\x09\xcd\xad\x9f\x01\xfd\x8b\x24\x31\x32\xcf\xb1\xfb\x11\xf5\x1f\x84\x85\x5c\xb2\x34\x85\x45\xc5\x93\x48\x33\x6b\xbf\x7d\x0b\x34\x66\x7a\x49\x84\xb4\x23\x97\x7a\x19\x7d\x2e\x75\x21\x22\xf9\x53\x0c\xb5\xdd\xed\xfb\xe4\x4a\xaf\x5e\xd6\x06\x6a\x3f\xd3\xbb\xe1\x30\x3a\x8c\x14\xc0\xcc\x9e\xef\x43\x83\x4f\x5f\xf9\x03\xbe\x4a\xcc\xf7\xad\xad\x17\x45\x76\x82\x5a\x93\x2b\xbd\x6a\x47\x59\x05\xed\x9a\xa0\x61\x3d\x5f\x27\x54\xae\xe9\x55\x94\xa7\xea\x71\xa6\x3e\x3e\x48\x15\xe9\xd2\xe0\x8f\xc0\xcc\xb7\x6a\x66\x56\xe6\x0f\x32\x89\x74\x59\x8c\xa2\x67\x19\xad\xc5\x16\xd5\x66\xb0\x09\x1c\x4a\x27\x6c\x19\xb8\x45\xec\xdb\x59\xaa\xac\xb4\xd8\xa4\x9c\xd9\x54\x5f\xfa\x53\x58\x5c\x8c\x6c\x20\x8e\x07\x1e\x1a\x56\xbe\xf1\xfc\x20\x21\x73\xdd\x47\xc4\x39\xf4\x43\x92\x1b\xd8\x0b\xb4\x7e\x2c\x37\x1e\x03\xe5\x15\x03\x0d\xc2\x74\x3f\xe9\x34\x89\x92\x72\x93\xa5\xb1\x93\xbb\xcf\xda\x74\x02\x3d\x61\x0a\xde\x1e\x40\x4f\xb5\xc4\xd2\xbe\x0f\x6b\xc9\xef\x0b\x62\xa4\x3d\x90\x4f\x2f\x0c\x7a\x15\xb0\x47\x97\xb9\x34\x67\x85\x49\x57\x2b\x50\xc0\x39\x5b\xf8\xeb\x47\xc5\xf2\xa8\x1b\xc7\x27\xc6\x86\x65\x2b\x99\x5e\xa5\xb1\xc8\xc2\xb4\x15\xef\xef\x76\xb0\x3b\x7c\xec\x37\xa5\xd9\xe8\x1c\xb2\x23\xdc\x80\x3a\xcb\x89\x37\x46\x02\xf2\xd3\x1c\x09\xb9\x8f\x27\x0a\x9f\x2e\x23\x6b\xa0\x33\xa3\xa5\xaf\xeb\x62\x52\x60\xbe\xe1\x7c\xdf\x0c\x3b\x8d\xdc\x65\x0a\x52\xa8\xf5\xb3\x92\x06\x34\x58\x70\xe8\xdb\x2f\x55\x1a\x74\x13\x07\x45\xed\x32\x4f\x18\xe6\x7c\xe9\x52\x6c\x30\xf7\x7e\x95\x3e\x49\xf5\xe5\x51\xcc\x82\x0e\x62\x11\x3f\xc8\x39\xeb\xe5\xa7\x16\x59\xee\x02\xd8\x53\x58\x31\x3c\x67\x28\x4a\xa3\x14\x90\x23\x62\x34\x9d\x70\xc4\x4d\xd9\x85\xb0\xd3\x83\x2e\x25\x00\x2e\xad\xfa\xe7\xea\xd7\xc1\xb1\x18\xdc\x2e\x49\xee\x50\xed\xbf\xdf\x11\xb0\xca\xf4\x02\x6a\xac\x9a\xe8\xdc\xe1\x0d\xdb\x05\xf4\xfb\x24\x8d\x49\x93\x7d\x24\x13\xcf\xc9\x8d\x7b\xb5\x6f\x80\x8e\x17\xce\xf5\x04\x42\x21\x45\x5f\x5d\x4d\x73\xaf\xe7\xf0\xef\x32\x13\x20\xb6\x91\xbb\xe0\x86\x53\x24\x18\x61\x0f\x1c\x13\xba\x87\x68\xb0\xf9\x2d\x47\x2d\x74\xb3\x2a\x6c\xc7\x5c\xfa\x42\xb2\xfe\x45\x3e\xa2\xb4\x07\xeb\x90\x5c\x7d\xcf\x3e\x30\x49\xbc\x74\x18\x78\x06\x12\x47\xb7\x88\x95\x8c\xa0\x41\x2b\x5a\x9f\xf7\x7b\x0a\x77\x1d\x55\xb7\xfe\x02\x27\xaa\x2c\xb4\xf7\x56\xc2\xf7\x4c\x01\x3c\x24\xcc\x35\x04\xb1\x31\x4d\x5a\xc9\xb9\xfd\xf5\xc1\x47\xb3\x4b\x55\x39\xce\xe3\x34\x89\x36\x46\xb2\xdf\x7b\x2b\x0b\x57\xd9\x90\x31\x1e\x33\xb8\x75\xdd\x57\x57\x4b\xbb\xb8\x7a\xc3\x95\xe3\x82\x13\x56\x33\xed\xee\x7a\xa3\x95\x54\x94\x1d\xa0\xf4\x4c\x51\xe3\x4c\x93\xe2\x3c\xc3\x95\x24\xcc\x11\x19\xe4\x98\xd2\x23\x73\x9d\x3d\x51\x08\x20\x40\xdd\x03\x3c\x6e\x3b\xc0\x0b\xab\xdb\x58\x4d\x1e\x62\x53\x94\x91\x07\x39\x0a\x35\xae\x10\x23\x57\x69\x5e\xc8\x30\x6f\x35\x7c\xff\x64\x2c\x00\x15\xe5\xbf\x6f\xea\x3b\x59\x00\x76\xdd\xe2\xf6\xd4\xee\x31\x9e\xed\x46\x26\x53\xf7\x5e\xff\x66\xa8\x24\x9f\x27\x81\x90\xa8\xdc\x02\xb8\x07\x50\x7b\xc9\xb1\xd8\x35\x77\x78\x79\x6e\x91\x1c\x91\x3f\x83\x74\xc3\x12\xad\x4a\x61\x84\x2a\xa4\xcc\x67\x8a\x02\x27\x58\xb4\x1d\xd6\x25\x2d\x2b\xb4\x0f\xfe\x6e\x8e\x75\x5e\x60\x0d\x24\xbc\xb2\x14\x69\x56\x9a\x4e\x75\x19\x77\xe5\x41\x05\x17\x7d\xb3\x74\x01\xcd\x46\x6d\x8b\xe6\x52\xab\x83\x53\xe4\xea\x86\xea\x61\x8f\x6a\xe6\x71\xc7\x27\xb0\xc8\x1d\xbe\xde\xce\x57\xd2\x91\x6d\xfd\xff\xf3\xf9\x46\xef\x21\xf1\x88\xe2\xb4\xb5\xb1\xfc\x73\xc3\xa6\xef\x09\xff\x7d\xee\x42\x10\x14\xf9\x23\x78\xce\x77\x99\x12\xbb\xfd\x83\xbf\xff\xdd\x6e\xff\x7a\xa7\xec\x82\x5d\xfb\x20\x54\x92\x01\x1d\x6a\x51\xbb\x81\xdc\x19\x00\xd8\xfe\x82\x85\x63\x77\xba\x21\x64\xef\xcc\xe3\x46\xea\xe7\xae\x79\xaa\xe5\x8c\xee\x48\x21\xac\xf4\x52\xcd\xe4\x6c\xcb\x20\xf2\x37\x3b\xd1\x47\xb8\x03\xdb\xbd\x05\x97\xe9\xea\xf4\xf0\x39\x43\xf9\x34\x9c\x96\xfd\x43\x53\x52\xc6\x74\x14\xe9\xfe\x72\x14\x1a\x47\x1e\x46\xc8\xfc\xb2\xc2\x2c\x04\x29\x9a\x29\x62\x97\xc1\xa0\x11\x44\x0b\xb0\x10\x37\x8f\xbe\x71\xe9\xc0\xdf\xfc\x81\xcb\x30\xb7\xd1\x12\xe6\x1a\x6a\x9d\x75\x1c\x97\x06\x22\x3a\x64\x75\x46\x12\xef\xa6\x7d\xb0\xe4\x26\x78\x23\xbb\x38\x3c\xaa\x4f\x6d\xda\x83\x73\x33\x54\x3e\xea\x1e\xac\x4b\xe4\xc9\x71\x77\x21\xe1\xce\x9a\xbc\x88\xf2\x42\x6e\x5a\xa5\x52\x45\xe9\xaa\x5e\x27\x47\xc1\x05\xb5\x31\xda\xec\x86\x25\xfb\x41\x6c\x3a\xcc\x10\xa4\xbb\x38\xb6\xc5\x5d\xcb\xe0\x8a\xb8\xea\x77\x25\x70\x6d\x00\x9c\x2a\xf1\x84\x34\x67\xcf\x41\xab\x7d\x91\x7a\xe8\x7d\x48\xe3\x1c\xc2\x1e\x45\xf6\xfb\x64\x5b\xf5\xd5\xfd\x73\x74\x7c\x21\x30\x85\x39\xb1\xc1\x05\xc2\xe2\x85\x48\x7e\x87\x20\x2d\xd6\x17\x86\xdb\xea\x59\x8e\x23\x51\xc6\x3c\x30\xe4\xc9\xa5\xe4\x00\x94\xbe\x4e\xc9\xb9\x0b\x63\xec\x29\x04\x55\x04\x05\xce\x57\x58\x0c\xf2\x7b\x38\x6c\xb1\x1f\xab\xc8\x98\x95\x29\xd6\xe9\x20\x08\xd1\xda\x60\x3f\xd0\xed\x9c\x48\xa5\x0b\x19\x89\x48\xa5\xd9\xb9\x2a\xb3\xec\xfc\x5a\x2b\x2b\x98\xf3\x74\x85\x55\x21\xe0\xe3\x47\x4e\x63\xcf\x8d\x5b\x09\xee\x04\x47\x00\x84\xb3\x1d\x12\xc6\x9d\x0a\x2b\x31\xed\x12\x64\xdb\x99\xb2\x6f\x10\x3d\x1f\xe4\xa0\xa4\xae\x48\x1d\x7b\x63\xb2\x12\xea\x0b\x00\x9b\xb6\x61\xe3\x2d\x1b\xac\x8f\xdf\xe3\xa8\xe2\x70\xc8\xa7\x3c\xc2\xee\xbb\x0e\x0a\xe7\xa8\x35\xce\xaa\xc6\xf0\xd6\x42\x66\x1a\xe9\x8a\xbb\x84\x80\x5e\x8b\xf4\x18\xaf\x6f\x38\x04\x6c\xac\x73\x04\x33\x35\xe1\x47\x1c\xd9\xa9\x63\xf6\x23\x90\x75\x20\x6a\x72\x36\x87\x0b\x01\xd1\xc7\x75\x7c\xc4\xbe\xc8\xf1\xcd\x5d\x0a\x44\x80\xe4\x7e\x74\xf6\x2c\x22\x1e\xb2\xbe\xc8\x5f\x34\xec\x50\xf5\x46\xad\xdb\x2f\x7b\xb2\x97\xd9\x5c\x72\x6a\xeb\x80\xfd\xf8\x73\x06\xb0\x5f\x92\xed\xa5\x95\xda\x05\x9e\xb3\xad\xd1\x8f\xf6\xa5\x6f\xe1\xd9\x3b\x45\x6c\xef\x33\xa2\xb9\xcd\xf5\x92\xd3\x9c\x87\xdf\xe9\x0d\x3c\xbd\x61\xc1\x95\x10\x43\x23\xc4\x9d\x6b\x6e\x9c\x2e\x8b\x5a\xab\x39\xd9\xdc\xc3\x06\x5b\x9f\xb0\x1b\xf5\x0e\x5f\x7f\xaf\xb3\x34\xee\x8f\x48\xf1\x75\x05\xe4\x82\x0d\x17\x3f\xd0\x70\x4a\xc4\xce\x11\xec\x08\xc0\x50\x4b\x21\xe3\xc2\xfb\x94\x9a\x1f\xb7\x8f\xf7\x92\x4d\x08\xd7\x0a\x40\x1c\x7b\x5e\x59\x7b\xd5\x40\x99\x2f\xa0\xa8\xa0\x72\x0d\x79\x9f\xe0\xcc\x8c\x05\xd9\x1c\x95\x81\x80\xbc\x7a\x7e\xd0\x99\x1c\xa1\xd3\x0a\xc2\x3d\x33\xb5\x91\x26\xd6\xd6\x70\x8b\x12\xfd\x4c\x65\x71\x69\x96\x78\xa8\xb2\xd7\x10\x7d\x86\x18\xd1\x1b\xc2\x63\x95\xce\xa9\xe8\x38\x32\x77\x6f\x5b\xe6\x64\x38\x4e\x79\x3f\x5d\x38\xa9\x6f\x17\x7c\xa4\x20\x0f\x4e\x05\xd1\xda\xd5\xdc\x43\x76\xd2\x2b\xe3\xd9\x6f\x85\xa5\x43\xa1\x82\x4b\x07\x09\x55\x8b\xda\xba\x12\x5e\x41\x7d\x2a\xa1\xf4\x1d\x33\x17\x31\x62\x60\x8d\x46\xc8\x1a\x10\xa8\x9a\xf8\x42\x54\x5a\xd4\x99\xf2\x0e\xb1\x57\x79\xa8\xa6\xb4\xae\x33\x56\x76\x73\xc0\x6a\x14\xbd\xaa\x7c\xe8\x2b\x28\x8d\x56\x1a\xfa\x23\xa7\x45\x65\x6a\x60\xbb\x8e\xa2\xb4\x98\xa9\x34\xc7\x9d\x69\x64\x26\x9f\xec\xe8\xe8\xec\x04\xbe\x76\x49\x20\x79\xee\xb3\x21\xe7\x41\x70\xaa\xbc\xa3\xf2\x80\x22\x24\x13\x96\xd8\x0a\x48\x98\x03\xae\xc3\x52\x01\x08\x95\xfc\x09\x09\x25\xad\xf1\x8b\xfe\xfe\x44\x2a\x1e\x1f\x84\x01\x10\x2d\x7c\xa6\xa6\x4b\xc8\x57\x86\x2c\xe9\x04\xa2\x9b\xc2\xc1\x12\xb9\x7a\xa7\x94\xd2\x37\x35\xa5\x7b\x3b\xa6\x38\x84\x13\xc6\x93\x24\xad\xd9\x5d\x00\xb1\x38\xcc\xab\x92\xa2\x78\x88\xd2\x62\x04\x85\x6a\x2c\x38\x66\x4a\x24\xc4\xc6\x40\xcd\xd9\xa9\x81\x7d\xdf\xb3\xce\xf4\xfb\x85\x7e\xea\xd3\xf3\x8e\x0d\xf3\xe1\xa9\xde\x64\x42\xcd\x51\xa0\xfe\x0c\x81\xbe\x00\xe9\xb9\xcb\xb7\x55\x2e\xe6\x8e\x79\xf1\x24\xe3\x74\xda\xcf\x6d\x05\x7f\xdd\xaa\x75\xdc\xd1\x08\x37\x83\x07\xd7\x60\x6d\xdd\x95\x00\x90\x3b\xd9\x44\xec\x72\x1b\x2e\x05\x7c\x0c\x50\xd4\x5c\xcf\xbc\x5b\x77\x05\x01\x79\x07\x7c\xad\x01\xa9\x21\x2b\x5f\xbb\x43\xea\xcb\xbe\x7f\x2c\xa4\xa1\x30\x1d\x14\x0f\xd9\x31\xac\x97\x8d\x89\x74\xba\x15\x9a\xb1\x91\x8f\x8e\xa6\xda\xf9\x99\x31\xd1\x47\x46\xb9\xb6\xb6\x0e\x7b\x3d\xda\x91\xbc\x43\xb3\x44\xb7\x04\xd3\x4f\x59\x6f\x5c\xe5\xfb\x1b\x5c\x27\x80\x7c\xd9\xd1\x54\x45\xec\xbd\x18\x45\xb3\xdf\xe2\xce\xca\x67\xbf\xa5\xd4\x75\x02\x84\x67\x32\x6e\x3a\x3f\x89\xa3\xe2\xae\x78\xdf\x31\xc3\xc5\x1f\x38\x22\x89\xde\xcb\xc3\x77\xca\x99\xd9\x97\x05\x3b\x28\xa2\xc0\x24\xb8\x05\x36\x40\xd7\x24\xda\xa1\x5b\xa6\xc8\x06\xd2\x12\x53\xc6\x85\xff\x60\x47\x2a\xfc\x1d\xbf\x68\xa7\x68\x53\xd2\x8d\xea\x48\x7c\xb5\x99\x29\x6e\x8d\x7c\x74\xc4\xa5\x5d\x6f\xaa\x49\xa6\x1d\xec\x55\xf0\x5b\x33\x5c\x24\xa0\x90\xfa\x3a\xf0\xba\x1c\x00\x3f\xf8\x42\x7a\x2a\x8b\x71\xe4\xe9\xdc\x41\xf5\xe8\x61\x8e\xce\x32\xa6\x4d\x46\xad\x2d\x48\xc6\xc9\x4b\x28\xb0\x5e\x96\x56\x1c\x05\x55\xe8\x33\x05\x14\xe2\xcb\x14\x52\x3d\x68\x5e\x66\xea\x07\x9d\x73\xed\x47\xee\xe7\x83\xd3\x06\x68\xda\x5e\x39\xd4\x4c\xfa\xc1\x5b\xb8\xb6\x97\x18\xc0\xae\xd1\xa8\x40\x16\x16\x15\x70\x6d\x75\x69\xfc\x47\xc5\x42\xcd\xd4\xdf\xed\xf4\x30\x33\x36\x2d\xab\x5e\xe2\x21\x66\xda\x99\xe8\xf5\x27\x6c\xf4\xf5\x1f\xde\x7c\x7a\x83\x35\x58\x65\x0e\x40\xc5\xa3\xea\x15\xe2\x00\x49\xca\x2c\x83\x4c\x65\xfe\x02\x57\x3a\xe5\xbb\xe8\x25\xc5\x24\x2b\x67\x4f\x02\xe1\x9d\xd4\xc1\xde\x1b\x3b\x89\x62\x51\xc4\x0f\x67\xac\xcd\x85\x6c\xe1\x29\xd3\x96\x13\x62\xa9\xd5\xb5\xda\x31\x39\xac\x05\x66\xd6\x8e\x08\xa4\xb2\x5f\xec\x27\x40\x2c\xe5\xbe\xb2\x2b\x43\xba\x1d\xdc\x9c\x9e\x83\xc3\x6b\x7a\xee\x71\x86\x21\xf5\x2e\x54\x72\x1b\x2b\xb1\x96\x49\x34\x43\xd4\xbe\xd9\x6f\x79\xf9\x67\x6a\xb3\x18\x67\xdb\x65\x41\x25\xc9\x76\x5a\xc6\x00\xd5\xb7\xe3\xa6\x9b\x27\x4d\x53\x69\xc7\x74\x77\x1a\x5b\xed\xfa\x8e\x9b\x1d\xd7\xd3\x70\xa5\x05\xdd\x3e\x6e\x7e\xee\xaa\x71\xa1\x2a\xa6\x0b\x10\x2c\x13\x1d\xb4\x55\x72\x03\xc5\xca\x9f\x4f\x64\xda\x84\x7a\xdf\x34\x46\xc8\x6d\x25\xb2\x2d\x24\x0c\x8d\x66\x0a\x8b\xa3\x01\x1f\x61\x1b\x67\x69\x4c\xd4\xce\x55\x5d\x48\x3e\x49\x55\x5c\x52\x35\x10\x67\x26\x4d\xd5\x52\x1f\xa3\x10\xb9\xea\xa2\xa3\xe8\x8b\xa6\x55\x8d\x47\xf8\xb2\x29\xef\x74\x8c\x8d\x84\x8c\x9d\xc5\x36\xc8\x64\x70\x5b\x7c\x44\xe0\x9f\x50\x3f\x1e\xfd\xa5\x5c\xe8\x8c\x0b\xf0\xa7\x6f\x23\x6d\x00\xd5\xa8\xd0\xf4\xa3\x34\xe9\xba\xc7\x52\x95\xc8\x9f\x8e\xaa\x82\xe9\xbf\x92\x58\xc5\xb3\xdd\x04\xe0\x39\xf5\x8f\x85\x73\x64\xa4\xbd\x2e\x0a\xb6\xe2\x1a\x4f\xe5\xf5\xb0\xea\x24\x2b\x1e\x20\xd6\x89\x59\x36\x7e\x52\xd7\x62\x1b\xc5\x0f\x42\xad\x02\x33\xda\x4e\x9f\x91\x1b\x6d\x10\x65\xf6\x09\xca\xcd\xb5\xe1\x2c\x63\xca\x9d\xa5\x54\x1f\xe7\x03\xc6\x08\xbb\xe6\x04\x59\xb1\x5a\x19\xb9\x82\xc2\x8f\x0a\x39\x21\x4a\x50\x07\x3c\x84\xfd\xf4\x25\x4f\x9f\xa6\x02\xa9\xcb\x72\x29\xcc\xd6\xa5\x9e\x12\x44\xb3\x9b\xba\xc6\xb4\x8e\xa2\x54\x8e\x47\xd1\xef\x7c\x56\x81\x8c\xb5\x72\xb9\xab\xed\xdf\xb0\xa9\x79\x6b\x77\xc8\xa2\x96\x52\xa5\xf6\xb1\xc3\xef\x1a\x40\xcf\xad\x9b\x66\x5f\xe7\x19\xc7\xbb\x29\x93\x25\xaf\x2b\xf8\x2d\xfb\xcd\x91\x6d\x69\x83\x7a\x22\x90\x6e\xf9\xa2\x8e\xca\x91\x6c\x13\x3f\x95\xca\x34\x20\x10\xf8\x52\xd6\x58\x57\x4d\x5c\xfb\xb4\x7f\xe8\xb0\xc4\xf8\x26\xac\x39\xf2\x1b\xbb\x01\xe7\xc9\x1c\xca\xd0\x8c\x40\x5f\xec\x4e\xd3\x26\x5d\xa5\x4a\x14\xda\x44\xaf\xdf\x33\x3a\xce\x1b\x87\xe8\x06\xb3\x78\x8a\x4d\xd9\x42\x2b\xdf\xae\xeb\x43\xca\x84\x4c\xe6\xfb\x55\x16\xb7\x11\xe0\xec\x4c\x09\xb2\x4f\xe5\x85\x58\x6f\x42\x50\x0c\x87\xcb\x4e\x33\x93\xe1\x24\x44\x3c\x30\xf0\x2a\xa5\xb9\x4f\xf3\x9c\x29\xf2\xc5\xe2\xba\x69\xd3\xc2\xec\x56\xff\x4a\xd0\x5b\xe6\x07\x16\x7a\xa1\xde\x38\xe0\xed\xde\x18\xd6\xed\x15\xbb\xa8\xbd\x1e\x5a\x51\xec\xe0\x43\xb1\x46\x3f\x87\x3b\x02\x4d\x0a\x27\x86\xad\x4c\xe6\x7a\x96\x8b\x4c\x97\x49\x44\xf7\x0b\xc5\xc3\xcc\x18\x65\x1d\x80\x66\x8c\xc7\x5d\x15\xc4\x7b\x22\x2d\xbb\xf3\x0d\xef\xb5\xef\x70\xf8\x5d\x6b\xbd\xd8\x8e\xa3\x45\x33\xbb\x9f\xb7\x83\x42\xc1\x3f\x88\x4d\x7f\x55\x92\x60\x4b\x0d\x73\x08\x43\x6e\xc1\x96\xb3\xdf\x31\x5d\xce\xff\x06\x15\xbc\xfb\xb9\x66\x18\x49\x1b\xf6\x73\xe8\xba\x6c\xc1\x18\xa9\xe7\xe9\x1d\xdb\x1d\x27\xcb\xf7\x77\xb5\x11\x46\xaa\x62\x0e\x3d\xee\xd7\x19\x74\xf2\x1e\x5e\xaf\x5c\x7f\x83\x5c\x50\x7f\xbd\xd7\xe8\x59\xe4\x72\x9d\xbf\x45\x77\x64\x4b\xe7\xcc\xca\x61\x6f\x9f\xd7\x29\x04\xff\x83\x28\x8c\x5b\xb8\x8e\xe5\xa2\x0f\x3a\x60\xf6\x82\x0f\xaa\x88\xce\x41\x1f\xe4\x47\x8f\x68\x97\xb6\x15\x72\x2b\x50\x92\xb6\x15\x65\xfc\x33\xbf\xe7\xb0\xf0\xc1\xc7\x03\x23\x51\x44\x76\xfd\xb2\xe8\x1f\xd2\x68\x5f\x20\x4f\x4c\x7f\x41\xc3\xbd\xda\xd7\xe1\xb8\xd2\xa8\x5d\x21\xa2\x71\x08\xe9\x09\x3f\xa1\x8a\x28\xb4\x63\x16\x5b\x56\x2e\x3b\x9c\xd7\x1b\x19\xcf\x0f\xe0\x42\xf5\x15\x48\xfe\xba\x0e\xe4\x3b\xbb\x5a\xdc\x65\xc1\x07\xf4\x1c\xac\x24\xc2\x1c\x58\x8b\x0d\x25\xda\x00\x25\xe2\x32\xaa\xbb\x8d\xc7\xf0\x11\x7f\xfd\xcf\xbf\x8d\xbb\x10\xe9\x61\xe8\x07\x33\xde\xbf\x33\xa9\x54\x09\x84\x81\x44\xe2\x19\x55\x43\xc2\xd4\x5d\xd0\x06\x3b\x37\xe4\x11\xba\xd6\x31\xeb\xd2\xd4\xa6\x1c\xc8\xab\xdf\xe2\x69\x12\xd2\x09\xb9\x0d\xee\x21\x21\xdc\xca\x80\x93\xa0\x43\x9f\x1b\xd3\x38\x5b\x7a\xd8\x63\xf6\xda\xe5\xd3\x17\xd2\x54\xbb\xc0\x29\x86\x0c\x9f\xcd\xfa\xf7\x5a\x67\xc7\x9a\xf6\x22\x63\x68\xad\x39\xa0\x55\x1e\xa3\xc9\xe0\x06\x70\xe6\xed\xf4\xad\x73\x33\x3b\xb4\x07\x32\xc6\x1c\x56\x34\xc4\x40\x69\x08\x10\x79\x44\x3a\xf6\xee\x6c\xa1\x7c\xd3\x12\x69\xd8\x33\xeb\x09\xda\xc0\x10\xa5\xe3\x7a\x6a\xf8\x1a\x82\x4c\x6d\xe1\xc7\x08\x15\xb1\xb5\x11\xee\x65\x87\x21\xb6\x64\xad\x2b\x67\x93\x85\x95\xf3\x6e\x1e\x83\xbe\x79\x3e\x11\xd1\xda\x1a\x75\x74\x81\xcc\x54\x70\x59\x60\xcd\x18\xa7\x95\xb9\x59\x6b\x33\xd5\x2a\xdb\xf0\x68\x53\xed\x18\x78\x94\x5e\xcf\xd1\xdb\x10\xb9\x14\x02\x20\xb1\x5e\x2f\xac\xb9\x84\x88\xe3\x64\x2d\xc3\x2d\x37\xe1\xea\x53\xe7\xd9\xe0\xdb\x0a\xe1\xaf\x6a\x73\xef\x52\xba\xc2\x42\xde\x50\x64\xed\xd2\x04\x43\xd5\xe2\xb4\x48\x2e\xed\x72\x76\x52\xff\x02\xe0\xfd\x7b\x16\xdb\x1c\x60\x5e\xad\xdd\xbe\x5c\x7a\xa2\xec\xd0\x8e\x70\x96\xa4\xab\x6c\x26\xcc\xf4\x92\xd0\x9f\xe9\x5b\x52\xac\x4e\x90\x19\x03\xda\xfa\xaa\xaf\x57\x79\xfb\xe4\xfc\x3c\x4e\x1f\xd3\xeb\xf4\x41\xaf\xeb\xbf\x87\x9f\xa7\xc7\xbe\x3f\xd2\xcd\x10\x5c\x93\x46\xc7\x44\x50\x56\x44\x80\xfe\x8e\xe2\xd8\xf6\x3d\x8a\xd6\x22\x55\x74\x0c\x0a\x63\x05\x64\x22\x17\xe5\x6a\xd5\x69\xfd\x66\x7a\xf5\xa2\x91\x40\x06\x70\x09\x9e\xef\xa8\x4c\xc9\xfa\x40\x49\x76\x59\x9a\xbf\x1c\x37\x47\x6f\xdd\xe2\x29\x1c\x15\x53\xee\x09\xa3\x3d\xcb\x34\x93\x5f\xc6\x37\x71\x22\x47\xcb\x74\x88\xa3\x85\xc3\x85\x90\xc6\x4c\xd8\x74\x1c\xd0\xf9\xd5\x03\xf3\x65\x3c\x30\xad\x2e\xe6\xfa\x08\xb1\xf8\x6c\x9e\x56\x15\xe0\x9e\x11\x1e\x58\x63\xea\xc0\x08\x60\x54\x04\x70\x9e\x4b\x95\xe4\x40\x11\x78\xfa\xa2\x53\xb8\x7d\x8e\xaf\xc5\xdc\x11\xa5\xba\xd3\x6b\x19\x41\x57\x39\x82\x7e\x45\x94\x29\x3e\x82\x04\x08\xfb\x81\x3e\xb4\x43\x81\x23\xb8\xae\x30\xc4\x94\x78\xa5\xf5\xb5\x92\xcf\x91\xbd\x0d\x46\x61\x44\x38\x58\x1e\x40\x83\x7c\x43\x0c\x45\x3e\x81\xcc\xc8\x58\x9b\x04\x50\x77\x56\xc2\x24\x90\xb6\x48\x47\x32\x13\xf1\x23\xd0\xf0\xc3\x85\x89\x3d\x52\xd4\x9a\x81\x69\x30\x93\xc2\xb7\x96\xaa\x18\xd9\x62\x98\xd2\xd3\x8d\x0f\x5f\xcf\x23\x11\x1b\x9d\xa3\x27\x86\xd9\xd7\x89\xf6\x3b\x60\x3e\x86\x1e\x3b\x9d\x28\x22\x3f\x0a\x68\x67\x12\xe0\x1d\xca\x9f\x36\x99\x50\xd5\x33\x89\x9f\x5b\x18\x01\xac\x45\x9d\x3b\xdf\x15\xec\x7e\x51\xe0\x81\x90\x75\xc4\x1f\x2b\xd4\x3e\x8d\x14\xc9\x36\x2c\x6b\x4c\x15\x51\x09\x88\x64\x9d\x2a\xbb\xf4\x0c\x67\xeb\xe4\x2b\x34\x1d\x8b\x0c\x73\x37\x00\xf5\x2d\xcb\x6a\x47\x3f\x8f\x94\xb4\x2a\x8b\x30\x69\xb6\x05\x2d\x75\x63\xe4\x59\xd0\x4f\x70\xbe\x29\x79\x34\xcd\x67\x0a\xc7\x9e\xdb\x17\x96\x65\x86\xba\x2c\x58\x7b\xee\x03\xe8\x1c\x7e\x98\x8e\xec\x35\x56\x10\xd6\x52\xd0\x31\x22\x98\x9e\x22\x11\xaf\x69\x67\x0d\x72\x1d\xfa\x72\x5b\x03\x59\x42\x0f\xfa\x99\xb3\x85\x9f\x85\x4f\x06\xd9\xc7\x10\x7d\x4f\xb2\x8b\x8d\xcc\x20\x75\x04\x54\x8e\x0a\x0f\x27\x40\xb7\x42\xc5\x2a\x08\x87\xf7\x44\xf7\xf9\x7d\xfa\x24\x47\xd1\xdd\x46\x98\xc7\x51\xf4\x76\xab\xc4\x3a\x8d\xff\xa4\x17\x3b\x6d\xcb\x53\xf8\x57\x9c\x0a\xb4\xb7\xff\xad\xd5\x53\x31\x0a\x10\x42\x02\x2f\x5c\xd3\x13\xc0\x41\x50\x80\x7c\x45\xf2\x9c\x5d\x30\xac\x9d\x30\x32\xa7\xd2\x90\xbb\xf3\x3c\x3a\xf5\xe5\xba\x04\xf0\xb2\x9a\x52\xe9\xdb\x82\xc1\x56\x46\x42\x05\x80\xfd\xf0\x33\xb8\xf5\xb4\x89\x36\x99\x28\xec\x5e\x61\x06\x6d\xdc\x15\x98\x90\x81\xd2\xbe\x56\x20\x31\xf4\x52\xe7\x8e\xe7\x1b\xad\xb3\xd6\xbb\xfd\xa4\x13\xd8\xf0\xa4\x0d\x9d\xbc\x29\x26\x96\xe6\xe1\x8d\xc7\xb3\xe8\xbd\x32\xde\x87\x13\x50\x90\xc1\x6e\x4a\x4a\x83\xb4\xbf\x3c\x1d\x21\x2a\xae\x35\x0f\x30\x0d\x06\x2f\x39\x06\x51\x17\xac\x7d\x20\x23\x39\xb8\xa7\xc2\xf4\x8b\x86\xbf\x28\x6f\xf6\xd3\xa1\x72\x40\xbb\xf3\xb4\xad\x3a\x72\xdf\xc3\x75\xff\xd0\xea\x04\xc6\x91\xb3\x03\x8b\x53\x11\x77\xa1\x1f\x70\xe5\xc5\x3c\xce\x44\x3e\x30\x0d\xac\x55\xee\x4c\xa9\xa1\x0b\x68\x67\xb8\xcc\xfc\x1e\xfc\x75\xeb\x81\xc2\x78\xa6\x26\xae\xfa\xdf\x5f\xe3\x4e\xf5\x40\x31\x8b\x4a\x57\x63\x69\x30\xbf\xd1\x43\x45\x8c\xa2\xbc\x8c\x1f\x20\x83\xb3\x2a\xa7\x42\xb9\xd5\x3c\xb1\xa3\x99\xb2\x17\x21\x82\x67\x0a\x88\xd9\x3c\x03\xce\x5a\xfa\x0f\xe9\x6e\x5a\x4a\x13\x0a\x2f\xd7\x85\xb0\x4b\x43\xac\x79\x75\x45\x84\x93\x69\x85\x79\x94\x49\xe0\x46\x2a\x37\xd6\xfc\x1d\xcf\xdc\x34\xe3\xfe\xf5\x5c\xf2\xa4\xd9\xe4\xe1\x87\x85\x8a\x58\x4d\xd2\x66\xe9\x52\xc6\xdb\xb8\x51\x2c\x5e\x89\x94\x9e\xce\x5f\x79\x98\xbb\xae\xaf\xa8\xb8\xdd\x0a\xfb\xd8\x28\x82\x8b\xba\xc2\x4b\xff\x9e\x49\x25\x1d\x75\xad\xbf\x74\x8f\xcb\x8e\xca\x88\x5f\xf3\x43\x7e\x91\xde\x89\x61\x25\xad\x15\xf9\xc5\x29\x18\x60\x0d\x91\xd6\xdc\x9a\xf8\xf1\x75\x55\x2d\xa5\x49\x78\x6e\x0a\x80\x75\xe8\x08\xf2\xee\x38\x0a\x54\x1b\x96\xb8\xba\xb5\x7d\x00\xb5\xf0\x55\x9e\xaf\x8b\x4c\xe7\xa5\xe9\x3f\xfc\xb7\xd5\x51\x73\xef\xfe\x6b\x2a\x40\x67\x72\xbd\x90\x50\x92\x98\xe0\xca\xb4\x7e\xcc\x2e\x45\xc1\xda\x4b\xf5\xf7\x29\x25\xe2\x59\x46\xb1\xd8\x40\x6a\x78\x3b\x14\x72\xe3\xbd\xc0\xbe\x86\x9b\x77\x25\x43\x2d\xa0\x76\x39\x56\x36\x57\x25\x96\xf4\x55\xa5\x5d\xb6\xda\x60\x35\x28\x85\x8a\x2b\x66\x50\xf4\xed\x14\x9e\xed\xf7\xa2\x78\x40\x27\x01\x50\x09\x62\x24\xb6\xb0\x0a\x14\x02\xd5\xa3\xbb\x7b\x91\xe9\x05\xa0\x9b\x03\xf9\x58\xd7\x3e\xa7\xcd\x39\x68\xea\x9a\x0b\x36\x64\x6f\xdb\xf3\x00\x65\x20\x46\xe6\x50\x0f\xdc\x8c\x27\x0d\x4d\x62\xdb\xcf\x91\xd1\x1c\xae\x15\x5b\x6f\x1b\x8e\x8c\x26\x62\x98\x95\xea\x90\xd1\x74\xd9\x22\xd6\x77\x1d\xac\xcb\xb0\x90\x42\x00\xc1\x73\x21\xd2\x8c\xc3\xdc\x79\xaa\x56\x99\xac\x7d\x2f\xd3\x47\xcc\xd4\x04\x7f\x53\x21\x5b\x73\xc8\x98\x2e\x69\x88\x90\xc2\xdd\xf9\xc3\xca\x8a\x68\xc2\x95\xd2\x50\x91\x2b\x28\xa0\xe8\x2c\x2e\x70\x8f\x8c\xa0\x90\x41\x15\xa9\xb1\xfa\x74\x0e\xea\x42\x5e\x2e\xce\x7c\xdd\xac\x36\xa0\x60\x40\x59\xf5\x46\x18\xa0\x61\x78\x48\xb3\xe4\xac\xe5\x22\x41\x1f\xa7\x47\xb8\x63\xb8\x15\x91\x91\xf8\x02\xbb\x10\xcb\xb6\xdc\xb7\xbb\x76\xac\x7a\x2f\x45\xfc\xe0\x4a\x86\x50\x5c\xf7\xc9\x8b\x8a\xb1\xf4\x73\x27\xbf\x0c\xc8\x2e\xe9\x40\x46\xfe\xe5\xcb\x89\xca\x9c\x0d\x91\x13\xf7\x55\xd3\x8a\x4f\x8d\x35\x0e\x49\x72\x74\x4d\x55\x3e\xc7\x10\xff\x17\xc0\x95\xf0\x9e\xa1\x7c\x23\x9e\x15\x55\xab\xf6\xe3\x5f\x1d\x24\x1f\xda\xe9\x65\xac\x7c\x68\xa4\xfd\x78\x49\xa1\x08\xf9\xa1\x48\x1d\x8c\xf0\x28\x20\x0f\x10\x59\x16\xc2\xce\x79\x57\xd0\x4c\x79\x87\x81\xbd\xfe\xb3\xcc\xfe\x19\xd7\x05\x37\x55\x27\x27\xc8\xf0\x38\xe2\xd2\x4a\x82\x25\xa1\x10\xc5\x19\x1a\xe6\xde\x7c\xde\x75\x9a\x4f\xa5\x4f\x12\xa0\x7c\x21\x8a\x72\x8f\xfa\xbb\x0b\x51\x88\x4c\xaf\x2e\xec\xcb\x77\xf8\x6e\xef\x65\x86\x7a\x11\x53\x8f\xd9\xe7\x21\xf9\x4f\xc4\x0f\xc4\x8a\x5a\x4b\x19\xeb\x3a\x4f\xd8\xed\xfc\x51\x6e\xf7\x1e\x6b\xbb\x3b\x3e\x60\x7f\x85\xc3\xcc\xc5\x7d\xb1\x30\x86\x13\x7a\xa9\xd7\x48\x98\x22\x5d\x8a\xb8\xe2\x41\x1f\x04\x36\x55\xb9\x21\xb1\xc5\x1c\x42\xcf\x9c\x96\xe6\xd1\x0f\x44\xe4\x70\xec\xbb\xd7\xff\xd4\x36\x85\xf4\x42\xfa\x05\xfc\x23\xfd\x8e\x43\x3c\xbe\xcd\x3b\xb2\xe2\x59\x16\x8d\xa4\xe7\x81\x93\x2d\xa2\x0a\x66\x48\xeb\x94\x02\x1a\x2c\xd0\x98\x1d\x33\x87\x07\x16\x97\xec\xc9\xed\x09\xc3\x04\x94\xc9\xe1\x92\xb3\x81\x37\x4d\x9c\x6d\x60\x72\x24\x04\xbc\x50\xd4\x2b\x85\x61\x0a\x31\xc5\xfb\x49\x26\xbe\x8a\x3a\x80\xd2\x61\x0e\xc1\xb5\x4c\xd2\xb2\x8e\x62\x5a\x29\x47\xf8\xd5\x16\xfe\xdf\x67\x0b\x43\x6a\xc1\x4b\x1a\xc2\xed\x85\x2e\xbf\x5e\x85\x5f\xc1\x55\x58\x0d\xf5\x49\xf3\x84\xa9\xe7\xfb\x4c\x2d\x0d\xf5\xd6\xbf\x7e\xdc\xe4\xca\x28\x18\x49\x3e\x7c\x9e\x69\xaf\xee\x79\x8a\x07\x4b\xbf\xfe\xe8\xa3\x57\x16\xbc\x06\xed\xee\x45\xd1\x3c\x47\xa1\x0b\xaa\x08\xd7\xd0\x1a\x2e\x83\xdd\x97\xdd\x05\x6b\x5f\x55\x10\x66\x88\x32\x60\x45\x94\x0b\xcb\x5c\xb3\x68\x62\xfe\xd9\x1e\x11\x15\x40\x53\x89\xe2\x55\xee\x66\xbd\x2a\x8a\x38\xd7\xec\x2a\xcd\x8b\x1f\x45\x56\x1e\x85\x47\x05\x35\x31\x2f\x96\x49\xc0\x43\xc5\x61\x06\x6f\xf4\x06\xc0\x6f\xab\x21\x6a\xab\x17\xe0\x9e\x03\xdc\x0a\x46\x7e\xb6\xe3\xde\xe7\xe2\xf8\xe4\xe6\xeb\x13\xea\xbc\xcf\x46\x6c\x36\xd2\x70\xdc\xb5\x11\x1a\x07\x18\x65\xe8\x65\xa6\xd0\x77\xf2\xa7\xbb\x9b\xeb\xfa\xdd\x66\xcf\x74\xad\x69\x78\x0c\xa6\x6e\xdc\xbe\x72\xd7\x65\x96\x75\xae\xdc\x6e\x74\xd6\xeb\x0f\x57\x57\xf3\x1f\x27\x57\x1f\x2e\x7b\xd1\x4e\x83\xc7\x3a\xe7\xc4\x8d\x84\xe6\x04\x2d\xda\x02\xac\xd8\x72\x2d\x0d\x97\xa5\xf8\xaf\x46\xc3\xa1\xcc\xb2\x2a\x12\xee\x4c\x7d\xa2\x76\x20\x41\xaa\x54\xe8\x71\x9a\xa9\xa8\x77\xe2\xaa\xfd\xc3\x63\x9f\x6c\xe3\x9f\xf0\xdd\xb3\xc8\x7f\xc4\xb7\xd1\xb5\xeb\xb5\x63\x5e\x29\xfb\xf2\x88\xe3\x80\x80\xbc\x5d\xc7\xe1\xd4\x58\xdf\x87\x1d\x8f\x0f\x8a\x39\xbd\x09\xa2\xfb\x24\xa7\x03\xe7\xee\x53\xd5\x9b\xe9\x64\x79\x82\xaa\x39\xb4\x3b\x42\x84\xe6\xbc\xa0\xda\x4c\x9c\xb3\x99\x42\xbb\xd2\x8e\xa9\xd0\xdd\x63\x8a\xa6\x94\x8d\x90\x09\xb5\x2a\xc5\x4a\xe6\xa3\x88\x3b\x9f\x29\x64\xb6\x5f\x48\xa6\xc0\x73\x96\x98\x28\xd2\x27\x59\xdb\x42\x98\x48\x46\x90\x2d\xa3\x28\x55\x33\x45\xdf\xa4\x56\xbe\x79\xcc\x31\xfb\xd3\x9d\xfb\x1c\xa0\x9d\xe7\x86\x08\x64\x5a\xcd\x14\x2e\x2e\xa2\x64\xb2\x9b\x07\x14\x57\xa0\x23\xaf\x6c\x5d\x61\x24\xe3\xda\x83\x4c\x5f\x81\xc3\x09\xc9\xfc\xb9\x1a\xc2\x4a\xfa\x80\xc6\x0f\x33\x4f\x71\x48\xbb\xe5\x09\x2f\x06\x9f\x09\x1a\x5b\xfb\xae\x3f\xfa\x0e\xb0\x07\x6e\xfe\x54\x6b\x65\xc0\xb6\xf5\x62\x6c\xa0\x8d\x20\x02\xc1\xd1\x55\x87\x07\x75\x36\xed\xa3\xe1\xef\xc2\x67\x3a\x43\xf8\xba\x5c\x64\x7b\x0c\x09\x9f\xef\x1d\x14\x8a\xe4\xfe\x41\x0d\xf0\xf1\xde\xd6\x8e\x96\xdd\xa6\x7d\xdd\x2e\xb4\xee\x58\x97\x13\x7a\x4b\x2b\x83\xa2\x17\x76\x4d\x46\x19\x17\x87\xec\x97\x01\xc9\xf1\xf5\x29\x62\xe9\xd3\x37\xa0\x2c\xcd\x0f\x1a\x8e\xd7\x9f\x06\x8f\xc8\x69\x08\x74\xd9\xed\x25\x61\xe9\x9e\xab\x08\xd8\x0e\x31\x49\x3e\x3a\x8a\xd0\xc8\x14\xc5\x8b\x02\xc2\x6c\x41\xb5\x68\x23\xb7\x89\x46\x7e\xe5\x46\x30\xc8\xb8\x34\xb9\x15\x97\x24\xef\x48\x6a\x6b\x13\x89\x99\x62\x48\x43\x16\xc7\x13\x4e\x42\x30\xee\xa7\x58\x70\xb0\x41\x40\x30\xd0\x58\x8b\x48\x2b\xc9\xd2\x70\xa6\x80\x4b\x42\x81\x37\x79\x91\x03\xa2\x2b\x31\x26\xd0\x2f\x02\xc2\x54\xa1\x90\x5d\x7b\xb7\xcc\xab\xa9\x01\x95\x7b\xfe\x37\xf6\xbf\x7f\xfd\xe6\x7f\x02\x00\x00\xff\xff\x45\x92\xe7\xfe\xf4\x0d\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: 262515, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 265716, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java index 47b8476429..38ed44f270 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java @@ -14,6 +14,124 @@ public static void registerAllExtensions( registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } + /** + *
+   * The state of the execution is used to control its visibility in the UI/CLI.
+   * 
+ * + * Protobuf enum {@code flyteidl.admin.ExecutionState} + */ + public enum ExecutionState + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * By default, all executions are considered active.
+     * 
+ * + * EXECUTION_ACTIVE = 0; + */ + EXECUTION_ACTIVE(0), + /** + *
+     * Archived executions are no longer visible in the UI.
+     * 
+ * + * EXECUTION_ARCHIVED = 1; + */ + EXECUTION_ARCHIVED(1), + UNRECOGNIZED(-1), + ; + + /** + *
+     * By default, all executions are considered active.
+     * 
+ * + * EXECUTION_ACTIVE = 0; + */ + public static final int EXECUTION_ACTIVE_VALUE = 0; + /** + *
+     * Archived executions are no longer visible in the UI.
+     * 
+ * + * EXECUTION_ARCHIVED = 1; + */ + public static final int EXECUTION_ARCHIVED_VALUE = 1; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ExecutionState valueOf(int value) { + return forNumber(value); + } + + public static ExecutionState forNumber(int value) { + switch (value) { + case 0: return EXECUTION_ACTIVE; + case 1: return EXECUTION_ARCHIVED; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ExecutionState> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ExecutionState findValueByNumber(int number) { + return ExecutionState.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return flyteidl.admin.ExecutionOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final ExecutionState[] VALUES = values(); + + public static ExecutionState valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ExecutionState(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:flyteidl.admin.ExecutionState) + } + public interface ExecutionCreateRequestOrBuilder extends // @@protoc_insertion_point(interface_extends:flyteidl.admin.ExecutionCreateRequest) com.google.protobuf.MessageOrBuilder { @@ -9087,6 +9205,31 @@ flyteidl.admin.Common.NotificationOrBuilder getNotificationsOrBuilder( */ flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getWorkflowIdOrBuilder(); + /** + *
+     * Provides the details of the last stage change
+     * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + boolean hasStateChangeDetails(); + /** + *
+     * Provides the details of the last stage change
+     * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails getStateChangeDetails(); + /** + *
+     * Provides the details of the last stage change
+     * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetailsOrBuilder getStateChangeDetailsOrBuilder(); + public flyteidl.admin.ExecutionOuterClass.ExecutionClosure.OutputResultCase getOutputResultCase(); } /** @@ -9289,6 +9432,19 @@ private ExecutionClosure( outputResultCase_ = 13; break; } + case 114: { + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder subBuilder = null; + if (stateChangeDetails_ != null) { + subBuilder = stateChangeDetails_.toBuilder(); + } + stateChangeDetails_ = input.readMessage(flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(stateChangeDetails_); + stateChangeDetails_ = subBuilder.buildPartial(); + } + + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -9869,6 +10025,39 @@ public flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getWorkflowIdOrBui return getWorkflowId(); } + public static final int STATE_CHANGE_DETAILS_FIELD_NUMBER = 14; + private flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails stateChangeDetails_; + /** + *
+     * Provides the details of the last stage change
+     * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public boolean hasStateChangeDetails() { + return stateChangeDetails_ != null; + } + /** + *
+     * Provides the details of the last stage change
+     * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails getStateChangeDetails() { + return stateChangeDetails_ == null ? flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.getDefaultInstance() : stateChangeDetails_; + } + /** + *
+     * Provides the details of the last stage change
+     * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetailsOrBuilder getStateChangeDetailsOrBuilder() { + return getStateChangeDetails(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -9922,6 +10111,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (outputResultCase_ == 13) { output.writeMessage(13, (flyteidl.core.Literals.LiteralMap) outputResult_); } + if (stateChangeDetails_ != null) { + output.writeMessage(14, getStateChangeDetails()); + } unknownFields.writeTo(output); } @@ -9982,6 +10174,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(13, (flyteidl.core.Literals.LiteralMap) outputResult_); } + if (stateChangeDetails_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(14, getStateChangeDetails()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -10030,6 +10226,11 @@ public boolean equals(final java.lang.Object obj) { if (!getWorkflowId() .equals(other.getWorkflowId())) return false; } + if (hasStateChangeDetails() != other.hasStateChangeDetails()) return false; + if (hasStateChangeDetails()) { + if (!getStateChangeDetails() + .equals(other.getStateChangeDetails())) return false; + } if (!getOutputResultCase().equals(other.getOutputResultCase())) return false; switch (outputResultCase_) { case 1: @@ -10096,6 +10297,10 @@ public int hashCode() { hash = (37 * hash) + WORKFLOW_ID_FIELD_NUMBER; hash = (53 * hash) + getWorkflowId().hashCode(); } + if (hasStateChangeDetails()) { + hash = (37 * hash) + STATE_CHANGE_DETAILS_FIELD_NUMBER; + hash = (53 * hash) + getStateChangeDetails().hashCode(); + } switch (outputResultCase_) { case 1: hash = (37 * hash) + OUTPUTS_FIELD_NUMBER; @@ -10302,6 +10507,12 @@ public Builder clear() { workflowId_ = null; workflowIdBuilder_ = null; } + if (stateChangeDetailsBuilder_ == null) { + stateChangeDetails_ = null; + } else { + stateChangeDetails_ = null; + stateChangeDetailsBuilder_ = null; + } outputResultCase_ = 0; outputResult_ = null; return this; @@ -10403,6 +10614,11 @@ public flyteidl.admin.ExecutionOuterClass.ExecutionClosure buildPartial() { } else { result.workflowId_ = workflowIdBuilder_.build(); } + if (stateChangeDetailsBuilder_ == null) { + result.stateChangeDetails_ = stateChangeDetails_; + } else { + result.stateChangeDetails_ = stateChangeDetailsBuilder_.build(); + } result.bitField0_ = to_bitField0_; result.outputResultCase_ = outputResultCase_; onBuilt(); @@ -10500,6 +10716,9 @@ public Builder mergeFrom(flyteidl.admin.ExecutionOuterClass.ExecutionClosure oth if (other.hasWorkflowId()) { mergeWorkflowId(other.getWorkflowId()); } + if (other.hasStateChangeDetails()) { + mergeStateChangeDetails(other.getStateChangeDetails()); + } switch (other.getOutputResultCase()) { case OUTPUTS: { mergeOutputs(other.getOutputs()); @@ -12717,6 +12936,159 @@ public flyteidl.core.IdentifierOuterClass.IdentifierOrBuilder getWorkflowIdOrBui } return workflowIdBuilder_; } + + private flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails stateChangeDetails_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetailsOrBuilder> stateChangeDetailsBuilder_; + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public boolean hasStateChangeDetails() { + return stateChangeDetailsBuilder_ != null || stateChangeDetails_ != null; + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails getStateChangeDetails() { + if (stateChangeDetailsBuilder_ == null) { + return stateChangeDetails_ == null ? flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.getDefaultInstance() : stateChangeDetails_; + } else { + return stateChangeDetailsBuilder_.getMessage(); + } + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public Builder setStateChangeDetails(flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails value) { + if (stateChangeDetailsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + stateChangeDetails_ = value; + onChanged(); + } else { + stateChangeDetailsBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public Builder setStateChangeDetails( + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder builderForValue) { + if (stateChangeDetailsBuilder_ == null) { + stateChangeDetails_ = builderForValue.build(); + onChanged(); + } else { + stateChangeDetailsBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public Builder mergeStateChangeDetails(flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails value) { + if (stateChangeDetailsBuilder_ == null) { + if (stateChangeDetails_ != null) { + stateChangeDetails_ = + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.newBuilder(stateChangeDetails_).mergeFrom(value).buildPartial(); + } else { + stateChangeDetails_ = value; + } + onChanged(); + } else { + stateChangeDetailsBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public Builder clearStateChangeDetails() { + if (stateChangeDetailsBuilder_ == null) { + stateChangeDetails_ = null; + onChanged(); + } else { + stateChangeDetails_ = null; + stateChangeDetailsBuilder_ = null; + } + + return this; + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder getStateChangeDetailsBuilder() { + + onChanged(); + return getStateChangeDetailsFieldBuilder().getBuilder(); + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetailsOrBuilder getStateChangeDetailsOrBuilder() { + if (stateChangeDetailsBuilder_ != null) { + return stateChangeDetailsBuilder_.getMessageOrBuilder(); + } else { + return stateChangeDetails_ == null ? + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.getDefaultInstance() : stateChangeDetails_; + } + } + /** + *
+       * Provides the details of the last stage change
+       * 
+ * + * .flyteidl.admin.ExecutionStateChangeDetails state_change_details = 14; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetailsOrBuilder> + getStateChangeDetailsFieldBuilder() { + if (stateChangeDetailsBuilder_ == null) { + stateChangeDetailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetailsOrBuilder>( + getStateChangeDetails(), + getParentForChildren(), + isClean()); + stateChangeDetails_ = null; + } + return stateChangeDetailsBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -22620,64 +22992,2240 @@ public flyteidl.admin.ExecutionOuterClass.WorkflowExecutionGetDataResponse getDe } - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ExecutionCreateRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_ExecutionCreateRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ExecutionRelaunchRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_ExecutionRelaunchRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ExecutionRecoverRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_ExecutionRecoverRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ExecutionCreateResponse_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_ExecutionCreateResponse_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_WorkflowExecutionGetRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_WorkflowExecutionGetRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_Execution_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_Execution_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ExecutionList_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_ExecutionList_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_LiteralMapBlob_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_LiteralMapBlob_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_AbortMetadata_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_AbortMetadata_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ExecutionClosure_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_ExecutionClosure_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_SystemMetadata_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_admin_SystemMetadata_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_admin_ExecutionMetadata_descriptor; - private static final + public interface ExecutionUpdateRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ExecutionUpdateRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Identifier of the execution to update
+     * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + boolean hasId(); + /** + *
+     * Identifier of the execution to update
+     * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier getId(); + /** + *
+     * Identifier of the execution to update
+     * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder getIdOrBuilder(); + + /** + *
+     * State to set as the new value active/archive
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + int getStateValue(); + /** + *
+     * State to set as the new value active/archive
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + flyteidl.admin.ExecutionOuterClass.ExecutionState getState(); + } + /** + * Protobuf type {@code flyteidl.admin.ExecutionUpdateRequest} + */ + public static final class ExecutionUpdateRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ExecutionUpdateRequest) + ExecutionUpdateRequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use ExecutionUpdateRequest.newBuilder() to construct. + private ExecutionUpdateRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ExecutionUpdateRequest() { + state_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ExecutionUpdateRequest( + 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.WorkflowExecutionIdentifier.Builder subBuilder = null; + if (id_ != null) { + subBuilder = id_.toBuilder(); + } + id_ = input.readMessage(flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(id_); + id_ = subBuilder.buildPartial(); + } + + break; + } + case 16: { + int rawValue = input.readEnum(); + + state_ = rawValue; + 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.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest.class, flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + private flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier id_; + /** + *
+     * Identifier of the execution to update
+     * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public boolean hasId() { + return id_ != null; + } + /** + *
+     * Identifier of the execution to update
+     * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier getId() { + return id_ == null ? flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.getDefaultInstance() : id_; + } + /** + *
+     * Identifier of the execution to update
+     * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder getIdOrBuilder() { + return getId(); + } + + public static final int STATE_FIELD_NUMBER = 2; + private int state_; + /** + *
+     * State to set as the new value active/archive
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + public int getStateValue() { + return state_; + } + /** + *
+     * State to set as the new value active/archive
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionState getState() { + @SuppressWarnings("deprecation") + flyteidl.admin.ExecutionOuterClass.ExecutionState result = flyteidl.admin.ExecutionOuterClass.ExecutionState.valueOf(state_); + return result == null ? flyteidl.admin.ExecutionOuterClass.ExecutionState.UNRECOGNIZED : result; + } + + 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 (id_ != null) { + output.writeMessage(1, getId()); + } + if (state_ != flyteidl.admin.ExecutionOuterClass.ExecutionState.EXECUTION_ACTIVE.getNumber()) { + output.writeEnum(2, state_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (id_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getId()); + } + if (state_ != flyteidl.admin.ExecutionOuterClass.ExecutionState.EXECUTION_ACTIVE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, state_); + } + 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.ExecutionOuterClass.ExecutionUpdateRequest)) { + return super.equals(obj); + } + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest other = (flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest) obj; + + if (hasId() != other.hasId()) return false; + if (hasId()) { + if (!getId() + .equals(other.getId())) return false; + } + if (state_ != other.state_) 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 (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + } + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest 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.ExecutionOuterClass.ExecutionUpdateRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest 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.ExecutionOuterClass.ExecutionUpdateRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest 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.ExecutionOuterClass.ExecutionUpdateRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest 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.ExecutionOuterClass.ExecutionUpdateRequest 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; + } + /** + * Protobuf type {@code flyteidl.admin.ExecutionUpdateRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ExecutionUpdateRequest) + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest.class, flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest.Builder.class); + } + + // Construct using flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest.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 (idBuilder_ == null) { + id_ = null; + } else { + id_ = null; + idBuilder_ = null; + } + state_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateRequest_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest getDefaultInstanceForType() { + return flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest build() { + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest buildPartial() { + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest result = new flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest(this); + if (idBuilder_ == null) { + result.id_ = id_; + } else { + result.id_ = idBuilder_.build(); + } + result.state_ = state_; + 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.ExecutionOuterClass.ExecutionUpdateRequest) { + return mergeFrom((flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest other) { + if (other == flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest.getDefaultInstance()) return this; + if (other.hasId()) { + mergeId(other.getId()); + } + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + 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.ExecutionOuterClass.ExecutionUpdateRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier id_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier, flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.Builder, flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder> idBuilder_; + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public boolean hasId() { + return idBuilder_ != null || id_ != null; + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier getId() { + if (idBuilder_ == null) { + return id_ == null ? flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.getDefaultInstance() : id_; + } else { + return idBuilder_.getMessage(); + } + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public Builder setId(flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier value) { + if (idBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + id_ = value; + onChanged(); + } else { + idBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public Builder setId( + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.Builder builderForValue) { + if (idBuilder_ == null) { + id_ = builderForValue.build(); + onChanged(); + } else { + idBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public Builder mergeId(flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier value) { + if (idBuilder_ == null) { + if (id_ != null) { + id_ = + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.newBuilder(id_).mergeFrom(value).buildPartial(); + } else { + id_ = value; + } + onChanged(); + } else { + idBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public Builder clearId() { + if (idBuilder_ == null) { + id_ = null; + onChanged(); + } else { + id_ = null; + idBuilder_ = null; + } + + return this; + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.Builder getIdBuilder() { + + onChanged(); + return getIdFieldBuilder().getBuilder(); + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + public flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder getIdOrBuilder() { + if (idBuilder_ != null) { + return idBuilder_.getMessageOrBuilder(); + } else { + return id_ == null ? + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.getDefaultInstance() : id_; + } + } + /** + *
+       * Identifier of the execution to update
+       * 
+ * + * .flyteidl.core.WorkflowExecutionIdentifier id = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier, flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.Builder, flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder> + getIdFieldBuilder() { + if (idBuilder_ == null) { + idBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier, flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifier.Builder, flyteidl.core.IdentifierOuterClass.WorkflowExecutionIdentifierOrBuilder>( + getId(), + getParentForChildren(), + isClean()); + id_ = null; + } + return idBuilder_; + } + + private int state_ = 0; + /** + *
+       * State to set as the new value active/archive
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + public int getStateValue() { + return state_; + } + /** + *
+       * State to set as the new value active/archive
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + public Builder setStateValue(int value) { + state_ = value; + onChanged(); + return this; + } + /** + *
+       * State to set as the new value active/archive
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionState getState() { + @SuppressWarnings("deprecation") + flyteidl.admin.ExecutionOuterClass.ExecutionState result = flyteidl.admin.ExecutionOuterClass.ExecutionState.valueOf(state_); + return result == null ? flyteidl.admin.ExecutionOuterClass.ExecutionState.UNRECOGNIZED : result; + } + /** + *
+       * State to set as the new value active/archive
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + public Builder setState(flyteidl.admin.ExecutionOuterClass.ExecutionState value) { + if (value == null) { + throw new NullPointerException(); + } + + state_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * State to set as the new value active/archive
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 2; + */ + public Builder clearState() { + + state_ = 0; + onChanged(); + 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.ExecutionUpdateRequest) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionUpdateRequest) + private static final flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest(); + } + + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ExecutionUpdateRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ExecutionUpdateRequest(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.ExecutionOuterClass.ExecutionUpdateRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ExecutionStateChangeDetailsOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ExecutionStateChangeDetails) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * The state of the execution is used to control its visibility in the UI/CLI.
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + int getStateValue(); + /** + *
+     * The state of the execution is used to control its visibility in the UI/CLI.
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + flyteidl.admin.ExecutionOuterClass.ExecutionState getState(); + + /** + *
+     * This timestamp represents when the state changed.
+     * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + boolean hasOccurredAt(); + /** + *
+     * This timestamp represents when the state changed.
+     * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + com.google.protobuf.Timestamp getOccurredAt(); + /** + *
+     * This timestamp represents when the state changed.
+     * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + com.google.protobuf.TimestampOrBuilder getOccurredAtOrBuilder(); + + /** + *
+     * Identifies the entity (if any) responsible for causing the state change of the execution
+     * 
+ * + * string principal = 3; + */ + java.lang.String getPrincipal(); + /** + *
+     * Identifies the entity (if any) responsible for causing the state change of the execution
+     * 
+ * + * string principal = 3; + */ + com.google.protobuf.ByteString + getPrincipalBytes(); + } + /** + * Protobuf type {@code flyteidl.admin.ExecutionStateChangeDetails} + */ + public static final class ExecutionStateChangeDetails extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ExecutionStateChangeDetails) + ExecutionStateChangeDetailsOrBuilder { + private static final long serialVersionUID = 0L; + // Use ExecutionStateChangeDetails.newBuilder() to construct. + private ExecutionStateChangeDetails(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ExecutionStateChangeDetails() { + state_ = 0; + principal_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ExecutionStateChangeDetails( + 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 8: { + int rawValue = input.readEnum(); + + state_ = rawValue; + break; + } + case 18: { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (occurredAt_ != null) { + subBuilder = occurredAt_.toBuilder(); + } + occurredAt_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(occurredAt_); + occurredAt_ = subBuilder.buildPartial(); + } + + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + principal_ = s; + 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.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionStateChangeDetails_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionStateChangeDetails_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.class, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder.class); + } + + public static final int STATE_FIELD_NUMBER = 1; + private int state_; + /** + *
+     * The state of the execution is used to control its visibility in the UI/CLI.
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + public int getStateValue() { + return state_; + } + /** + *
+     * The state of the execution is used to control its visibility in the UI/CLI.
+     * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionState getState() { + @SuppressWarnings("deprecation") + flyteidl.admin.ExecutionOuterClass.ExecutionState result = flyteidl.admin.ExecutionOuterClass.ExecutionState.valueOf(state_); + return result == null ? flyteidl.admin.ExecutionOuterClass.ExecutionState.UNRECOGNIZED : result; + } + + public static final int OCCURRED_AT_FIELD_NUMBER = 2; + private com.google.protobuf.Timestamp occurredAt_; + /** + *
+     * This timestamp represents when the state changed.
+     * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public boolean hasOccurredAt() { + return occurredAt_ != null; + } + /** + *
+     * This timestamp represents when the state changed.
+     * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public com.google.protobuf.Timestamp getOccurredAt() { + return occurredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occurredAt_; + } + /** + *
+     * This timestamp represents when the state changed.
+     * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public com.google.protobuf.TimestampOrBuilder getOccurredAtOrBuilder() { + return getOccurredAt(); + } + + public static final int PRINCIPAL_FIELD_NUMBER = 3; + private volatile java.lang.Object principal_; + /** + *
+     * Identifies the entity (if any) responsible for causing the state change of the execution
+     * 
+ * + * string principal = 3; + */ + public java.lang.String getPrincipal() { + java.lang.Object ref = principal_; + 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(); + principal_ = s; + return s; + } + } + /** + *
+     * Identifies the entity (if any) responsible for causing the state change of the execution
+     * 
+ * + * string principal = 3; + */ + public com.google.protobuf.ByteString + getPrincipalBytes() { + java.lang.Object ref = principal_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + principal_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + 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 (state_ != flyteidl.admin.ExecutionOuterClass.ExecutionState.EXECUTION_ACTIVE.getNumber()) { + output.writeEnum(1, state_); + } + if (occurredAt_ != null) { + output.writeMessage(2, getOccurredAt()); + } + if (!getPrincipalBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, principal_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (state_ != flyteidl.admin.ExecutionOuterClass.ExecutionState.EXECUTION_ACTIVE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, state_); + } + if (occurredAt_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getOccurredAt()); + } + if (!getPrincipalBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, principal_); + } + 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.ExecutionOuterClass.ExecutionStateChangeDetails)) { + return super.equals(obj); + } + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails other = (flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails) obj; + + if (state_ != other.state_) return false; + if (hasOccurredAt() != other.hasOccurredAt()) return false; + if (hasOccurredAt()) { + if (!getOccurredAt() + .equals(other.getOccurredAt())) return false; + } + if (!getPrincipal() + .equals(other.getPrincipal())) 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(); + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + if (hasOccurredAt()) { + hash = (37 * hash) + OCCURRED_AT_FIELD_NUMBER; + hash = (53 * hash) + getOccurredAt().hashCode(); + } + hash = (37 * hash) + PRINCIPAL_FIELD_NUMBER; + hash = (53 * hash) + getPrincipal().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails 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.ExecutionOuterClass.ExecutionStateChangeDetails parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails 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.ExecutionOuterClass.ExecutionStateChangeDetails parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails 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.ExecutionOuterClass.ExecutionStateChangeDetails parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails 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.ExecutionOuterClass.ExecutionStateChangeDetails 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; + } + /** + * Protobuf type {@code flyteidl.admin.ExecutionStateChangeDetails} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ExecutionStateChangeDetails) + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetailsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionStateChangeDetails_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionStateChangeDetails_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.class, flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.Builder.class); + } + + // Construct using flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.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(); + state_ = 0; + + if (occurredAtBuilder_ == null) { + occurredAt_ = null; + } else { + occurredAt_ = null; + occurredAtBuilder_ = null; + } + principal_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionStateChangeDetails_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails getDefaultInstanceForType() { + return flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails build() { + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails buildPartial() { + flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails result = new flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails(this); + result.state_ = state_; + if (occurredAtBuilder_ == null) { + result.occurredAt_ = occurredAt_; + } else { + result.occurredAt_ = occurredAtBuilder_.build(); + } + result.principal_ = principal_; + 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.ExecutionOuterClass.ExecutionStateChangeDetails) { + return mergeFrom((flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails other) { + if (other == flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails.getDefaultInstance()) return this; + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (other.hasOccurredAt()) { + mergeOccurredAt(other.getOccurredAt()); + } + if (!other.getPrincipal().isEmpty()) { + principal_ = other.principal_; + onChanged(); + } + 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.ExecutionOuterClass.ExecutionStateChangeDetails parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private int state_ = 0; + /** + *
+       * The state of the execution is used to control its visibility in the UI/CLI.
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + public int getStateValue() { + return state_; + } + /** + *
+       * The state of the execution is used to control its visibility in the UI/CLI.
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + public Builder setStateValue(int value) { + state_ = value; + onChanged(); + return this; + } + /** + *
+       * The state of the execution is used to control its visibility in the UI/CLI.
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + public flyteidl.admin.ExecutionOuterClass.ExecutionState getState() { + @SuppressWarnings("deprecation") + flyteidl.admin.ExecutionOuterClass.ExecutionState result = flyteidl.admin.ExecutionOuterClass.ExecutionState.valueOf(state_); + return result == null ? flyteidl.admin.ExecutionOuterClass.ExecutionState.UNRECOGNIZED : result; + } + /** + *
+       * The state of the execution is used to control its visibility in the UI/CLI.
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + public Builder setState(flyteidl.admin.ExecutionOuterClass.ExecutionState value) { + if (value == null) { + throw new NullPointerException(); + } + + state_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * The state of the execution is used to control its visibility in the UI/CLI.
+       * 
+ * + * .flyteidl.admin.ExecutionState state = 1; + */ + public Builder clearState() { + + state_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp occurredAt_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> occurredAtBuilder_; + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public boolean hasOccurredAt() { + return occurredAtBuilder_ != null || occurredAt_ != null; + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public com.google.protobuf.Timestamp getOccurredAt() { + if (occurredAtBuilder_ == null) { + return occurredAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : occurredAt_; + } else { + return occurredAtBuilder_.getMessage(); + } + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public Builder setOccurredAt(com.google.protobuf.Timestamp value) { + if (occurredAtBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + occurredAt_ = value; + onChanged(); + } else { + occurredAtBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public Builder setOccurredAt( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (occurredAtBuilder_ == null) { + occurredAt_ = builderForValue.build(); + onChanged(); + } else { + occurredAtBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public Builder mergeOccurredAt(com.google.protobuf.Timestamp value) { + if (occurredAtBuilder_ == null) { + if (occurredAt_ != null) { + occurredAt_ = + com.google.protobuf.Timestamp.newBuilder(occurredAt_).mergeFrom(value).buildPartial(); + } else { + occurredAt_ = value; + } + onChanged(); + } else { + occurredAtBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public Builder clearOccurredAt() { + if (occurredAtBuilder_ == null) { + occurredAt_ = null; + onChanged(); + } else { + occurredAt_ = null; + occurredAtBuilder_ = null; + } + + return this; + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public com.google.protobuf.Timestamp.Builder getOccurredAtBuilder() { + + onChanged(); + return getOccurredAtFieldBuilder().getBuilder(); + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + public com.google.protobuf.TimestampOrBuilder getOccurredAtOrBuilder() { + if (occurredAtBuilder_ != null) { + return occurredAtBuilder_.getMessageOrBuilder(); + } else { + return occurredAt_ == null ? + com.google.protobuf.Timestamp.getDefaultInstance() : occurredAt_; + } + } + /** + *
+       * This timestamp represents when the state changed.
+       * 
+ * + * .google.protobuf.Timestamp occurred_at = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> + getOccurredAtFieldBuilder() { + if (occurredAtBuilder_ == null) { + occurredAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( + getOccurredAt(), + getParentForChildren(), + isClean()); + occurredAt_ = null; + } + return occurredAtBuilder_; + } + + private java.lang.Object principal_ = ""; + /** + *
+       * Identifies the entity (if any) responsible for causing the state change of the execution
+       * 
+ * + * string principal = 3; + */ + public java.lang.String getPrincipal() { + java.lang.Object ref = principal_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + principal_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Identifies the entity (if any) responsible for causing the state change of the execution
+       * 
+ * + * string principal = 3; + */ + public com.google.protobuf.ByteString + getPrincipalBytes() { + java.lang.Object ref = principal_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + principal_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Identifies the entity (if any) responsible for causing the state change of the execution
+       * 
+ * + * string principal = 3; + */ + public Builder setPrincipal( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + principal_ = value; + onChanged(); + return this; + } + /** + *
+       * Identifies the entity (if any) responsible for causing the state change of the execution
+       * 
+ * + * string principal = 3; + */ + public Builder clearPrincipal() { + + principal_ = getDefaultInstance().getPrincipal(); + onChanged(); + return this; + } + /** + *
+       * Identifies the entity (if any) responsible for causing the state change of the execution
+       * 
+ * + * string principal = 3; + */ + public Builder setPrincipalBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + principal_ = value; + onChanged(); + 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.ExecutionStateChangeDetails) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionStateChangeDetails) + private static final flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails(); + } + + public static flyteidl.admin.ExecutionOuterClass.ExecutionStateChangeDetails getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ExecutionStateChangeDetails parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ExecutionStateChangeDetails(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.ExecutionOuterClass.ExecutionStateChangeDetails getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ExecutionUpdateResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ExecutionUpdateResponse) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code flyteidl.admin.ExecutionUpdateResponse} + */ + public static final class ExecutionUpdateResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ExecutionUpdateResponse) + ExecutionUpdateResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use ExecutionUpdateResponse.newBuilder() to construct. + private ExecutionUpdateResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ExecutionUpdateResponse() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ExecutionUpdateResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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; + 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.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse.class, flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse.Builder.class); + } + + 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 { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + 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.ExecutionOuterClass.ExecutionUpdateResponse)) { + return super.equals(obj); + } + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse other = (flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse) obj; + + 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(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse 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.ExecutionOuterClass.ExecutionUpdateResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse 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.ExecutionOuterClass.ExecutionUpdateResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse 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.ExecutionOuterClass.ExecutionUpdateResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse 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.ExecutionOuterClass.ExecutionUpdateResponse 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; + } + /** + * Protobuf type {@code flyteidl.admin.ExecutionUpdateResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ExecutionUpdateResponse) + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse.class, flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse.Builder.class); + } + + // Construct using flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse.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(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ExecutionOuterClass.internal_static_flyteidl_admin_ExecutionUpdateResponse_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse getDefaultInstanceForType() { + return flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse build() { + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse buildPartial() { + flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse result = new flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse(this); + 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.ExecutionOuterClass.ExecutionUpdateResponse) { + return mergeFrom((flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse other) { + if (other == flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse.getDefaultInstance()) return this; + 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.ExecutionOuterClass.ExecutionUpdateResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + 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.ExecutionUpdateResponse) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionUpdateResponse) + private static final flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse(); + } + + public static flyteidl.admin.ExecutionOuterClass.ExecutionUpdateResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ExecutionUpdateResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ExecutionUpdateResponse(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.ExecutionOuterClass.ExecutionUpdateResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionCreateRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionCreateRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionRelaunchRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionRelaunchRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionRecoverRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionRecoverRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionCreateResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionCreateResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_WorkflowExecutionGetRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_WorkflowExecutionGetRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_Execution_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_Execution_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionList_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionList_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_LiteralMapBlob_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_LiteralMapBlob_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_AbortMetadata_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_AbortMetadata_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionClosure_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionClosure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_SystemMetadata_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_SystemMetadata_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionMetadata_descriptor; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_flyteidl_admin_ExecutionMetadata_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor @@ -22710,6 +25258,21 @@ public flyteidl.admin.ExecutionOuterClass.WorkflowExecutionGetDataResponse getDe private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_flyteidl_admin_WorkflowExecutionGetDataResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionUpdateRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionUpdateRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionStateChangeDetails_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionStateChangeDetails_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ExecutionUpdateResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ExecutionUpdateResponse_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -22749,7 +25312,7 @@ public flyteidl.admin.ExecutionOuterClass.WorkflowExecutionGetDataResponse getDe "token\030\002 \001(\t\"X\n\016LiteralMapBlob\022/\n\006values\030" + "\001 \001(\0132\031.flyteidl.core.LiteralMapB\002\030\001H\000\022\r" + "\n\003uri\030\002 \001(\tH\000B\006\n\004data\"1\n\rAbortMetadata\022\r" + - "\n\005cause\030\001 \001(\t\022\021\n\tprincipal\030\002 \001(\t\"\245\005\n\020Exe" + + "\n\005cause\030\001 \001(\t\022\021\n\tprincipal\030\002 \001(\t\"\360\005\n\020Exe" + "cutionClosure\0225\n\007outputs\030\001 \001(\0132\036.flyteid" + "l.admin.LiteralMapBlobB\002\030\001H\000\022.\n\005error\030\002 " + "\001(\0132\035.flyteidl.core.ExecutionErrorH\000\022\031\n\013" + @@ -22766,49 +25329,60 @@ public flyteidl.admin.ExecutionOuterClass.WorkflowExecutionGetDataResponse getDe "\030\010 \001(\0132\032.google.protobuf.Timestamp\0223\n\rno" + "tifications\030\t \003(\0132\034.flyteidl.admin.Notif" + "ication\022.\n\013workflow_id\030\013 \001(\0132\031.flyteidl." + - "core.IdentifierB\017\n\routput_result\"+\n\016Syst" + - "emMetadata\022\031\n\021execution_cluster\030\001 \001(\t\"\332\003" + - "\n\021ExecutionMetadata\022=\n\004mode\030\001 \001(\0162/.flyt" + - "eidl.admin.ExecutionMetadata.ExecutionMo" + - "de\022\021\n\tprincipal\030\002 \001(\t\022\017\n\007nesting\030\003 \001(\r\0220" + - "\n\014scheduled_at\030\004 \001(\0132\032.google.protobuf.T" + - "imestamp\022E\n\025parent_node_execution\030\005 \001(\0132" + - "&.flyteidl.core.NodeExecutionIdentifier\022" + - "G\n\023reference_execution\030\020 \001(\0132*.flyteidl." + - "core.WorkflowExecutionIdentifier\0227\n\017syst" + - "em_metadata\030\021 \001(\0132\036.flyteidl.admin.Syste" + - "mMetadata\"g\n\rExecutionMode\022\n\n\006MANUAL\020\000\022\r" + - "\n\tSCHEDULED\020\001\022\n\n\006SYSTEM\020\002\022\014\n\010RELAUNCH\020\003\022" + - "\022\n\016CHILD_WORKFLOW\020\004\022\r\n\tRECOVERED\020\005\"G\n\020No" + - "tificationList\0223\n\rnotifications\030\001 \003(\0132\034." + - "flyteidl.admin.Notification\"\260\004\n\rExecutio" + - "nSpec\022.\n\013launch_plan\030\001 \001(\0132\031.flyteidl.co" + - "re.Identifier\022-\n\006inputs\030\002 \001(\0132\031.flyteidl" + - ".core.LiteralMapB\002\030\001\0223\n\010metadata\030\003 \001(\0132!" + - ".flyteidl.admin.ExecutionMetadata\0229\n\rnot" + - "ifications\030\005 \001(\0132 .flyteidl.admin.Notifi" + - "cationListH\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n\006l" + - "abels\030\007 \001(\0132\026.flyteidl.admin.Labels\0220\n\013a" + - "nnotations\030\010 \001(\0132\033.flyteidl.admin.Annota" + - "tions\0228\n\020security_context\030\n \001(\0132\036.flytei" + - "dl.core.SecurityContext\022/\n\tauth_role\030\020 \001" + - "(\0132\030.flyteidl.admin.AuthRoleB\002\030\001\022;\n\022qual" + - "ity_of_service\030\021 \001(\0132\037.flyteidl.core.Qua" + - "lityOfService\022\027\n\017max_parallelism\030\022 \001(\005B\030" + - "\n\026notification_overridesJ\004\010\004\020\005\"b\n\031Execut" + - "ionTerminateRequest\0226\n\002id\030\001 \001(\0132*.flytei" + - "dl.core.WorkflowExecutionIdentifier\022\r\n\005c" + - "ause\030\002 \001(\t\"\034\n\032ExecutionTerminateResponse" + - "\"Y\n\037WorkflowExecutionGetDataRequest\0226\n\002i" + - "d\030\001 \001(\0132*.flyteidl.core.WorkflowExecutio" + - "nIdentifier\"\336\001\n WorkflowExecutionGetData" + - "Response\022,\n\007outputs\030\001 \001(\0132\027.flyteidl.adm" + - "in.UrlBlobB\002\030\001\022+\n\006inputs\030\002 \001(\0132\027.flyteid" + - "l.admin.UrlBlobB\002\030\001\022.\n\013full_inputs\030\003 \001(\013" + - "2\031.flyteidl.core.LiteralMap\022/\n\014full_outp" + - "uts\030\004 \001(\0132\031.flyteidl.core.LiteralMapB7Z5" + - "github.com/flyteorg/flyteidl/gen/pb-go/f" + - "lyteidl/adminb\006proto3" + "core.Identifier\022I\n\024state_change_details\030" + + "\016 \001(\0132+.flyteidl.admin.ExecutionStateCha" + + "ngeDetailsB\017\n\routput_result\"+\n\016SystemMet" + + "adata\022\031\n\021execution_cluster\030\001 \001(\t\"\332\003\n\021Exe" + + "cutionMetadata\022=\n\004mode\030\001 \001(\0162/.flyteidl." + + "admin.ExecutionMetadata.ExecutionMode\022\021\n" + + "\tprincipal\030\002 \001(\t\022\017\n\007nesting\030\003 \001(\r\0220\n\014sch" + + "eduled_at\030\004 \001(\0132\032.google.protobuf.Timest" + + "amp\022E\n\025parent_node_execution\030\005 \001(\0132&.fly" + + "teidl.core.NodeExecutionIdentifier\022G\n\023re" + + "ference_execution\030\020 \001(\0132*.flyteidl.core." + + "WorkflowExecutionIdentifier\0227\n\017system_me" + + "tadata\030\021 \001(\0132\036.flyteidl.admin.SystemMeta" + + "data\"g\n\rExecutionMode\022\n\n\006MANUAL\020\000\022\r\n\tSCH" + + "EDULED\020\001\022\n\n\006SYSTEM\020\002\022\014\n\010RELAUNCH\020\003\022\022\n\016CH" + + "ILD_WORKFLOW\020\004\022\r\n\tRECOVERED\020\005\"G\n\020Notific" + + "ationList\0223\n\rnotifications\030\001 \003(\0132\034.flyte" + + "idl.admin.Notification\"\260\004\n\rExecutionSpec" + + "\022.\n\013launch_plan\030\001 \001(\0132\031.flyteidl.core.Id" + + "entifier\022-\n\006inputs\030\002 \001(\0132\031.flyteidl.core" + + ".LiteralMapB\002\030\001\0223\n\010metadata\030\003 \001(\0132!.flyt" + + "eidl.admin.ExecutionMetadata\0229\n\rnotifica" + + "tions\030\005 \001(\0132 .flyteidl.admin.Notificatio" + + "nListH\000\022\025\n\013disable_all\030\006 \001(\010H\000\022&\n\006labels" + + "\030\007 \001(\0132\026.flyteidl.admin.Labels\0220\n\013annota" + + "tions\030\010 \001(\0132\033.flyteidl.admin.Annotations" + + "\0228\n\020security_context\030\n \001(\0132\036.flyteidl.co" + + "re.SecurityContext\022/\n\tauth_role\030\020 \001(\0132\030." + + "flyteidl.admin.AuthRoleB\002\030\001\022;\n\022quality_o" + + "f_service\030\021 \001(\0132\037.flyteidl.core.QualityO" + + "fService\022\027\n\017max_parallelism\030\022 \001(\005B\030\n\026not" + + "ification_overridesJ\004\010\004\020\005\"b\n\031ExecutionTe" + + "rminateRequest\0226\n\002id\030\001 \001(\0132*.flyteidl.co" + + "re.WorkflowExecutionIdentifier\022\r\n\005cause\030" + + "\002 \001(\t\"\034\n\032ExecutionTerminateResponse\"Y\n\037W" + + "orkflowExecutionGetDataRequest\0226\n\002id\030\001 \001" + + "(\0132*.flyteidl.core.WorkflowExecutionIden" + + "tifier\"\336\001\n WorkflowExecutionGetDataRespo" + + "nse\022,\n\007outputs\030\001 \001(\0132\027.flyteidl.admin.Ur" + + "lBlobB\002\030\001\022+\n\006inputs\030\002 \001(\0132\027.flyteidl.adm" + + "in.UrlBlobB\002\030\001\022.\n\013full_inputs\030\003 \001(\0132\031.fl" + + "yteidl.core.LiteralMap\022/\n\014full_outputs\030\004" + + " \001(\0132\031.flyteidl.core.LiteralMap\"\177\n\026Execu" + + "tionUpdateRequest\0226\n\002id\030\001 \001(\0132*.flyteidl" + + ".core.WorkflowExecutionIdentifier\022-\n\005sta" + + "te\030\002 \001(\0162\036.flyteidl.admin.ExecutionState" + + "\"\220\001\n\033ExecutionStateChangeDetails\022-\n\005stat" + + "e\030\001 \001(\0162\036.flyteidl.admin.ExecutionState\022" + + "/\n\013occurred_at\030\002 \001(\0132\032.google.protobuf.T" + + "imestamp\022\021\n\tprincipal\030\003 \001(\t\"\031\n\027Execution" + + "UpdateResponse*>\n\016ExecutionState\022\024\n\020EXEC" + + "UTION_ACTIVE\020\000\022\026\n\022EXECUTION_ARCHIVED\020\001B7" + + "Z5github.com/flyteorg/flyteidl/gen/pb-go" + + "/flyteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -22888,7 +25462,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_ExecutionClosure_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_ExecutionClosure_descriptor, - new java.lang.String[] { "Outputs", "Error", "AbortCause", "AbortMetadata", "OutputData", "ComputedInputs", "Phase", "StartedAt", "Duration", "CreatedAt", "UpdatedAt", "Notifications", "WorkflowId", "OutputResult", }); + new java.lang.String[] { "Outputs", "Error", "AbortCause", "AbortMetadata", "OutputData", "ComputedInputs", "Phase", "StartedAt", "Duration", "CreatedAt", "UpdatedAt", "Notifications", "WorkflowId", "StateChangeDetails", "OutputResult", }); internal_static_flyteidl_admin_SystemMetadata_descriptor = getDescriptor().getMessageTypes().get(10); internal_static_flyteidl_admin_SystemMetadata_fieldAccessorTable = new @@ -22937,6 +25511,24 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_WorkflowExecutionGetDataResponse_descriptor, new java.lang.String[] { "Outputs", "Inputs", "FullInputs", "FullOutputs", }); + internal_static_flyteidl_admin_ExecutionUpdateRequest_descriptor = + getDescriptor().getMessageTypes().get(18); + internal_static_flyteidl_admin_ExecutionUpdateRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ExecutionUpdateRequest_descriptor, + new java.lang.String[] { "Id", "State", }); + internal_static_flyteidl_admin_ExecutionStateChangeDetails_descriptor = + getDescriptor().getMessageTypes().get(19); + internal_static_flyteidl_admin_ExecutionStateChangeDetails_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ExecutionStateChangeDetails_descriptor, + new java.lang.String[] { "State", "OccurredAt", "Principal", }); + internal_static_flyteidl_admin_ExecutionUpdateResponse_descriptor = + getDescriptor().getMessageTypes().get(20); + internal_static_flyteidl_admin_ExecutionUpdateResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ExecutionUpdateResponse_descriptor, + new java.lang.String[] { }); flyteidl.admin.Common.getDescriptor(); flyteidl.core.Literals.getDescriptor(); flyteidl.core.Execution.getDescriptor(); diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index fd03a565ca..86e569427f 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -37,7 +37,7 @@ public static void registerAllExtensions( "dmin/task_execution.proto\032\034flyteidl/admi" + "n/version.proto\032\033flyteidl/admin/common.p" + "roto\032,protoc-gen-swagger/options/annotat" + - "ions.proto2\305f\n\014AdminService\022\305\002\n\nCreateTa" + + "ions.proto2\236h\n\014AdminService\022\305\002\n\nCreateTa" + "sk\022!.flyteidl.admin.TaskCreateRequest\032\"." + "flyteidl.admin.TaskCreateResponse\"\357\001\202\323\344\223" + "\002\022\"\r/api/v1/tasks:\001*\222A\323\001\032&Create and reg" + @@ -178,196 +178,201 @@ public static void registerAllExtensions( "uest\032\031.flyteidl.admin.Execution\"j\202\323\344\223\0027\022" + "5/api/v1/executions/{id.project}/{id.dom" + "ain}/{id.name}\222A*\032(Retrieve an existing " + - "workflow execution.\022\202\002\n\020GetExecutionData" + - "\022/.flyteidl.admin.WorkflowExecutionGetDa" + - "taRequest\0320.flyteidl.admin.WorkflowExecu" + - "tionGetDataResponse\"\212\001\202\323\344\223\002<\022:/api/v1/da" + - "ta/executions/{id.project}/{id.domain}/{" + - "id.name}\222AE\032CRetrieve input and output d" + - "ata from an existing workflow execution." + - "\022\310\001\n\016ListExecutions\022#.flyteidl.admin.Res" + - "ourceListRequest\032\035.flyteidl.admin.Execut" + - "ionList\"r\202\323\344\223\002-\022+/api/v1/executions/{id." + - "project}/{id.domain}\222A<\032:Fetch existing " + - "workflow executions matching input filte" + - "rs.\022\364\001\n\022TerminateExecution\022).flyteidl.ad" + - "min.ExecutionTerminateRequest\032*.flyteidl" + - ".admin.ExecutionTerminateResponse\"\206\001\202\323\344\223" + - "\002:*5/api/v1/executions/{id.project}/{id." + - "domain}/{id.name}:\001*\222AC\032ATerminate the a" + - "ctive workflow execution specified in th" + - "e request.\022\374\001\n\020GetNodeExecution\022\'.flytei" + - "dl.admin.NodeExecutionGetRequest\032\035.flyte" + - "idl.admin.NodeExecution\"\237\001\202\323\344\223\002p\022n/api/v" + - "1/node_executions/{id.execution_id.proje" + - "ct}/{id.execution_id.domain}/{id.executi" + - "on_id.name}/{id.node_id}\222A&\032$Retrieve an" + - " existing node execution.\022\232\002\n\022ListNodeEx" + - "ecutions\022(.flyteidl.admin.NodeExecutionL" + - "istRequest\032!.flyteidl.admin.NodeExecutio" + - "nList\"\266\001\202\323\344\223\002u\022s/api/v1/node_executions/" + - "{workflow_execution_id.project}/{workflo" + - "w_execution_id.domain}/{workflow_executi" + - "on_id.name}\222A8\0326Fetch existing node exec" + - "utions matching input filters.\022\357\004\n\031ListN" + - "odeExecutionsForTask\022/.flyteidl.admin.No" + - "deExecutionForTaskListRequest\032!.flyteidl" + - ".admin.NodeExecutionList\"\375\003\202\323\344\223\002\254\003\022\251\003/ap" + - "i/v1/children/task_executions/{task_exec" + - "ution_id.node_execution_id.execution_id." + - "project}/{task_execution_id.node_executi" + - "on_id.execution_id.domain}/{task_executi" + - "on_id.node_execution_id.execution_id.nam" + - "e}/{task_execution_id.node_execution_id." + - "node_id}/{task_execution_id.task_id.proj" + - "ect}/{task_execution_id.task_id.domain}/" + - "{task_execution_id.task_id.name}/{task_e" + - "xecution_id.task_id.version}/{task_execu" + - "tion_id.retry_attempt}\222AG\032EFetch child n" + - "ode executions launched by the specified" + - " task execution.\022\263\002\n\024GetNodeExecutionDat" + - "a\022+.flyteidl.admin.NodeExecutionGetDataR" + - "equest\032,.flyteidl.admin.NodeExecutionGet" + - "DataResponse\"\277\001\202\323\344\223\002u\022s/api/v1/data/node" + - "_executions/{id.execution_id.project}/{i" + - "d.execution_id.domain}/{id.execution_id." + - "name}/{id.node_id}\222AA\032?Retrieve input an" + - "d output data from an existing node exec" + - "ution.\022\227\001\n\017RegisterProject\022&.flyteidl.ad" + - "min.ProjectRegisterRequest\032\'.flyteidl.ad" + - "min.ProjectRegisterResponse\"3\202\323\344\223\002\025\"\020/ap" + - "i/v1/projects:\001*\222A\025\032\023Register a project." + - "\022\207\001\n\rUpdateProject\022\027.flyteidl.admin.Proj" + - "ect\032%.flyteidl.admin.ProjectUpdateRespon" + - "se\"6\202\323\344\223\002\032\032\025/api/v1/projects/{id}:\001*\222A\023\032" + - "\021Update a project.\022\205\001\n\014ListProjects\022\".fl" + - "yteidl.admin.ProjectListRequest\032\030.flytei" + - "dl.admin.Projects\"7\202\323\344\223\002\022\022\020/api/v1/proje" + - "cts\222A\034\032\032Fetch registered projects.\022\335\001\n\023C" + - "reateWorkflowEvent\022-.flyteidl.admin.Work" + - "flowExecutionEventRequest\032..flyteidl.adm" + - "in.WorkflowExecutionEventResponse\"g\202\323\344\223\002" + - "\035\"\030/api/v1/events/workflows:\001*\222AA\032?Creat" + - "e a workflow execution event recording a" + - " phase transition.\022\311\001\n\017CreateNodeEvent\022)" + - ".flyteidl.admin.NodeExecutionEventReques" + - "t\032*.flyteidl.admin.NodeExecutionEventRes" + - "ponse\"_\202\323\344\223\002\031\"\024/api/v1/events/nodes:\001*\222A" + - "=\032;Create a node execution event recordi" + - "ng a phase transition.\022\311\001\n\017CreateTaskEve" + - "nt\022).flyteidl.admin.TaskExecutionEventRe" + - "quest\032*.flyteidl.admin.TaskExecutionEven" + - "tResponse\"_\202\323\344\223\002\031\"\024/api/v1/events/tasks:" + - "\001*\222A=\032;Create a task execution event rec" + - "ording a phase transition.\022\251\003\n\020GetTaskEx" + - "ecution\022\'.flyteidl.admin.TaskExecutionGe" + - "tRequest\032\035.flyteidl.admin.TaskExecution\"" + - "\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{id." + - "node_execution_id.execution_id.project}/" + - "{id.node_execution_id.execution_id.domai" + - "n}/{id.node_execution_id.execution_id.na" + - "me}/{id.node_execution_id.node_id}/{id.t" + - "ask_id.project}/{id.task_id.domain}/{id." + - "task_id.name}/{id.task_id.version}/{id.r" + - "etry_attempt}\222A&\032$Retrieve an existing t" + - "ask execution.\022\323\002\n\022ListTaskExecutions\022(." + - "flyteidl.admin.TaskExecutionListRequest\032" + - "!.flyteidl.admin.TaskExecutionList\"\357\001\202\323\344" + - "\223\002\255\001\022\252\001/api/v1/task_executions/{node_exe" + - "cution_id.execution_id.project}/{node_ex" + - "ecution_id.execution_id.domain}/{node_ex" + - "ecution_id.execution_id.name}/{node_exec" + - "ution_id.node_id}\222A8\0326Fetch existing tas" + - "k executions matching input filters.\022\340\003\n" + - "\024GetTaskExecutionData\022+.flyteidl.admin.T" + - "askExecutionGetDataRequest\032,.flyteidl.ad" + - "min.TaskExecutionGetDataResponse\"\354\002\202\323\344\223\002" + - "\241\002\022\236\002/api/v1/data/task_executions/{id.no" + - "de_execution_id.execution_id.project}/{i" + - "d.node_execution_id.execution_id.domain}" + - "/{id.node_execution_id.execution_id.name" + - "}/{id.node_execution_id.node_id}/{id.tas" + - "k_id.project}/{id.task_id.domain}/{id.ta" + - "sk_id.name}/{id.task_id.version}/{id.ret" + - "ry_attempt}\222AA\032?Retrieve input and outpu" + - "t data from an existing task execution.\022" + - "\277\002\n\035UpdateProjectDomainAttributes\0224.flyt" + - "eidl.admin.ProjectDomainAttributesUpdate" + - "Request\0325.flyteidl.admin.ProjectDomainAt" + - "tributesUpdateResponse\"\260\001\202\323\344\223\002O\032J/api/v1" + - "/project_domain_attributes/{attributes.p" + - "roject}/{attributes.domain}:\001*\222AX\032VUpdat" + - "e the customized resource attributes ass" + - "ociated with a project-domain combinatio" + - "n\022\237\002\n\032GetProjectDomainAttributes\0221.flyte" + - "idl.admin.ProjectDomainAttributesGetRequ" + - "est\0322.flyteidl.admin.ProjectDomainAttrib" + - "utesGetResponse\"\231\001\202\323\344\223\0026\0224/api/v1/projec" + - "t_domain_attributes/{project}/{domain}\222A" + - "Z\032XRetrieve the customized resource attr" + - "ibutes associated with a project-domain " + - "combination\022\251\002\n\035DeleteProjectDomainAttri" + - "butes\0224.flyteidl.admin.ProjectDomainAttr" + - "ibutesDeleteRequest\0325.flyteidl.admin.Pro" + - "jectDomainAttributesDeleteResponse\"\232\001\202\323\344" + - "\223\0029*4/api/v1/project_domain_attributes/{" + - "project}/{domain}:\001*\222AX\032VDelete the cust" + - "omized resource attributes associated wi" + - "th a project-domain combination\022\316\002\n\030Upda" + - "teWorkflowAttributes\022/.flyteidl.admin.Wo" + - "rkflowAttributesUpdateRequest\0320.flyteidl" + - ".admin.WorkflowAttributesUpdateResponse\"" + - "\316\001\202\323\344\223\002_\032Z/api/v1/workflow_attributes/{a" + - "ttributes.project}/{attributes.domain}/{" + - "attributes.workflow}:\001*\222Af\032dUpdate the c" + - "ustomized resource attributes associated" + - " with a project, domain and workflow com" + - "bination\022\243\002\n\025GetWorkflowAttributes\022,.fly" + - "teidl.admin.WorkflowAttributesGetRequest" + - "\032-.flyteidl.admin.WorkflowAttributesGetR" + - "esponse\"\254\001\202\323\344\223\002;\0229/api/v1/workflow_attri" + - "butes/{project}/{domain}/{workflow}\222Ah\032f" + - "Retrieve the customized resource attribu" + - "tes associated with a project, domain an" + - "d workflow combination\022\255\002\n\030DeleteWorkflo" + - "wAttributes\022/.flyteidl.admin.WorkflowAtt" + - "ributesDeleteRequest\0320.flyteidl.admin.Wo" + - "rkflowAttributesDeleteResponse\"\255\001\202\323\344\223\002>*" + - "9/api/v1/workflow_attributes/{project}/{" + - "domain}/{workflow}:\001*\222Af\032dDelete the cus" + - "tomized resource attributes associated w" + - "ith a project, domain and workflow combi" + - "nation\022\341\001\n\027ListMatchableAttributes\022..fly" + - "teidl.admin.ListMatchableAttributesReque" + - "st\032/.flyteidl.admin.ListMatchableAttribu" + - "tesResponse\"e\202\323\344\223\002\036\022\034/api/v1/matchable_a" + - "ttributes\222A>\032*9/api/v1/workflow_attri" + + "butes/{project}/{domain}/{workflow}:\001*\222A" + + "f\032dDelete the customized resource attrib" + + "utes associated with a project, domain a" + + "nd workflow combination\022\341\001\n\027ListMatchabl" + + "eAttributes\022..flyteidl.admin.ListMatchab" + + "leAttributesRequest\032/.flyteidl.admin.Lis" + + "tMatchableAttributesResponse\"e\202\323\344\223\002\036\022\034/a" + + "pi/v1/matchable_attributes\222A>\032; + /** + * Calls UpdateExecution. + * @param request ExecutionUpdateRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ExecutionUpdateResponse + */ + public updateExecution(request: flyteidl.admin.IExecutionUpdateRequest, callback: flyteidl.service.AdminService.UpdateExecutionCallback): void; + + /** + * Calls UpdateExecution. + * @param request ExecutionUpdateRequest message or plain object + * @returns Promise + */ + public updateExecution(request: flyteidl.admin.IExecutionUpdateRequest): Promise; + /** * Calls GetExecutionData. * @param request WorkflowExecutionGetDataRequest message or plain object @@ -15678,6 +15872,13 @@ export namespace flyteidl { */ type GetExecutionCallback = (error: (Error|null), response?: flyteidl.admin.Execution) => void; + /** + * Callback as used by {@link flyteidl.service.AdminService#updateExecution}. + * @param error Error, if any + * @param [response] ExecutionUpdateResponse + */ + type UpdateExecutionCallback = (error: (Error|null), response?: flyteidl.admin.ExecutionUpdateResponse) => void; + /** * Callback as used by {@link flyteidl.service.AdminService#getExecutionData}. * @param error Error, if any diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index a6d8efd3bf..5e471cb7f7 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -21649,6 +21649,7 @@ export const flyteidl = $root.flyteidl = (() => { * @property {google.protobuf.ITimestamp|null} [updatedAt] ExecutionClosure updatedAt * @property {Array.|null} [notifications] ExecutionClosure notifications * @property {flyteidl.core.IIdentifier|null} [workflowId] ExecutionClosure workflowId + * @property {flyteidl.admin.IExecutionStateChangeDetails|null} [stateChangeDetails] ExecutionClosure stateChangeDetails */ /** @@ -21771,6 +21772,14 @@ export const flyteidl = $root.flyteidl = (() => { */ ExecutionClosure.prototype.workflowId = null; + /** + * ExecutionClosure stateChangeDetails. + * @member {flyteidl.admin.IExecutionStateChangeDetails|null|undefined} stateChangeDetails + * @memberof flyteidl.admin.ExecutionClosure + * @instance + */ + ExecutionClosure.prototype.stateChangeDetails = null; + // OneOf field names bound to virtual getters and setters let $oneOfFields; @@ -21836,6 +21845,8 @@ export const flyteidl = $root.flyteidl = (() => { $root.flyteidl.admin.AbortMetadata.encode(message.abortMetadata, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim(); if (message.outputData != null && message.hasOwnProperty("outputData")) $root.flyteidl.core.LiteralMap.encode(message.outputData, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim(); + if (message.stateChangeDetails != null && message.hasOwnProperty("stateChangeDetails")) + $root.flyteidl.admin.ExecutionStateChangeDetails.encode(message.stateChangeDetails, writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim(); return writer; }; @@ -21898,6 +21909,9 @@ export const flyteidl = $root.flyteidl = (() => { case 11: message.workflowId = $root.flyteidl.core.Identifier.decode(reader, reader.uint32()); break; + case 14: + message.stateChangeDetails = $root.flyteidl.admin.ExecutionStateChangeDetails.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -22018,6 +22032,11 @@ export const flyteidl = $root.flyteidl = (() => { if (error) return "workflowId." + error; } + if (message.stateChangeDetails != null && message.hasOwnProperty("stateChangeDetails")) { + let error = $root.flyteidl.admin.ExecutionStateChangeDetails.verify(message.stateChangeDetails); + if (error) + return "stateChangeDetails." + error; + } return null; }; @@ -23328,6 +23347,398 @@ export const flyteidl = $root.flyteidl = (() => { return WorkflowExecutionGetDataResponse; })(); + /** + * ExecutionState enum. + * @name flyteidl.admin.ExecutionState + * @enum {string} + * @property {number} EXECUTION_ACTIVE=0 EXECUTION_ACTIVE value + * @property {number} EXECUTION_ARCHIVED=1 EXECUTION_ARCHIVED value + */ + admin.ExecutionState = (function() { + const valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "EXECUTION_ACTIVE"] = 0; + values[valuesById[1] = "EXECUTION_ARCHIVED"] = 1; + return values; + })(); + + admin.ExecutionUpdateRequest = (function() { + + /** + * Properties of an ExecutionUpdateRequest. + * @memberof flyteidl.admin + * @interface IExecutionUpdateRequest + * @property {flyteidl.core.IWorkflowExecutionIdentifier|null} [id] ExecutionUpdateRequest id + * @property {flyteidl.admin.ExecutionState|null} [state] ExecutionUpdateRequest state + */ + + /** + * Constructs a new ExecutionUpdateRequest. + * @memberof flyteidl.admin + * @classdesc Represents an ExecutionUpdateRequest. + * @implements IExecutionUpdateRequest + * @constructor + * @param {flyteidl.admin.IExecutionUpdateRequest=} [properties] Properties to set + */ + function ExecutionUpdateRequest(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExecutionUpdateRequest id. + * @member {flyteidl.core.IWorkflowExecutionIdentifier|null|undefined} id + * @memberof flyteidl.admin.ExecutionUpdateRequest + * @instance + */ + ExecutionUpdateRequest.prototype.id = null; + + /** + * ExecutionUpdateRequest state. + * @member {flyteidl.admin.ExecutionState} state + * @memberof flyteidl.admin.ExecutionUpdateRequest + * @instance + */ + ExecutionUpdateRequest.prototype.state = 0; + + /** + * Creates a new ExecutionUpdateRequest instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ExecutionUpdateRequest + * @static + * @param {flyteidl.admin.IExecutionUpdateRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ExecutionUpdateRequest} ExecutionUpdateRequest instance + */ + ExecutionUpdateRequest.create = function create(properties) { + return new ExecutionUpdateRequest(properties); + }; + + /** + * Encodes the specified ExecutionUpdateRequest message. Does not implicitly {@link flyteidl.admin.ExecutionUpdateRequest.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ExecutionUpdateRequest + * @static + * @param {flyteidl.admin.IExecutionUpdateRequest} message ExecutionUpdateRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExecutionUpdateRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.id != null && message.hasOwnProperty("id")) + $root.flyteidl.core.WorkflowExecutionIdentifier.encode(message.id, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.state != null && message.hasOwnProperty("state")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.state); + return writer; + }; + + /** + * Decodes an ExecutionUpdateRequest message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ExecutionUpdateRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ExecutionUpdateRequest} ExecutionUpdateRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExecutionUpdateRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ExecutionUpdateRequest(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.id = $root.flyteidl.core.WorkflowExecutionIdentifier.decode(reader, reader.uint32()); + break; + case 2: + message.state = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies an ExecutionUpdateRequest message. + * @function verify + * @memberof flyteidl.admin.ExecutionUpdateRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExecutionUpdateRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.id != null && message.hasOwnProperty("id")) { + let error = $root.flyteidl.core.WorkflowExecutionIdentifier.verify(message.id); + if (error) + return "id." + error; + } + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + break; + } + return null; + }; + + return ExecutionUpdateRequest; + })(); + + admin.ExecutionStateChangeDetails = (function() { + + /** + * Properties of an ExecutionStateChangeDetails. + * @memberof flyteidl.admin + * @interface IExecutionStateChangeDetails + * @property {flyteidl.admin.ExecutionState|null} [state] ExecutionStateChangeDetails state + * @property {google.protobuf.ITimestamp|null} [occurredAt] ExecutionStateChangeDetails occurredAt + * @property {string|null} [principal] ExecutionStateChangeDetails principal + */ + + /** + * Constructs a new ExecutionStateChangeDetails. + * @memberof flyteidl.admin + * @classdesc Represents an ExecutionStateChangeDetails. + * @implements IExecutionStateChangeDetails + * @constructor + * @param {flyteidl.admin.IExecutionStateChangeDetails=} [properties] Properties to set + */ + function ExecutionStateChangeDetails(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExecutionStateChangeDetails state. + * @member {flyteidl.admin.ExecutionState} state + * @memberof flyteidl.admin.ExecutionStateChangeDetails + * @instance + */ + ExecutionStateChangeDetails.prototype.state = 0; + + /** + * ExecutionStateChangeDetails occurredAt. + * @member {google.protobuf.ITimestamp|null|undefined} occurredAt + * @memberof flyteidl.admin.ExecutionStateChangeDetails + * @instance + */ + ExecutionStateChangeDetails.prototype.occurredAt = null; + + /** + * ExecutionStateChangeDetails principal. + * @member {string} principal + * @memberof flyteidl.admin.ExecutionStateChangeDetails + * @instance + */ + ExecutionStateChangeDetails.prototype.principal = ""; + + /** + * Creates a new ExecutionStateChangeDetails instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ExecutionStateChangeDetails + * @static + * @param {flyteidl.admin.IExecutionStateChangeDetails=} [properties] Properties to set + * @returns {flyteidl.admin.ExecutionStateChangeDetails} ExecutionStateChangeDetails instance + */ + ExecutionStateChangeDetails.create = function create(properties) { + return new ExecutionStateChangeDetails(properties); + }; + + /** + * Encodes the specified ExecutionStateChangeDetails message. Does not implicitly {@link flyteidl.admin.ExecutionStateChangeDetails.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ExecutionStateChangeDetails + * @static + * @param {flyteidl.admin.IExecutionStateChangeDetails} message ExecutionStateChangeDetails message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExecutionStateChangeDetails.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.state != null && message.hasOwnProperty("state")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state); + if (message.occurredAt != null && message.hasOwnProperty("occurredAt")) + $root.google.protobuf.Timestamp.encode(message.occurredAt, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.principal != null && message.hasOwnProperty("principal")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.principal); + return writer; + }; + + /** + * Decodes an ExecutionStateChangeDetails message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ExecutionStateChangeDetails + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ExecutionStateChangeDetails} ExecutionStateChangeDetails + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExecutionStateChangeDetails.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ExecutionStateChangeDetails(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.state = reader.int32(); + break; + case 2: + message.occurredAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + case 3: + message.principal = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies an ExecutionStateChangeDetails message. + * @function verify + * @memberof flyteidl.admin.ExecutionStateChangeDetails + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExecutionStateChangeDetails.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.state != null && message.hasOwnProperty("state")) + switch (message.state) { + default: + return "state: enum value expected"; + case 0: + case 1: + break; + } + if (message.occurredAt != null && message.hasOwnProperty("occurredAt")) { + let error = $root.google.protobuf.Timestamp.verify(message.occurredAt); + if (error) + return "occurredAt." + error; + } + if (message.principal != null && message.hasOwnProperty("principal")) + if (!$util.isString(message.principal)) + return "principal: string expected"; + return null; + }; + + return ExecutionStateChangeDetails; + })(); + + admin.ExecutionUpdateResponse = (function() { + + /** + * Properties of an ExecutionUpdateResponse. + * @memberof flyteidl.admin + * @interface IExecutionUpdateResponse + */ + + /** + * Constructs a new ExecutionUpdateResponse. + * @memberof flyteidl.admin + * @classdesc Represents an ExecutionUpdateResponse. + * @implements IExecutionUpdateResponse + * @constructor + * @param {flyteidl.admin.IExecutionUpdateResponse=} [properties] Properties to set + */ + function ExecutionUpdateResponse(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new ExecutionUpdateResponse instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ExecutionUpdateResponse + * @static + * @param {flyteidl.admin.IExecutionUpdateResponse=} [properties] Properties to set + * @returns {flyteidl.admin.ExecutionUpdateResponse} ExecutionUpdateResponse instance + */ + ExecutionUpdateResponse.create = function create(properties) { + return new ExecutionUpdateResponse(properties); + }; + + /** + * Encodes the specified ExecutionUpdateResponse message. Does not implicitly {@link flyteidl.admin.ExecutionUpdateResponse.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ExecutionUpdateResponse + * @static + * @param {flyteidl.admin.IExecutionUpdateResponse} message ExecutionUpdateResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExecutionUpdateResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Decodes an ExecutionUpdateResponse message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ExecutionUpdateResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ExecutionUpdateResponse} ExecutionUpdateResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExecutionUpdateResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ExecutionUpdateResponse(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies an ExecutionUpdateResponse message. + * @function verify + * @memberof flyteidl.admin.ExecutionUpdateResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExecutionUpdateResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + return ExecutionUpdateResponse; + })(); + admin.LaunchPlanCreateRequest = (function() { /** @@ -36046,6 +36457,39 @@ export const flyteidl = $root.flyteidl = (() => { * @variation 2 */ + /** + * Callback as used by {@link flyteidl.service.AdminService#updateExecution}. + * @memberof flyteidl.service.AdminService + * @typedef UpdateExecutionCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {flyteidl.admin.ExecutionUpdateResponse} [response] ExecutionUpdateResponse + */ + + /** + * Calls UpdateExecution. + * @function updateExecution + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IExecutionUpdateRequest} request ExecutionUpdateRequest message or plain object + * @param {flyteidl.service.AdminService.UpdateExecutionCallback} callback Node-style callback called with the error, if any, and ExecutionUpdateResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AdminService.prototype.updateExecution = function updateExecution(request, callback) { + return this.rpcCall(updateExecution, $root.flyteidl.admin.ExecutionUpdateRequest, $root.flyteidl.admin.ExecutionUpdateResponse, request, callback); + }, "name", { value: "UpdateExecution" }); + + /** + * Calls UpdateExecution. + * @function updateExecution + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IExecutionUpdateRequest} request ExecutionUpdateRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link flyteidl.service.AdminService#getExecutionData}. * @memberof flyteidl.service.AdminService diff --git a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py index e68c56b9fd..7cd24e0b80 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/execution_pb2.py @@ -4,6 +4,7 @@ import sys _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection @@ -27,10 +28,35 @@ package='flyteidl.admin', syntax='proto3', serialized_options=_b('Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin'), - serialized_pb=_b('\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9f\x01\n\x16\x45xecutionCreateRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12+\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpec\x12)\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMap\"`\n\x18\x45xecutionRelaunchRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\x0c\n\x04name\x18\x03 \x01(\t\"\x94\x01\n\x17\x45xecutionRecoverRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadata\"Q\n\x17\x45xecutionCreateResponse\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\"U\n\x1bWorkflowExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\"\xa3\x01\n\tExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12+\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpec\x12\x31\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosure\"M\n\rExecutionList\x12-\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.Execution\x12\r\n\x05token\x18\x02 \x01(\t\"X\n\x0eLiteralMapBlob\x12/\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00\x12\r\n\x03uri\x18\x02 \x01(\tH\x00\x42\x06\n\x04\x64\x61ta\"1\n\rAbortMetadata\x12\r\n\x05\x63\x61use\x18\x01 \x01(\t\x12\x11\n\tprincipal\x18\x02 \x01(\t\"\xa5\x05\n\x10\x45xecutionClosure\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00\x12.\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00\x12\x19\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00\x12\x37\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00\x12\x34\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00\x12\x36\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01\x12\x35\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.Phase\x12.\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.Notification\x12.\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.IdentifierB\x0f\n\routput_result\"+\n\x0eSystemMetadata\x12\x19\n\x11\x65xecution_cluster\x18\x01 \x01(\t\"\xda\x03\n\x11\x45xecutionMetadata\x12=\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionMode\x12\x11\n\tprincipal\x18\x02 \x01(\t\x12\x0f\n\x07nesting\x18\x03 \x01(\r\x12\x30\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifier\x12G\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\x37\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadata\"g\n\rExecutionMode\x12\n\n\x06MANUAL\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\n\n\x06SYSTEM\x10\x02\x12\x0c\n\x08RELAUNCH\x10\x03\x12\x12\n\x0e\x43HILD_WORKFLOW\x10\x04\x12\r\n\tRECOVERED\x10\x05\"G\n\x10NotificationList\x12\x33\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.Notification\"\xb0\x04\n\rExecutionSpec\x12.\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.Identifier\x12-\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01\x12\x33\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadata\x12\x39\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00\x12\x15\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00\x12&\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.Labels\x12\x30\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.Annotations\x12\x38\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContext\x12/\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01\x12;\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfService\x12\x17\n\x0fmax_parallelism\x18\x12 \x01(\x05\x42\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"b\n\x19\x45xecutionTerminateRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\r\n\x05\x63\x61use\x18\x02 \x01(\t\"\x1c\n\x1a\x45xecutionTerminateResponse\"Y\n\x1fWorkflowExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\"\xde\x01\n WorkflowExecutionGetDataResponse\x12,\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01\x12+\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01\x12.\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMap\x12/\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB7Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/adminb\x06proto3') + serialized_pb=_b('\n\x1e\x66lyteidl/admin/execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/security.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9f\x01\n\x16\x45xecutionCreateRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12+\n\x04spec\x18\x04 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpec\x12)\n\x06inputs\x18\x05 \x01(\x0b\x32\x19.flyteidl.core.LiteralMap\"`\n\x18\x45xecutionRelaunchRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\x0c\n\x04name\x18\x03 \x01(\t\"\x94\x01\n\x17\x45xecutionRecoverRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadata\"Q\n\x17\x45xecutionCreateResponse\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\"U\n\x1bWorkflowExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\"\xa3\x01\n\tExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12+\n\x04spec\x18\x02 \x01(\x0b\x32\x1d.flyteidl.admin.ExecutionSpec\x12\x31\n\x07\x63losure\x18\x03 \x01(\x0b\x32 .flyteidl.admin.ExecutionClosure\"M\n\rExecutionList\x12-\n\nexecutions\x18\x01 \x03(\x0b\x32\x19.flyteidl.admin.Execution\x12\r\n\x05token\x18\x02 \x01(\t\"X\n\x0eLiteralMapBlob\x12/\n\x06values\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00\x12\r\n\x03uri\x18\x02 \x01(\tH\x00\x42\x06\n\x04\x64\x61ta\"1\n\rAbortMetadata\x12\r\n\x05\x63\x61use\x18\x01 \x01(\t\x12\x11\n\tprincipal\x18\x02 \x01(\t\"\xf0\x05\n\x10\x45xecutionClosure\x12\x35\n\x07outputs\x18\x01 \x01(\x0b\x32\x1e.flyteidl.admin.LiteralMapBlobB\x02\x18\x01H\x00\x12.\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00\x12\x19\n\x0b\x61\x62ort_cause\x18\n \x01(\tB\x02\x18\x01H\x00\x12\x37\n\x0e\x61\x62ort_metadata\x18\x0c \x01(\x0b\x32\x1d.flyteidl.admin.AbortMetadataH\x00\x12\x34\n\x0boutput_data\x18\r \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00\x12\x36\n\x0f\x63omputed_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01\x12\x35\n\x05phase\x18\x04 \x01(\x0e\x32&.flyteidl.core.WorkflowExecution.Phase\x12.\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\rnotifications\x18\t \x03(\x0b\x32\x1c.flyteidl.admin.Notification\x12.\n\x0bworkflow_id\x18\x0b \x01(\x0b\x32\x19.flyteidl.core.Identifier\x12I\n\x14state_change_details\x18\x0e \x01(\x0b\x32+.flyteidl.admin.ExecutionStateChangeDetailsB\x0f\n\routput_result\"+\n\x0eSystemMetadata\x12\x19\n\x11\x65xecution_cluster\x18\x01 \x01(\t\"\xda\x03\n\x11\x45xecutionMetadata\x12=\n\x04mode\x18\x01 \x01(\x0e\x32/.flyteidl.admin.ExecutionMetadata.ExecutionMode\x12\x11\n\tprincipal\x18\x02 \x01(\t\x12\x0f\n\x07nesting\x18\x03 \x01(\r\x12\x30\n\x0cscheduled_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\x15parent_node_execution\x18\x05 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifier\x12G\n\x13reference_execution\x18\x10 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\x37\n\x0fsystem_metadata\x18\x11 \x01(\x0b\x32\x1e.flyteidl.admin.SystemMetadata\"g\n\rExecutionMode\x12\n\n\x06MANUAL\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\n\n\x06SYSTEM\x10\x02\x12\x0c\n\x08RELAUNCH\x10\x03\x12\x12\n\x0e\x43HILD_WORKFLOW\x10\x04\x12\r\n\tRECOVERED\x10\x05\"G\n\x10NotificationList\x12\x33\n\rnotifications\x18\x01 \x03(\x0b\x32\x1c.flyteidl.admin.Notification\"\xb0\x04\n\rExecutionSpec\x12.\n\x0blaunch_plan\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.Identifier\x12-\n\x06inputs\x18\x02 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01\x12\x33\n\x08metadata\x18\x03 \x01(\x0b\x32!.flyteidl.admin.ExecutionMetadata\x12\x39\n\rnotifications\x18\x05 \x01(\x0b\x32 .flyteidl.admin.NotificationListH\x00\x12\x15\n\x0b\x64isable_all\x18\x06 \x01(\x08H\x00\x12&\n\x06labels\x18\x07 \x01(\x0b\x32\x16.flyteidl.admin.Labels\x12\x30\n\x0b\x61nnotations\x18\x08 \x01(\x0b\x32\x1b.flyteidl.admin.Annotations\x12\x38\n\x10security_context\x18\n \x01(\x0b\x32\x1e.flyteidl.core.SecurityContext\x12/\n\tauth_role\x18\x10 \x01(\x0b\x32\x18.flyteidl.admin.AuthRoleB\x02\x18\x01\x12;\n\x12quality_of_service\x18\x11 \x01(\x0b\x32\x1f.flyteidl.core.QualityOfService\x12\x17\n\x0fmax_parallelism\x18\x12 \x01(\x05\x42\x18\n\x16notification_overridesJ\x04\x08\x04\x10\x05\"b\n\x19\x45xecutionTerminateRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12\r\n\x05\x63\x61use\x18\x02 \x01(\t\"\x1c\n\x1a\x45xecutionTerminateResponse\"Y\n\x1fWorkflowExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\"\xde\x01\n WorkflowExecutionGetDataResponse\x12,\n\x07outputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01\x12+\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01\x12.\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMap\x12/\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMap\"\x7f\n\x16\x45xecutionUpdateRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifier\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionState\"\x90\x01\n\x1b\x45xecutionStateChangeDetails\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.flyteidl.admin.ExecutionState\x12/\n\x0boccurred_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tprincipal\x18\x03 \x01(\t\"\x19\n\x17\x45xecutionUpdateResponse*>\n\x0e\x45xecutionState\x12\x14\n\x10\x45XECUTION_ACTIVE\x10\x00\x12\x16\n\x12\x45XECUTION_ARCHIVED\x10\x01\x42\x37Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/adminb\x06proto3') , dependencies=[flyteidl_dot_admin_dot_common__pb2.DESCRIPTOR,flyteidl_dot_core_dot_literals__pb2.DESCRIPTOR,flyteidl_dot_core_dot_execution__pb2.DESCRIPTOR,flyteidl_dot_core_dot_identifier__pb2.DESCRIPTOR,flyteidl_dot_core_dot_security__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) +_EXECUTIONSTATE = _descriptor.EnumDescriptor( + name='ExecutionState', + full_name='flyteidl.admin.ExecutionState', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='EXECUTION_ACTIVE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXECUTION_ARCHIVED', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=3896, + serialized_end=3958, +) +_sym_db.RegisterEnumDescriptor(_EXECUTIONSTATE) + +ExecutionState = enum_type_wrapper.EnumTypeWrapper(_EXECUTIONSTATE) +EXECUTION_ACTIVE = 0 +EXECUTION_ARCHIVED = 1 _EXECUTIONMETADATA_EXECUTIONMODE = _descriptor.EnumDescriptor( @@ -66,8 +92,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2331, - serialized_end=2434, + serialized_start=2406, + serialized_end=2509, ) _sym_db.RegisterEnumDescriptor(_EXECUTIONMETADATA_EXECUTIONMODE) @@ -536,6 +562,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='state_change_details', full_name='flyteidl.admin.ExecutionClosure.state_change_details', index=13, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -552,7 +585,7 @@ index=0, containing_type=None, fields=[]), ], serialized_start=1235, - serialized_end=1912, + serialized_end=1987, ) @@ -582,8 +615,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1914, - serialized_end=1957, + serialized_start=1989, + serialized_end=2032, ) @@ -656,8 +689,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1960, - serialized_end=2434, + serialized_start=2035, + serialized_end=2509, ) @@ -687,8 +720,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2436, - serialized_end=2507, + serialized_start=2511, + serialized_end=2582, ) @@ -791,8 +824,8 @@ name='notification_overrides', full_name='flyteidl.admin.ExecutionSpec.notification_overrides', index=0, containing_type=None, fields=[]), ], - serialized_start=2510, - serialized_end=3070, + serialized_start=2585, + serialized_end=3145, ) @@ -829,8 +862,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3072, - serialized_end=3170, + serialized_start=3147, + serialized_end=3245, ) @@ -853,8 +886,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3172, - serialized_end=3200, + serialized_start=3247, + serialized_end=3275, ) @@ -884,8 +917,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3202, - serialized_end=3291, + serialized_start=3277, + serialized_end=3366, ) @@ -936,8 +969,115 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3294, - serialized_end=3516, + serialized_start=3369, + serialized_end=3591, +) + + +_EXECUTIONUPDATEREQUEST = _descriptor.Descriptor( + name='ExecutionUpdateRequest', + full_name='flyteidl.admin.ExecutionUpdateRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='flyteidl.admin.ExecutionUpdateRequest.id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='state', full_name='flyteidl.admin.ExecutionUpdateRequest.state', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3593, + serialized_end=3720, +) + + +_EXECUTIONSTATECHANGEDETAILS = _descriptor.Descriptor( + name='ExecutionStateChangeDetails', + full_name='flyteidl.admin.ExecutionStateChangeDetails', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='state', full_name='flyteidl.admin.ExecutionStateChangeDetails.state', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='occurred_at', full_name='flyteidl.admin.ExecutionStateChangeDetails.occurred_at', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='principal', full_name='flyteidl.admin.ExecutionStateChangeDetails.principal', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3723, + serialized_end=3867, +) + + +_EXECUTIONUPDATERESPONSE = _descriptor.Descriptor( + name='ExecutionUpdateResponse', + full_name='flyteidl.admin.ExecutionUpdateResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3869, + serialized_end=3894, ) _EXECUTIONCREATEREQUEST.fields_by_name['spec'].message_type = _EXECUTIONSPEC @@ -970,6 +1110,7 @@ _EXECUTIONCLOSURE.fields_by_name['updated_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _EXECUTIONCLOSURE.fields_by_name['notifications'].message_type = flyteidl_dot_admin_dot_common__pb2._NOTIFICATION _EXECUTIONCLOSURE.fields_by_name['workflow_id'].message_type = flyteidl_dot_core_dot_identifier__pb2._IDENTIFIER +_EXECUTIONCLOSURE.fields_by_name['state_change_details'].message_type = _EXECUTIONSTATECHANGEDETAILS _EXECUTIONCLOSURE.oneofs_by_name['output_result'].fields.append( _EXECUTIONCLOSURE.fields_by_name['outputs']) _EXECUTIONCLOSURE.fields_by_name['outputs'].containing_oneof = _EXECUTIONCLOSURE.oneofs_by_name['output_result'] @@ -1013,6 +1154,10 @@ _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['inputs'].message_type = flyteidl_dot_admin_dot_common__pb2._URLBLOB _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['full_inputs'].message_type = flyteidl_dot_core_dot_literals__pb2._LITERALMAP _WORKFLOWEXECUTIONGETDATARESPONSE.fields_by_name['full_outputs'].message_type = flyteidl_dot_core_dot_literals__pb2._LITERALMAP +_EXECUTIONUPDATEREQUEST.fields_by_name['id'].message_type = flyteidl_dot_core_dot_identifier__pb2._WORKFLOWEXECUTIONIDENTIFIER +_EXECUTIONUPDATEREQUEST.fields_by_name['state'].enum_type = _EXECUTIONSTATE +_EXECUTIONSTATECHANGEDETAILS.fields_by_name['state'].enum_type = _EXECUTIONSTATE +_EXECUTIONSTATECHANGEDETAILS.fields_by_name['occurred_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP DESCRIPTOR.message_types_by_name['ExecutionCreateRequest'] = _EXECUTIONCREATEREQUEST DESCRIPTOR.message_types_by_name['ExecutionRelaunchRequest'] = _EXECUTIONRELAUNCHREQUEST DESCRIPTOR.message_types_by_name['ExecutionRecoverRequest'] = _EXECUTIONRECOVERREQUEST @@ -1031,6 +1176,10 @@ DESCRIPTOR.message_types_by_name['ExecutionTerminateResponse'] = _EXECUTIONTERMINATERESPONSE DESCRIPTOR.message_types_by_name['WorkflowExecutionGetDataRequest'] = _WORKFLOWEXECUTIONGETDATAREQUEST DESCRIPTOR.message_types_by_name['WorkflowExecutionGetDataResponse'] = _WORKFLOWEXECUTIONGETDATARESPONSE +DESCRIPTOR.message_types_by_name['ExecutionUpdateRequest'] = _EXECUTIONUPDATEREQUEST +DESCRIPTOR.message_types_by_name['ExecutionStateChangeDetails'] = _EXECUTIONSTATECHANGEDETAILS +DESCRIPTOR.message_types_by_name['ExecutionUpdateResponse'] = _EXECUTIONUPDATERESPONSE +DESCRIPTOR.enum_types_by_name['ExecutionState'] = _EXECUTIONSTATE _sym_db.RegisterFileDescriptor(DESCRIPTOR) ExecutionCreateRequest = _reflection.GeneratedProtocolMessageType('ExecutionCreateRequest', (_message.Message,), dict( @@ -1159,6 +1308,27 @@ )) _sym_db.RegisterMessage(WorkflowExecutionGetDataResponse) +ExecutionUpdateRequest = _reflection.GeneratedProtocolMessageType('ExecutionUpdateRequest', (_message.Message,), dict( + DESCRIPTOR = _EXECUTIONUPDATEREQUEST, + __module__ = 'flyteidl.admin.execution_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionUpdateRequest) + )) +_sym_db.RegisterMessage(ExecutionUpdateRequest) + +ExecutionStateChangeDetails = _reflection.GeneratedProtocolMessageType('ExecutionStateChangeDetails', (_message.Message,), dict( + DESCRIPTOR = _EXECUTIONSTATECHANGEDETAILS, + __module__ = 'flyteidl.admin.execution_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionStateChangeDetails) + )) +_sym_db.RegisterMessage(ExecutionStateChangeDetails) + +ExecutionUpdateResponse = _reflection.GeneratedProtocolMessageType('ExecutionUpdateResponse', (_message.Message,), dict( + DESCRIPTOR = _EXECUTIONUPDATERESPONSE, + __module__ = 'flyteidl.admin.execution_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ExecutionUpdateResponse) + )) +_sym_db.RegisterMessage(ExecutionUpdateResponse) + DESCRIPTOR._options = None _LITERALMAPBLOB.fields_by_name['values']._options = None diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index 3d988aa60a..4a94aba321 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -35,7 +35,7 @@ package='flyteidl.service', syntax='proto3', serialized_options=_b('Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service'), - serialized_pb=_b('\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a,protoc-gen-swagger/options/annotations.proto2\xc5\x66\n\x0c\x41\x64minService\x12\xc5\x02\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\xef\x01\x82\xd3\xe4\x93\x02\x12\"\r/api/v1/tasks:\x01*\x92\x41\xd3\x01\x1a&Create and register a task definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x12\xb2\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"o\x82\xd3\xe4\x93\x02?\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x92\x41\'\x1a%Retrieve an existing task definition.\x12\xde\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"r\x82\xd3\xe4\x93\x02%\x12#/api/v1/task_ids/{project}/{domain}\x92\x41\x44\x1a\x42\x46\x65tch existing task definition identifiers matching input filters.\x12\xeb\x01\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\x9e\x01\x82\xd3\xe4\x93\x02\\\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}\x92\x41\x39\x1a\x37\x46\x65tch existing task definitions matching input filters.\x12\xd9\x02\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\xf7\x01\x82\xd3\xe4\x93\x02\x16\"\x11/api/v1/workflows:\x01*\x92\x41\xd7\x01\x1a*Create and register a workflow definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x12\xc2\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"w\x82\xd3\xe4\x93\x02\x43\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x92\x41+\x1a)Retrieve an existing workflow definition.\x12\xed\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"}\x82\xd3\xe4\x93\x02)\x12\'/api/v1/workflow_ids/{project}/{domain}\x92\x41K\x1aIFetch an existing workflow definition identifiers matching input filters.\x12\xff\x01\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xaa\x01\x82\xd3\xe4\x93\x02\x64\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}\x92\x41=\x1a;Fetch existing workflow definitions matching input filters.\x12\xe5\x02\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\xfd\x01\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/launch_plans:\x01*\x92\x41\xda\x01\x1a-Create and register a launch plan definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x12\xcc\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"}\x82\xd3\xe4\x93\x02\x46\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x92\x41.\x1a,Retrieve an existing launch plan definition.\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02@\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x92\x41M\x1aKRetrieve the active launch plan version specified by input request filters.\x12\xeb\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\x84\x01\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x92\x41K\x1aIFetch the active launch plan versions specified by input request filters.\x12\xf3\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"\x80\x01\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x92\x41K\x1aIFetch existing launch plan definition identifiers matching input filters.\x12\x8c\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xb3\x01\x82\xd3\xe4\x93\x02j\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x92\x41@\x1a>Fetch existing launch plan definitions matching input filters.\x12\xc0\x06\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xd8\x05\x82\xd3\xe4\x93\x02I\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}:\x01*\x92\x41\x85\x05\x1a\x82\x05Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.\x12\xa2\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\">\x82\xd3\xe4\x93\x02\x17\"\x12/api/v1/executions:\x01*\x92\x41\x1e\x1a\x1c\x43reate a workflow execution.\x12\xb1\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"I\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/executions/relaunch:\x01*\x92\x41 \x1a\x1eRelaunch a workflow execution.\x12\x9d\x05\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\xb6\x04\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/executions/recover:\x01*\x92\x41\x8d\x04\x1a\x8a\x04Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\x12\xc2\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"j\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x92\x41*\x1a(Retrieve an existing workflow execution.\x12\x82\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8a\x01\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x92\x41\x45\x1a\x43Retrieve input and output data from an existing workflow execution.\x12\xc8\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"r\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x92\x41<\x1a:Fetch existing workflow executions matching input filters.\x12\xf4\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x86\x01\x82\xd3\xe4\x93\x02:*5/api/v1/executions/{id.project}/{id.domain}/{id.name}:\x01*\x92\x41\x43\x1a\x41Terminate the active workflow execution specified in the request.\x12\xfc\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x9f\x01\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41&\x1a$Retrieve an existing node execution.\x12\x9a\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb6\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x92\x41\x38\x1a\x36\x46\x65tch existing node executions matching input filters.\x12\xef\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xfd\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x92\x41G\x1a\x45\x46\x65tch child node executions launched by the specified task execution.\x12\xb3\x02\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\xbf\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41\x41\x1a?Retrieve input and output data from an existing node execution.\x12\x97\x01\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"3\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/projects:\x01*\x92\x41\x15\x1a\x13Register a project.\x12\x87\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"6\x82\xd3\xe4\x93\x02\x1a\x1a\x15/api/v1/projects/{id}:\x01*\x92\x41\x13\x1a\x11Update a project.\x12\x85\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"7\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x92\x41\x1c\x1a\x1a\x46\x65tch registered projects.\x12\xdd\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"g\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/events/workflows:\x01*\x92\x41\x41\x1a?Create a workflow execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/nodes:\x01*\x92\x41=\x1a;Create a node execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/tasks:\x01*\x92\x41=\x1a;Create a task execution event recording a phase transition.\x12\xa9\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xcc\x02\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x92\x41&\x1a$Retrieve an existing task execution.\x12\xd3\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xef\x01\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x92\x41\x38\x1a\x36\x46\x65tch existing task executions matching input filters.\x12\xe0\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xec\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x92\x41\x41\x1a?Retrieve input and output data from an existing task execution.\x12\xbf\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xb0\x01\x82\xd3\xe4\x93\x02O\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}:\x01*\x92\x41X\x1aVUpdate the customized resource attributes associated with a project-domain combination\x12\x9f\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"\x99\x01\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x92\x41Z\x1aXRetrieve the customized resource attributes associated with a project-domain combination\x12\xa9\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x9a\x01\x82\xd3\xe4\x93\x02\x39*4/api/v1/project_domain_attributes/{project}/{domain}:\x01*\x92\x41X\x1aVDelete the customized resource attributes associated with a project-domain combination\x12\xce\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xce\x01\x82\xd3\xe4\x93\x02_\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}:\x01*\x92\x41\x66\x1a\x64Update the customized resource attributes associated with a project, domain and workflow combination\x12\xa3\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\xac\x01\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x92\x41h\x1a\x66Retrieve the customized resource attributes associated with a project, domain and workflow combination\x12\xad\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\xad\x01\x82\xd3\xe4\x93\x02>*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}:\x01*\x92\x41\x66\x1a\x64\x44\x65lete the customized resource attributes associated with a project, domain and workflow combination\x12\xe1\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"e\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x92\x41>\x1a/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x92\x41M\x1aKRetrieve the active launch plan version specified by input request filters.\x12\xeb\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\x84\x01\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x92\x41K\x1aIFetch the active launch plan versions specified by input request filters.\x12\xf3\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"\x80\x01\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x92\x41K\x1aIFetch existing launch plan definition identifiers matching input filters.\x12\x8c\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xb3\x01\x82\xd3\xe4\x93\x02j\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x92\x41@\x1a>Fetch existing launch plan definitions matching input filters.\x12\xc0\x06\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xd8\x05\x82\xd3\xe4\x93\x02I\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}:\x01*\x92\x41\x85\x05\x1a\x82\x05Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.\x12\xa2\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\">\x82\xd3\xe4\x93\x02\x17\"\x12/api/v1/executions:\x01*\x92\x41\x1e\x1a\x1c\x43reate a workflow execution.\x12\xb1\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"I\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/executions/relaunch:\x01*\x92\x41 \x1a\x1eRelaunch a workflow execution.\x12\x9d\x05\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\xb6\x04\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/executions/recover:\x01*\x92\x41\x8d\x04\x1a\x8a\x04Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\x12\xc2\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"j\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x92\x41*\x1a(Retrieve an existing workflow execution.\x12\xd6\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"r\x82\xd3\xe4\x93\x02:\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}:\x01*\x92\x41/\x1a-Update execution belonging to project domain.\x12\x82\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8a\x01\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x92\x41\x45\x1a\x43Retrieve input and output data from an existing workflow execution.\x12\xc8\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"r\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x92\x41<\x1a:Fetch existing workflow executions matching input filters.\x12\xf4\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x86\x01\x82\xd3\xe4\x93\x02:*5/api/v1/executions/{id.project}/{id.domain}/{id.name}:\x01*\x92\x41\x43\x1a\x41Terminate the active workflow execution specified in the request.\x12\xfc\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x9f\x01\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41&\x1a$Retrieve an existing node execution.\x12\x9a\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb6\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x92\x41\x38\x1a\x36\x46\x65tch existing node executions matching input filters.\x12\xef\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xfd\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x92\x41G\x1a\x45\x46\x65tch child node executions launched by the specified task execution.\x12\xb3\x02\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\xbf\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41\x41\x1a?Retrieve input and output data from an existing node execution.\x12\x97\x01\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"3\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/projects:\x01*\x92\x41\x15\x1a\x13Register a project.\x12\x87\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"6\x82\xd3\xe4\x93\x02\x1a\x1a\x15/api/v1/projects/{id}:\x01*\x92\x41\x13\x1a\x11Update a project.\x12\x85\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"7\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x92\x41\x1c\x1a\x1a\x46\x65tch registered projects.\x12\xdd\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"g\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/events/workflows:\x01*\x92\x41\x41\x1a?Create a workflow execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/nodes:\x01*\x92\x41=\x1a;Create a node execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/tasks:\x01*\x92\x41=\x1a;Create a task execution event recording a phase transition.\x12\xa9\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xcc\x02\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x92\x41&\x1a$Retrieve an existing task execution.\x12\xd3\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xef\x01\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x92\x41\x38\x1a\x36\x46\x65tch existing task executions matching input filters.\x12\xe0\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xec\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x92\x41\x41\x1a?Retrieve input and output data from an existing task execution.\x12\xbf\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xb0\x01\x82\xd3\xe4\x93\x02O\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}:\x01*\x92\x41X\x1aVUpdate the customized resource attributes associated with a project-domain combination\x12\x9f\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"\x99\x01\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x92\x41Z\x1aXRetrieve the customized resource attributes associated with a project-domain combination\x12\xa9\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x9a\x01\x82\xd3\xe4\x93\x02\x39*4/api/v1/project_domain_attributes/{project}/{domain}:\x01*\x92\x41X\x1aVDelete the customized resource attributes associated with a project-domain combination\x12\xce\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xce\x01\x82\xd3\xe4\x93\x02_\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}:\x01*\x92\x41\x66\x1a\x64Update the customized resource attributes associated with a project, domain and workflow combination\x12\xa3\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\xac\x01\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x92\x41h\x1a\x66Retrieve the customized resource attributes associated with a project, domain and workflow combination\x12\xad\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\xad\x01\x82\xd3\xe4\x93\x02>*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}:\x01*\x92\x41\x66\x1a\x64\x44\x65lete the customized resource attributes associated with a project, domain and workflow combination\x12\xe1\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"e\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x92\x41>\x1a>> thread = api.update_execution(id_project, id_domain, id_name, body, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :param AdminExecutionUpdateRequest body: (required) + :return: AdminExecutionUpdateResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.update_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 + else: + (data) = self.update_execution_with_http_info(id_project, id_domain, id_name, body, **kwargs) # noqa: E501 + return data + + def update_execution_with_http_info(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 + """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + + Update execution belonging to project domain. # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_execution_with_http_info(id_project, id_domain, id_name, body, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str id_project: Name of the project the resource belongs to. (required) + :param str id_domain: Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. (required) + :param str id_name: User or system provided value for the resource. (required) + :param AdminExecutionUpdateRequest body: (required) + :return: AdminExecutionUpdateResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['id_project', 'id_domain', 'id_name', 'body'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method update_execution" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'id_project' is set + if ('id_project' not in params or + params['id_project'] is None): + raise ValueError("Missing the required parameter `id_project` when calling `update_execution`") # noqa: E501 + # verify the required parameter 'id_domain' is set + if ('id_domain' not in params or + params['id_domain'] is None): + raise ValueError("Missing the required parameter `id_domain` when calling `update_execution`") # noqa: E501 + # verify the required parameter 'id_name' is set + if ('id_name' not in params or + params['id_name'] is None): + raise ValueError("Missing the required parameter `id_name` when calling `update_execution`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `update_execution`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'id_project' in params: + path_params['id.project'] = params['id_project'] # noqa: E501 + if 'id_domain' in params: + path_params['id.domain'] = params['id_domain'] # noqa: E501 + if 'id_name' in params: + path_params['id.name'] = params['id_name'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'body' in params: + body_params = params['body'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/executions/{id.project}/{id.domain}/{id.name}', 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminExecutionUpdateResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def update_launch_plan(self, id_project, id_domain, id_name, id_version, body, **kwargs): # noqa: E501 """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py index c8d46ee0f9..4297382eb2 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py @@ -34,8 +34,12 @@ from flyteadmin.models.admin_execution_recover_request import AdminExecutionRecoverRequest from flyteadmin.models.admin_execution_relaunch_request import AdminExecutionRelaunchRequest from flyteadmin.models.admin_execution_spec import AdminExecutionSpec +from flyteadmin.models.admin_execution_state import AdminExecutionState +from flyteadmin.models.admin_execution_state_change_details import AdminExecutionStateChangeDetails from flyteadmin.models.admin_execution_terminate_request import AdminExecutionTerminateRequest from flyteadmin.models.admin_execution_terminate_response import AdminExecutionTerminateResponse +from flyteadmin.models.admin_execution_update_request import AdminExecutionUpdateRequest +from flyteadmin.models.admin_execution_update_response import AdminExecutionUpdateResponse from flyteadmin.models.admin_fixed_rate import AdminFixedRate from flyteadmin.models.admin_fixed_rate_unit import AdminFixedRateUnit from flyteadmin.models.admin_get_version_response import AdminGetVersionResponse diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_closure.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_closure.py index 105359694b..a08f3ca1d8 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_closure.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_closure.py @@ -17,6 +17,7 @@ import six from flyteadmin.models.admin_abort_metadata import AdminAbortMetadata # noqa: F401,E501 +from flyteadmin.models.admin_execution_state_change_details import AdminExecutionStateChangeDetails # noqa: F401,E501 from flyteadmin.models.admin_literal_map_blob import AdminLiteralMapBlob # noqa: F401,E501 from flyteadmin.models.admin_notification import AdminNotification # noqa: F401,E501 from flyteadmin.models.core_execution_error import CoreExecutionError # noqa: F401,E501 @@ -51,7 +52,8 @@ class AdminExecutionClosure(object): 'created_at': 'datetime', 'updated_at': 'datetime', 'notifications': 'list[AdminNotification]', - 'workflow_id': 'CoreIdentifier' + 'workflow_id': 'CoreIdentifier', + 'state_change_details': 'AdminExecutionStateChangeDetails' } attribute_map = { @@ -67,10 +69,11 @@ class AdminExecutionClosure(object): 'created_at': 'created_at', 'updated_at': 'updated_at', 'notifications': 'notifications', - 'workflow_id': 'workflow_id' + 'workflow_id': 'workflow_id', + 'state_change_details': 'state_change_details' } - def __init__(self, outputs=None, error=None, abort_cause=None, abort_metadata=None, output_data=None, computed_inputs=None, phase=None, started_at=None, duration=None, created_at=None, updated_at=None, notifications=None, workflow_id=None): # noqa: E501 + def __init__(self, outputs=None, error=None, abort_cause=None, abort_metadata=None, output_data=None, computed_inputs=None, phase=None, started_at=None, duration=None, created_at=None, updated_at=None, notifications=None, workflow_id=None, state_change_details=None): # noqa: E501 """AdminExecutionClosure - a model defined in Swagger""" # noqa: E501 self._outputs = None @@ -86,6 +89,7 @@ def __init__(self, outputs=None, error=None, abort_cause=None, abort_metadata=No self._updated_at = None self._notifications = None self._workflow_id = None + self._state_change_details = None self.discriminator = None if outputs is not None: @@ -114,6 +118,8 @@ def __init__(self, outputs=None, error=None, abort_cause=None, abort_metadata=No self.notifications = notifications if workflow_id is not None: self.workflow_id = workflow_id + if state_change_details is not None: + self.state_change_details = state_change_details @property def outputs(self): @@ -412,6 +418,27 @@ def workflow_id(self, workflow_id): self._workflow_id = workflow_id + @property + def state_change_details(self): + """Gets the state_change_details of this AdminExecutionClosure. # noqa: E501 + + + :return: The state_change_details of this AdminExecutionClosure. # noqa: E501 + :rtype: AdminExecutionStateChangeDetails + """ + return self._state_change_details + + @state_change_details.setter + def state_change_details(self, state_change_details): + """Sets the state_change_details of this AdminExecutionClosure. + + + :param state_change_details: The state_change_details of this AdminExecutionClosure. # noqa: E501 + :type: AdminExecutionStateChangeDetails + """ + + self._state_change_details = state_change_details + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_state.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_state.py new file mode 100644 index 0000000000..7f3d281b86 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_state.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + + +class AdminExecutionState(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + ACTIVE = "EXECUTION_ACTIVE" + ARCHIVED = "EXECUTION_ARCHIVED" + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + } + + attribute_map = { + } + + def __init__(self): # noqa: E501 + """AdminExecutionState - a model defined in Swagger""" # noqa: E501 + self.discriminator = None + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminExecutionState, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminExecutionState): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_state_change_details.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_state_change_details.py new file mode 100644 index 0000000000..a82156027e --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_state_change_details.py @@ -0,0 +1,173 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from flyteadmin.models.admin_execution_state import AdminExecutionState # noqa: F401,E501 + + +class AdminExecutionStateChangeDetails(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'state': 'AdminExecutionState', + 'occurred_at': 'datetime', + 'principal': 'str' + } + + attribute_map = { + 'state': 'state', + 'occurred_at': 'occurred_at', + 'principal': 'principal' + } + + def __init__(self, state=None, occurred_at=None, principal=None): # noqa: E501 + """AdminExecutionStateChangeDetails - a model defined in Swagger""" # noqa: E501 + + self._state = None + self._occurred_at = None + self._principal = None + self.discriminator = None + + if state is not None: + self.state = state + if occurred_at is not None: + self.occurred_at = occurred_at + if principal is not None: + self.principal = principal + + @property + def state(self): + """Gets the state of this AdminExecutionStateChangeDetails. # noqa: E501 + + The state of the execution is used to control its visibility in the UI/CLI. # noqa: E501 + + :return: The state of this AdminExecutionStateChangeDetails. # noqa: E501 + :rtype: AdminExecutionState + """ + return self._state + + @state.setter + def state(self, state): + """Sets the state of this AdminExecutionStateChangeDetails. + + The state of the execution is used to control its visibility in the UI/CLI. # noqa: E501 + + :param state: The state of this AdminExecutionStateChangeDetails. # noqa: E501 + :type: AdminExecutionState + """ + + self._state = state + + @property + def occurred_at(self): + """Gets the occurred_at of this AdminExecutionStateChangeDetails. # noqa: E501 + + This timestamp represents when the state changed. # noqa: E501 + + :return: The occurred_at of this AdminExecutionStateChangeDetails. # noqa: E501 + :rtype: datetime + """ + return self._occurred_at + + @occurred_at.setter + def occurred_at(self, occurred_at): + """Sets the occurred_at of this AdminExecutionStateChangeDetails. + + This timestamp represents when the state changed. # noqa: E501 + + :param occurred_at: The occurred_at of this AdminExecutionStateChangeDetails. # noqa: E501 + :type: datetime + """ + + self._occurred_at = occurred_at + + @property + def principal(self): + """Gets the principal of this AdminExecutionStateChangeDetails. # noqa: E501 + + + :return: The principal of this AdminExecutionStateChangeDetails. # noqa: E501 + :rtype: str + """ + return self._principal + + @principal.setter + def principal(self, principal): + """Sets the principal of this AdminExecutionStateChangeDetails. + + + :param principal: The principal of this AdminExecutionStateChangeDetails. # noqa: E501 + :type: str + """ + + self._principal = principal + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminExecutionStateChangeDetails, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminExecutionStateChangeDetails): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_update_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_update_request.py new file mode 100644 index 0000000000..5bbddc57b0 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_update_request.py @@ -0,0 +1,144 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from flyteadmin.models.admin_execution_state import AdminExecutionState # noqa: F401,E501 +from flyteadmin.models.core_workflow_execution_identifier import CoreWorkflowExecutionIdentifier # noqa: F401,E501 + + +class AdminExecutionUpdateRequest(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'id': 'CoreWorkflowExecutionIdentifier', + 'state': 'AdminExecutionState' + } + + attribute_map = { + 'id': 'id', + 'state': 'state' + } + + def __init__(self, id=None, state=None): # noqa: E501 + """AdminExecutionUpdateRequest - a model defined in Swagger""" # noqa: E501 + + self._id = None + self._state = None + self.discriminator = None + + if id is not None: + self.id = id + if state is not None: + self.state = state + + @property + def id(self): + """Gets the id of this AdminExecutionUpdateRequest. # noqa: E501 + + + :return: The id of this AdminExecutionUpdateRequest. # noqa: E501 + :rtype: CoreWorkflowExecutionIdentifier + """ + return self._id + + @id.setter + def id(self, id): + """Sets the id of this AdminExecutionUpdateRequest. + + + :param id: The id of this AdminExecutionUpdateRequest. # noqa: E501 + :type: CoreWorkflowExecutionIdentifier + """ + + self._id = id + + @property + def state(self): + """Gets the state of this AdminExecutionUpdateRequest. # noqa: E501 + + + :return: The state of this AdminExecutionUpdateRequest. # noqa: E501 + :rtype: AdminExecutionState + """ + return self._state + + @state.setter + def state(self, state): + """Sets the state of this AdminExecutionUpdateRequest. + + + :param state: The state of this AdminExecutionUpdateRequest. # noqa: E501 + :type: AdminExecutionState + """ + + self._state = state + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminExecutionUpdateRequest, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminExecutionUpdateRequest): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_update_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_update_response.py new file mode 100644 index 0000000000..9e9f90ee7e --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_execution_update_response.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + + +class AdminExecutionUpdateResponse(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + } + + attribute_map = { + } + + def __init__(self): # noqa: E501 + """AdminExecutionUpdateResponse - a model defined in Swagger""" # noqa: E501 + self.discriminator = None + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminExecutionUpdateResponse, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminExecutionUpdateResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_state.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_state.py new file mode 100644 index 0000000000..6df975e3c2 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_state.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_execution_state import AdminExecutionState # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminExecutionState(unittest.TestCase): + """AdminExecutionState unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminExecutionState(self): + """Test AdminExecutionState""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_execution_state.AdminExecutionState() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_state_change_details.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_state_change_details.py new file mode 100644 index 0000000000..1a116ff73b --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_state_change_details.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_execution_state_change_details import AdminExecutionStateChangeDetails # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminExecutionStateChangeDetails(unittest.TestCase): + """AdminExecutionStateChangeDetails unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminExecutionStateChangeDetails(self): + """Test AdminExecutionStateChangeDetails""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_execution_state_change_details.AdminExecutionStateChangeDetails() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_update_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_update_request.py new file mode 100644 index 0000000000..320cba4fe6 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_update_request.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_execution_update_request import AdminExecutionUpdateRequest # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminExecutionUpdateRequest(unittest.TestCase): + """AdminExecutionUpdateRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminExecutionUpdateRequest(self): + """Test AdminExecutionUpdateRequest""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_execution_update_request.AdminExecutionUpdateRequest() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_update_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_update_response.py new file mode 100644 index 0000000000..955420f043 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_execution_update_response.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_execution_update_response import AdminExecutionUpdateResponse # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminExecutionUpdateResponse(unittest.TestCase): + """AdminExecutionUpdateResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminExecutionUpdateResponse(self): + """Test AdminExecutionUpdateResponse""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_execution_update_response.AdminExecutionUpdateResponse() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py index 929af28529..501d620a0c 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py @@ -336,6 +336,13 @@ def test_terminate_execution(self): """ pass + def test_update_execution(self): + """Test case for update_execution + + Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 + """ + pass + def test_update_launch_plan(self): """Test case for update_launch_plan diff --git a/flyteidl/protos/docs/admin/admin.rst b/flyteidl/protos/docs/admin/admin.rst index 667afbadba..a2b5a8f4ce 100644 --- a/flyteidl/protos/docs/admin/admin.rst +++ b/flyteidl/protos/docs/admin/admin.rst @@ -877,6 +877,7 @@ Encapsulates the results of the Execution "updated_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Reported time at which the execution was last updated." "notifications", ":ref:`ref_flyteidl.admin.Notification`", "repeated", "The notification settings to use after merging the CreateExecutionRequest and the launch plan notification settings. An execution launched with notifications will always prefer that definition to notifications defined statically in a launch plan." "workflow_id", ":ref:`ref_flyteidl.core.Identifier`", "", "Identifies the workflow definition for this execution." + "state_change_details", ":ref:`ref_flyteidl.admin.ExecutionStateChangeDetails`", "", "Provides the details of the last stage change" @@ -1059,6 +1060,29 @@ of an execution as it progresses across phase changes. +.. _ref_flyteidl.admin.ExecutionStateChangeDetails: + +ExecutionStateChangeDetails +------------------------------------------------------------------ + + + + + +.. csv-table:: ExecutionStateChangeDetails type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "state", ":ref:`ref_flyteidl.admin.ExecutionState`", "", "The state of the execution is used to control its visibility in the UI/CLI." + "occurred_at", ":ref:`ref_google.protobuf.Timestamp`", "", "This timestamp represents when the state changed." + "principal", ":ref:`ref_string`", "", "Identifies the entity (if any) responsible for causing the state change of the execution" + + + + + + + .. _ref_flyteidl.admin.ExecutionTerminateRequest: ExecutionTerminateRequest @@ -1099,6 +1123,42 @@ Purposefully empty, may be populated in the future. +.. _ref_flyteidl.admin.ExecutionUpdateRequest: + +ExecutionUpdateRequest +------------------------------------------------------------------ + + + + + +.. csv-table:: ExecutionUpdateRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "id", ":ref:`ref_flyteidl.core.WorkflowExecutionIdentifier`", "", "Identifier of the execution to update" + "state", ":ref:`ref_flyteidl.admin.ExecutionState`", "", "State to set as the new value active/archive" + + + + + + + +.. _ref_flyteidl.admin.ExecutionUpdateResponse: + +ExecutionUpdateResponse +------------------------------------------------------------------ + + + + + + + + + + .. _ref_flyteidl.admin.LiteralMapBlob: LiteralMapBlob @@ -1251,6 +1311,22 @@ The method by which this execution was launched. "CHILD_WORKFLOW", "4", "This execution was triggered by another execution." "RECOVERED", "5", "This execution was recovered from another execution." + + +.. _ref_flyteidl.admin.ExecutionState: + +ExecutionState +------------------------------------------------------------------ + +The state of the execution is used to control its visibility in the UI/CLI. + +.. csv-table:: Enum ExecutionState values + :header: "Name", "Number", "Description" + :widths: auto + + "EXECUTION_ACTIVE", "0", "By default, all executions are considered active." + "EXECUTION_ARCHIVED", "1", "Archived executions are no longer visible in the UI." + @@ -2272,168 +2348,6 @@ Note: This is internal to Admin and doesn't need to be exposed to other componen - - - - - - - - - - - -.. _ref_flyteidl/admin/project_domain_attributes.proto: - -flyteidl/admin/project_domain_attributes.proto -================================================================== - - - - - -.. _ref_flyteidl.admin.ProjectDomainAttributes: - -ProjectDomainAttributes ------------------------------------------------------------------- - -Defines a set of custom matching attributes which defines resource defaults for a project and domain. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` - - - -.. csv-table:: ProjectDomainAttributes type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "project", ":ref:`ref_string`", "", "Unique project id for which this set of attributes will be applied." - "domain", ":ref:`ref_string`", "", "Unique domain id for which this set of attributes will be applied." - "matching_attributes", ":ref:`ref_flyteidl.admin.MatchingAttributes`", "", "" - - - - - - - -.. _ref_flyteidl.admin.ProjectDomainAttributesDeleteRequest: - -ProjectDomainAttributesDeleteRequest ------------------------------------------------------------------- - -Request to delete a set matchable project domain attribute override. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` - - - -.. csv-table:: ProjectDomainAttributesDeleteRequest type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" - "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" - "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to delete. +required" - - - - - - - -.. _ref_flyteidl.admin.ProjectDomainAttributesDeleteResponse: - -ProjectDomainAttributesDeleteResponse ------------------------------------------------------------------- - -Purposefully empty, may be populated in the future. - - - - - - - - -.. _ref_flyteidl.admin.ProjectDomainAttributesGetRequest: - -ProjectDomainAttributesGetRequest ------------------------------------------------------------------- - -Request to get an individual project domain attribute override. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` - - - -.. csv-table:: ProjectDomainAttributesGetRequest type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" - "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" - "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to return. +required" - - - - - - - -.. _ref_flyteidl.admin.ProjectDomainAttributesGetResponse: - -ProjectDomainAttributesGetResponse ------------------------------------------------------------------- - -Response to get an individual project domain attribute override. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` - - - -.. csv-table:: ProjectDomainAttributesGetResponse type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "attributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributes`", "", "" - - - - - - - -.. _ref_flyteidl.admin.ProjectDomainAttributesUpdateRequest: - -ProjectDomainAttributesUpdateRequest ------------------------------------------------------------------- - -Sets custom attributes for a project-domain combination. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` - - - -.. csv-table:: ProjectDomainAttributesUpdateRequest type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "attributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributes`", "", "+required" - - - - - - - -.. _ref_flyteidl.admin.ProjectDomainAttributesUpdateResponse: - -ProjectDomainAttributesUpdateResponse ------------------------------------------------------------------- - -Purposefully empty, may be populated in the future. - - - - - - @@ -2627,30 +2541,32 @@ The state of the project is used to control its visibility in the UI and validit -.. _ref_flyteidl/admin/schedule.proto: +.. _ref_flyteidl/admin/project_domain_attributes.proto: -flyteidl/admin/schedule.proto +flyteidl/admin/project_domain_attributes.proto ================================================================== -.. _ref_flyteidl.admin.CronSchedule: +.. _ref_flyteidl.admin.ProjectDomainAttributes: -CronSchedule +ProjectDomainAttributes ------------------------------------------------------------------ -Options for schedules to run according to a cron expression. +Defines a set of custom matching attributes which defines resource defaults for a project and domain. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` -.. csv-table:: CronSchedule type fields +.. csv-table:: ProjectDomainAttributes type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "schedule", ":ref:`ref_string`", "", "Standard/default cron implementation as described by https://en.wikipedia.org/wiki/Cron#CRON_expression; Also supports nonstandard predefined scheduling definitions as described by https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions except @reboot" - "offset", ":ref:`ref_string`", "", "ISO 8601 duration as described by https://en.wikipedia.org/wiki/ISO_8601#Durations" + "project", ":ref:`ref_string`", "", "Unique project id for which this set of attributes will be applied." + "domain", ":ref:`ref_string`", "", "Unique domain id for which this set of attributes will be applied." + "matching_attributes", ":ref:`ref_flyteidl.admin.MatchingAttributes`", "", "" @@ -2658,21 +2574,23 @@ Options for schedules to run according to a cron expression. -.. _ref_flyteidl.admin.FixedRate: +.. _ref_flyteidl.admin.ProjectDomainAttributesDeleteRequest: -FixedRate +ProjectDomainAttributesDeleteRequest ------------------------------------------------------------------ -Option for schedules run at a certain frequency e.g. every 2 minutes. +Request to delete a set matchable project domain attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` -.. csv-table:: FixedRate type fields +.. csv-table:: ProjectDomainAttributesDeleteRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "value", ":ref:`ref_uint32`", "", "" - "unit", ":ref:`ref_flyteidl.admin.FixedRateUnit`", "", "" + "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" + "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" + "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to delete. +required" @@ -2680,84 +2598,59 @@ Option for schedules run at a certain frequency e.g. every 2 minutes. -.. _ref_flyteidl.admin.Schedule: +.. _ref_flyteidl.admin.ProjectDomainAttributesDeleteResponse: -Schedule +ProjectDomainAttributesDeleteResponse ------------------------------------------------------------------ -Defines complete set of information required to trigger an execution on a schedule. +Purposefully empty, may be populated in the future. -.. csv-table:: Schedule type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "cron_expression", ":ref:`ref_string`", "", "**Deprecated.** Uses AWS syntax: Minutes Hours Day-of-month Month Day-of-week Year e.g. for a schedule that runs every 15 minutes: 0/15 * * * ? *" - "rate", ":ref:`ref_flyteidl.admin.FixedRate`", "", "" - "cron_schedule", ":ref:`ref_flyteidl.admin.CronSchedule`", "", "" - "kickoff_time_input_arg", ":ref:`ref_string`", "", "Name of the input variable that the kickoff time will be supplied to when the workflow is kicked off." - - - - -.. _ref_flyteidl.admin.FixedRateUnit: +.. _ref_flyteidl.admin.ProjectDomainAttributesGetRequest: -FixedRateUnit +ProjectDomainAttributesGetRequest ------------------------------------------------------------------ -Represents a frequency at which to run a schedule. - -.. csv-table:: Enum FixedRateUnit values - :header: "Name", "Number", "Description" - :widths: auto - - "MINUTE", "0", "" - "HOUR", "1", "" - "DAY", "2", "" - - - - +Request to get an individual project domain attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` - +.. csv-table:: ProjectDomainAttributesGetRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" + "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" + "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to return. +required" -.. _ref_flyteidl/admin/task_execution.proto: -flyteidl/admin/task_execution.proto -================================================================== -.. _ref_flyteidl.admin.TaskExecution: +.. _ref_flyteidl.admin.ProjectDomainAttributesGetResponse: -TaskExecution +ProjectDomainAttributesGetResponse ------------------------------------------------------------------ -Encapsulates all details for a single task execution entity. -A task execution represents an instantiated task, including all inputs and additional -metadata as well as computed results included state, outputs, and duration-based attributes. +Response to get an individual project domain attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` -.. csv-table:: TaskExecution type fields +.. csv-table:: ProjectDomainAttributesGetResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "id", ":ref:`ref_flyteidl.core.TaskExecutionIdentifier`", "", "Unique identifier for the task execution." - "input_uri", ":ref:`ref_string`", "", "Path to remote data store where input blob is stored." - "closure", ":ref:`ref_flyteidl.admin.TaskExecutionClosure`", "", "Task execution details and results." - "is_parent", ":ref:`ref_bool`", "", "Whether this task spawned nodes." + "attributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributes`", "", "" @@ -2765,32 +2658,21 @@ metadata as well as computed results included state, outputs, and duration-based -.. _ref_flyteidl.admin.TaskExecutionClosure: +.. _ref_flyteidl.admin.ProjectDomainAttributesUpdateRequest: -TaskExecutionClosure +ProjectDomainAttributesUpdateRequest ------------------------------------------------------------------ -Container for task execution details and results. +Sets custom attributes for a project-domain combination. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` -.. csv-table:: TaskExecutionClosure type fields +.. csv-table:: ProjectDomainAttributesUpdateRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "output_uri", ":ref:`ref_string`", "", "**Deprecated.** Path to remote data store where output blob is stored if the execution succeeded (and produced outputs). DEPRECATED. Use GetTaskExecutionData to fetch output data instead." - "error", ":ref:`ref_flyteidl.core.ExecutionError`", "", "Error information for the task execution. Populated if the execution failed." - "output_data", ":ref:`ref_flyteidl.core.LiteralMap`", "", "**Deprecated.** Raw output data produced by this task execution. DEPRECATED. Use GetTaskExecutionData to fetch output data instead." - "phase", ":ref:`ref_flyteidl.core.TaskExecution.Phase`", "", "The last recorded phase for this task execution." - "logs", ":ref:`ref_flyteidl.core.TaskLog`", "repeated", "Detailed log information output by the task execution." - "started_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Time at which the task execution began running." - "duration", ":ref:`ref_google.protobuf.Duration`", "", "The amount of time the task execution spent running." - "created_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Time at which the task execution was created." - "updated_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Time at which the task execution was last updated." - "custom_info", ":ref:`ref_google.protobuf.Struct`", "", "Custom data specific to the task plugin." - "reason", ":ref:`ref_string`", "", "If there is an explanation for the most recent phase transition, the reason will capture it." - "task_type", ":ref:`ref_string`", "", "A predefined yet extensible Task type identifier." - "metadata", ":ref:`ref_flyteidl.event.TaskExecutionMetadata`", "", "Metadata around how a task was executed." + "attributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributes`", "", "+required" @@ -2798,67 +2680,53 @@ Container for task execution details and results. -.. _ref_flyteidl.admin.TaskExecutionGetDataRequest: +.. _ref_flyteidl.admin.ProjectDomainAttributesUpdateResponse: -TaskExecutionGetDataRequest +ProjectDomainAttributesUpdateResponse ------------------------------------------------------------------ -Request structure to fetch inputs and output for a task execution. -By default this data is not returned inline in :ref:`ref_flyteidl.admin.TaskExecutionGetRequest` - - - -.. csv-table:: TaskExecutionGetDataRequest type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "id", ":ref:`ref_flyteidl.core.TaskExecutionIdentifier`", "", "The identifier of the task execution for which to fetch inputs and outputs. +required" - +Purposefully empty, may be populated in the future. -.. _ref_flyteidl.admin.TaskExecutionGetDataResponse: + -TaskExecutionGetDataResponse ------------------------------------------------------------------- + -Response structure for TaskExecutionGetDataRequest which contains inputs and outputs for a task execution. + + -.. csv-table:: TaskExecutionGetDataResponse type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - "inputs", ":ref:`ref_flyteidl.admin.UrlBlob`", "", "**Deprecated.** Signed url to fetch a core.LiteralMap of task execution inputs. Deprecated: Please use full_inputs instead." - "outputs", ":ref:`ref_flyteidl.admin.UrlBlob`", "", "**Deprecated.** Signed url to fetch a core.LiteralMap of task execution outputs. Deprecated: Please use full_outputs instead." - "full_inputs", ":ref:`ref_flyteidl.core.LiteralMap`", "", "Full_inputs will only be populated if they are under a configured size threshold." - "full_outputs", ":ref:`ref_flyteidl.core.LiteralMap`", "", "Full_outputs will only be populated if they are under a configured size threshold." +.. _ref_flyteidl/admin/schedule.proto: +flyteidl/admin/schedule.proto +================================================================== -.. _ref_flyteidl.admin.TaskExecutionGetRequest: +.. _ref_flyteidl.admin.CronSchedule: -TaskExecutionGetRequest +CronSchedule ------------------------------------------------------------------ -A message used to fetch a single task execution entity. -See :ref:`ref_flyteidl.admin.TaskExecution` for more details +Options for schedules to run according to a cron expression. -.. csv-table:: TaskExecutionGetRequest type fields +.. csv-table:: CronSchedule type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "id", ":ref:`ref_flyteidl.core.TaskExecutionIdentifier`", "", "Unique identifier for the task execution. +required" + "schedule", ":ref:`ref_string`", "", "Standard/default cron implementation as described by https://en.wikipedia.org/wiki/Cron#CRON_expression; Also supports nonstandard predefined scheduling definitions as described by https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions except @reboot" + "offset", ":ref:`ref_string`", "", "ISO 8601 duration as described by https://en.wikipedia.org/wiki/ISO_8601#Durations" @@ -2866,22 +2734,21 @@ See :ref:`ref_flyteidl.admin.TaskExecution` for more details -.. _ref_flyteidl.admin.TaskExecutionList: +.. _ref_flyteidl.admin.FixedRate: -TaskExecutionList +FixedRate ------------------------------------------------------------------ -Response structure for a query to list of task execution entities. -See :ref:`ref_flyteidl.admin.TaskExecution` for more details +Option for schedules run at a certain frequency e.g. every 2 minutes. -.. csv-table:: TaskExecutionList type fields +.. csv-table:: FixedRate type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "task_executions", ":ref:`ref_flyteidl.admin.TaskExecution`", "repeated", "" - "token", ":ref:`ref_string`", "", "In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. If there are no more results, this value will be empty." + "value", ":ref:`ref_uint32`", "", "" + "unit", ":ref:`ref_flyteidl.admin.FixedRateUnit`", "", "" @@ -2889,25 +2756,23 @@ See :ref:`ref_flyteidl.admin.TaskExecution` for more details -.. _ref_flyteidl.admin.TaskExecutionListRequest: +.. _ref_flyteidl.admin.Schedule: -TaskExecutionListRequest +Schedule ------------------------------------------------------------------ -Represents a request structure to retrieve a list of task execution entities yielded by a specific node execution. -See :ref:`ref_flyteidl.admin.TaskExecution` for more details +Defines complete set of information required to trigger an execution on a schedule. -.. csv-table:: TaskExecutionListRequest type fields +.. csv-table:: Schedule type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "node_execution_id", ":ref:`ref_flyteidl.core.NodeExecutionIdentifier`", "", "Indicates the node execution to filter by. +required" - "limit", ":ref:`ref_uint32`", "", "Indicates the number of resources to be returned. +required" - "token", ":ref:`ref_string`", "", "In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional" - "filters", ":ref:`ref_string`", "", "Indicates a list of filters passed as string. More info on constructing filters : +optional" - "sort_by", ":ref:`ref_flyteidl.admin.Sort`", "", "Sort ordering for returned list. +optional" + "cron_expression", ":ref:`ref_string`", "", "**Deprecated.** Uses AWS syntax: Minutes Hours Day-of-month Month Day-of-week Year e.g. for a schedule that runs every 15 minutes: 0/15 * * * ? *" + "rate", ":ref:`ref_flyteidl.admin.FixedRate`", "", "" + "cron_schedule", ":ref:`ref_flyteidl.admin.CronSchedule`", "", "" + "kickoff_time_input_arg", ":ref:`ref_string`", "", "Name of the input variable that the kickoff time will be supplied to when the workflow is kicked off." @@ -2915,6 +2780,23 @@ See :ref:`ref_flyteidl.admin.TaskExecution` for more details + + +.. _ref_flyteidl.admin.FixedRateUnit: + +FixedRateUnit +------------------------------------------------------------------ + +Represents a frequency at which to run a schedule. + +.. csv-table:: Enum FixedRateUnit values + :header: "Name", "Number", "Description" + :widths: auto + + "MINUTE", "0", "" + "HOUR", "1", "" + "DAY", "2", "" + @@ -3072,22 +2954,34 @@ Represents a structure that encapsulates the user-configured specification of th -.. _ref_flyteidl/admin/version.proto: +.. _ref_flyteidl/admin/task_execution.proto: -flyteidl/admin/version.proto +flyteidl/admin/task_execution.proto ================================================================== -.. _ref_flyteidl.admin.GetVersionRequest: +.. _ref_flyteidl.admin.TaskExecution: -GetVersionRequest +TaskExecution ------------------------------------------------------------------ -Empty request for GetVersion +Encapsulates all details for a single task execution entity. +A task execution represents an instantiated task, including all inputs and additional +metadata as well as computed results included state, outputs, and duration-based attributes. + + + +.. csv-table:: TaskExecution type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + "id", ":ref:`ref_flyteidl.core.TaskExecutionIdentifier`", "", "Unique identifier for the task execution." + "input_uri", ":ref:`ref_string`", "", "Path to remote data store where input blob is stored." + "closure", ":ref:`ref_flyteidl.admin.TaskExecutionClosure`", "", "Task execution details and results." + "is_parent", ":ref:`ref_bool`", "", "Whether this task spawned nodes." @@ -3095,20 +2989,32 @@ Empty request for GetVersion -.. _ref_flyteidl.admin.GetVersionResponse: +.. _ref_flyteidl.admin.TaskExecutionClosure: -GetVersionResponse +TaskExecutionClosure ------------------------------------------------------------------ -Response for the GetVersion API +Container for task execution details and results. -.. csv-table:: GetVersionResponse type fields +.. csv-table:: TaskExecutionClosure type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "control_plane_version", ":ref:`ref_flyteidl.admin.Version`", "", "The control plane version information. FlyteAdmin and related components form the control plane of Flyte" + "output_uri", ":ref:`ref_string`", "", "**Deprecated.** Path to remote data store where output blob is stored if the execution succeeded (and produced outputs). DEPRECATED. Use GetTaskExecutionData to fetch output data instead." + "error", ":ref:`ref_flyteidl.core.ExecutionError`", "", "Error information for the task execution. Populated if the execution failed." + "output_data", ":ref:`ref_flyteidl.core.LiteralMap`", "", "**Deprecated.** Raw output data produced by this task execution. DEPRECATED. Use GetTaskExecutionData to fetch output data instead." + "phase", ":ref:`ref_flyteidl.core.TaskExecution.Phase`", "", "The last recorded phase for this task execution." + "logs", ":ref:`ref_flyteidl.core.TaskLog`", "repeated", "Detailed log information output by the task execution." + "started_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Time at which the task execution began running." + "duration", ":ref:`ref_google.protobuf.Duration`", "", "The amount of time the task execution spent running." + "created_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Time at which the task execution was created." + "updated_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Time at which the task execution was last updated." + "custom_info", ":ref:`ref_google.protobuf.Struct`", "", "Custom data specific to the task plugin." + "reason", ":ref:`ref_string`", "", "If there is an explanation for the most recent phase transition, the reason will capture it." + "task_type", ":ref:`ref_string`", "", "A predefined yet extensible Task type identifier." + "metadata", ":ref:`ref_flyteidl.event.TaskExecutionMetadata`", "", "Metadata around how a task was executed." @@ -3116,65 +3022,67 @@ Response for the GetVersion API -.. _ref_flyteidl.admin.Version: +.. _ref_flyteidl.admin.TaskExecutionGetDataRequest: -Version +TaskExecutionGetDataRequest ------------------------------------------------------------------ -Provides Version information for a component +Request structure to fetch inputs and output for a task execution. +By default this data is not returned inline in :ref:`ref_flyteidl.admin.TaskExecutionGetRequest` -.. csv-table:: Version type fields +.. csv-table:: TaskExecutionGetDataRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "Build", ":ref:`ref_string`", "", "Specifies the GIT sha of the build" - "Version", ":ref:`ref_string`", "", "Version for the build, should follow a semver" - "BuildTime", ":ref:`ref_string`", "", "Build timestamp" - + "id", ":ref:`ref_flyteidl.core.TaskExecutionIdentifier`", "", "The identifier of the task execution for which to fetch inputs and outputs. +required" - - - - +.. _ref_flyteidl.admin.TaskExecutionGetDataResponse: +TaskExecutionGetDataResponse +------------------------------------------------------------------ +Response structure for TaskExecutionGetDataRequest which contains inputs and outputs for a task execution. -.. _ref_flyteidl/admin/workflow_attributes.proto: -flyteidl/admin/workflow_attributes.proto -================================================================== +.. csv-table:: TaskExecutionGetDataResponse type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + "inputs", ":ref:`ref_flyteidl.admin.UrlBlob`", "", "**Deprecated.** Signed url to fetch a core.LiteralMap of task execution inputs. Deprecated: Please use full_inputs instead." + "outputs", ":ref:`ref_flyteidl.admin.UrlBlob`", "", "**Deprecated.** Signed url to fetch a core.LiteralMap of task execution outputs. Deprecated: Please use full_outputs instead." + "full_inputs", ":ref:`ref_flyteidl.core.LiteralMap`", "", "Full_inputs will only be populated if they are under a configured size threshold." + "full_outputs", ":ref:`ref_flyteidl.core.LiteralMap`", "", "Full_outputs will only be populated if they are under a configured size threshold." -.. _ref_flyteidl.admin.WorkflowAttributes: -WorkflowAttributes ------------------------------------------------------------------- -Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +.. _ref_flyteidl.admin.TaskExecutionGetRequest: +TaskExecutionGetRequest +------------------------------------------------------------------ -.. csv-table:: WorkflowAttributes type fields +A message used to fetch a single task execution entity. +See :ref:`ref_flyteidl.admin.TaskExecution` for more details + + + +.. csv-table:: TaskExecutionGetRequest type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "project", ":ref:`ref_string`", "", "Unique project id for which this set of attributes will be applied." - "domain", ":ref:`ref_string`", "", "Unique domain id for which this set of attributes will be applied." - "workflow", ":ref:`ref_string`", "", "Workflow name for which this set of attributes will be applied." - "matching_attributes", ":ref:`ref_flyteidl.admin.MatchingAttributes`", "", "" + "id", ":ref:`ref_flyteidl.core.TaskExecutionIdentifier`", "", "Unique identifier for the task execution. +required" @@ -3182,24 +3090,22 @@ For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAtt -.. _ref_flyteidl.admin.WorkflowAttributesDeleteRequest: +.. _ref_flyteidl.admin.TaskExecutionList: -WorkflowAttributesDeleteRequest +TaskExecutionList ------------------------------------------------------------------ -Request to delete a set matchable workflow attribute override. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +Response structure for a query to list of task execution entities. +See :ref:`ref_flyteidl.admin.TaskExecution` for more details -.. csv-table:: WorkflowAttributesDeleteRequest type fields +.. csv-table:: TaskExecutionList type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" - "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" - "workflow", ":ref:`ref_string`", "", "Workflow name which this set of attributes references. +required" - "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to delete. +required" + "task_executions", ":ref:`ref_flyteidl.admin.TaskExecution`", "repeated", "" + "token", ":ref:`ref_string`", "", "In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. If there are no more results, this value will be empty." @@ -3207,59 +3113,57 @@ For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAtt -.. _ref_flyteidl.admin.WorkflowAttributesDeleteResponse: +.. _ref_flyteidl.admin.TaskExecutionListRequest: -WorkflowAttributesDeleteResponse +TaskExecutionListRequest ------------------------------------------------------------------ -Purposefully empty, may be populated in the future. - +Represents a request structure to retrieve a list of task execution entities yielded by a specific node execution. +See :ref:`ref_flyteidl.admin.TaskExecution` for more details +.. csv-table:: TaskExecutionListRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + "node_execution_id", ":ref:`ref_flyteidl.core.NodeExecutionIdentifier`", "", "Indicates the node execution to filter by. +required" + "limit", ":ref:`ref_uint32`", "", "Indicates the number of resources to be returned. +required" + "token", ":ref:`ref_string`", "", "In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. +optional" + "filters", ":ref:`ref_string`", "", "Indicates a list of filters passed as string. More info on constructing filters : +optional" + "sort_by", ":ref:`ref_flyteidl.admin.Sort`", "", "Sort ordering for returned list. +optional" -.. _ref_flyteidl.admin.WorkflowAttributesGetRequest: -WorkflowAttributesGetRequest ------------------------------------------------------------------- - -Request to get an individual workflow attribute override. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + -.. csv-table:: WorkflowAttributesGetRequest type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto + - "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" - "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" - "workflow", ":ref:`ref_string`", "", "Workflow name which this set of attributes references. +required" - "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to return. +required" + +.. _ref_flyteidl/admin/version.proto: +flyteidl/admin/version.proto +================================================================== -.. _ref_flyteidl.admin.WorkflowAttributesGetResponse: -WorkflowAttributesGetResponse ------------------------------------------------------------------- -Response to get an individual workflow attribute override. +.. _ref_flyteidl.admin.GetVersionRequest: +GetVersionRequest +------------------------------------------------------------------ -.. csv-table:: WorkflowAttributesGetResponse type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto +Empty request for GetVersion - "attributes", ":ref:`ref_flyteidl.admin.WorkflowAttributes`", "", "" @@ -3267,21 +3171,20 @@ Response to get an individual workflow attribute override. -.. _ref_flyteidl.admin.WorkflowAttributesUpdateRequest: +.. _ref_flyteidl.admin.GetVersionResponse: -WorkflowAttributesUpdateRequest +GetVersionResponse ------------------------------------------------------------------ -Sets custom attributes for a project, domain and workflow combination. -For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +Response for the GetVersion API -.. csv-table:: WorkflowAttributesUpdateRequest type fields +.. csv-table:: GetVersionResponse type fields :header: "Field", "Type", "Label", "Description" :widths: auto - "attributes", ":ref:`ref_flyteidl.admin.WorkflowAttributes`", "", "" + "control_plane_version", ":ref:`ref_flyteidl.admin.Version`", "", "The control plane version information. FlyteAdmin and related components form the control plane of Flyte" @@ -3289,15 +3192,24 @@ For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAtt -.. _ref_flyteidl.admin.WorkflowAttributesUpdateResponse: +.. _ref_flyteidl.admin.Version: -WorkflowAttributesUpdateResponse +Version ------------------------------------------------------------------ -Purposefully empty, may be populated in the future. +Provides Version information for a component +.. csv-table:: Version type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "Build", ":ref:`ref_string`", "", "Specifies the GIT sha of the build" + "Version", ":ref:`ref_string`", "", "Version for the build, should follow a semver" + "BuildTime", ":ref:`ref_string`", "", "Build timestamp" + + @@ -3447,6 +3359,170 @@ Represents a structure that encapsulates the specification of the workflow. + + + + + + + + + + + +.. _ref_flyteidl/admin/workflow_attributes.proto: + +flyteidl/admin/workflow_attributes.proto +================================================================== + + + + + +.. _ref_flyteidl.admin.WorkflowAttributes: + +WorkflowAttributes +------------------------------------------------------------------ + +Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: WorkflowAttributes type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "project", ":ref:`ref_string`", "", "Unique project id for which this set of attributes will be applied." + "domain", ":ref:`ref_string`", "", "Unique domain id for which this set of attributes will be applied." + "workflow", ":ref:`ref_string`", "", "Workflow name for which this set of attributes will be applied." + "matching_attributes", ":ref:`ref_flyteidl.admin.MatchingAttributes`", "", "" + + + + + + + +.. _ref_flyteidl.admin.WorkflowAttributesDeleteRequest: + +WorkflowAttributesDeleteRequest +------------------------------------------------------------------ + +Request to delete a set matchable workflow attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: WorkflowAttributesDeleteRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" + "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" + "workflow", ":ref:`ref_string`", "", "Workflow name which this set of attributes references. +required" + "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to delete. +required" + + + + + + + +.. _ref_flyteidl.admin.WorkflowAttributesDeleteResponse: + +WorkflowAttributesDeleteResponse +------------------------------------------------------------------ + +Purposefully empty, may be populated in the future. + + + + + + + + +.. _ref_flyteidl.admin.WorkflowAttributesGetRequest: + +WorkflowAttributesGetRequest +------------------------------------------------------------------ + +Request to get an individual workflow attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: WorkflowAttributesGetRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" + "domain", ":ref:`ref_string`", "", "Unique domain id which this set of attributes references. +required" + "workflow", ":ref:`ref_string`", "", "Workflow name which this set of attributes references. +required" + "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to return. +required" + + + + + + + +.. _ref_flyteidl.admin.WorkflowAttributesGetResponse: + +WorkflowAttributesGetResponse +------------------------------------------------------------------ + +Response to get an individual workflow attribute override. + + + +.. csv-table:: WorkflowAttributesGetResponse type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "attributes", ":ref:`ref_flyteidl.admin.WorkflowAttributes`", "", "" + + + + + + + +.. _ref_flyteidl.admin.WorkflowAttributesUpdateRequest: + +WorkflowAttributesUpdateRequest +------------------------------------------------------------------ + +Sets custom attributes for a project, domain and workflow combination. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: WorkflowAttributesUpdateRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "attributes", ":ref:`ref_flyteidl.admin.WorkflowAttributes`", "", "" + + + + + + + +.. _ref_flyteidl.admin.WorkflowAttributesUpdateResponse: + +WorkflowAttributesUpdateResponse +------------------------------------------------------------------ + +Purposefully empty, may be populated in the future. + + + + + + diff --git a/flyteidl/protos/docs/core/core.rst b/flyteidl/protos/docs/core/core.rst index ae49ed65d8..b1a5ac7317 100644 --- a/flyteidl/protos/docs/core/core.rst +++ b/flyteidl/protos/docs/core/core.rst @@ -2571,46 +2571,6 @@ Define a set of simple types. -.. _ref_flyteidl/core/workflow_closure.proto: - -flyteidl/core/workflow_closure.proto -================================================================== - - - - - -.. _ref_flyteidl.core.WorkflowClosure: - -WorkflowClosure ------------------------------------------------------------------- - -Defines an enclosed package of workflow and tasks it references. - - - -.. csv-table:: WorkflowClosure type fields - :header: "Field", "Type", "Label", "Description" - :widths: auto - - "workflow", ":ref:`ref_flyteidl.core.WorkflowTemplate`", "", "required. Workflow template." - "tasks", ":ref:`ref_flyteidl.core.TaskTemplate`", "repeated", "optional. A collection of tasks referenced by the workflow. Only needed if the workflow references tasks." - - - - - - - - - - - - - - - - .. _ref_flyteidl/core/workflow.proto: flyteidl/core/workflow.proto @@ -2931,6 +2891,46 @@ Failure Handling Strategy +.. _ref_flyteidl/core/workflow_closure.proto: + +flyteidl/core/workflow_closure.proto +================================================================== + + + + + +.. _ref_flyteidl.core.WorkflowClosure: + +WorkflowClosure +------------------------------------------------------------------ + +Defines an enclosed package of workflow and tasks it references. + + + +.. csv-table:: WorkflowClosure type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "workflow", ":ref:`ref_flyteidl.core.WorkflowTemplate`", "", "required. Workflow template." + "tasks", ":ref:`ref_flyteidl.core.TaskTemplate`", "repeated", "optional. A collection of tasks referenced by the workflow. Only needed if the workflow references tasks." + + + + + + + + + + + + + + + + .. _ref_google/protobuf/timestamp.proto: google/protobuf/timestamp.proto diff --git a/flyteidl/protos/docs/service/service.rst b/flyteidl/protos/docs/service/service.rst index 795fc5c5f1..01778ce94f 100644 --- a/flyteidl/protos/docs/service/service.rst +++ b/flyteidl/protos/docs/service/service.rst @@ -51,6 +51,7 @@ Standard response codes for both are defined here: https://github.com/grpc-ecosy "RelaunchExecution", ":ref:`ref_flyteidl.admin.ExecutionRelaunchRequest`", ":ref:`ref_flyteidl.admin.ExecutionCreateResponse`", "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`" "RecoverExecution", ":ref:`ref_flyteidl.admin.ExecutionRecoverRequest`", ":ref:`ref_flyteidl.admin.ExecutionCreateResponse`", "Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details." "GetExecution", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest`", ":ref:`ref_flyteidl.admin.Execution`", "Fetches a :ref:`ref_flyteidl.admin.Execution`." + "UpdateExecution", ":ref:`ref_flyteidl.admin.ExecutionUpdateRequest`", ":ref:`ref_flyteidl.admin.ExecutionUpdateResponse`", "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`." "GetExecutionData", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetDataRequest`", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetDataResponse`", "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`." "ListExecutions", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.ExecutionList`", "Fetch a list of :ref:`ref_flyteidl.admin.Execution`." "TerminateExecution", ":ref:`ref_flyteidl.admin.ExecutionTerminateRequest`", ":ref:`ref_flyteidl.admin.ExecutionTerminateResponse`", "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`." diff --git a/flyteidl/protos/flyteidl/admin/execution.proto b/flyteidl/protos/flyteidl/admin/execution.proto index 6a89d5b2de..2c152640fe 100644 --- a/flyteidl/protos/flyteidl/admin/execution.proto +++ b/flyteidl/protos/flyteidl/admin/execution.proto @@ -169,6 +169,9 @@ message ExecutionClosure { // Identifies the workflow definition for this execution. core.Identifier workflow_id = 11; + + // Provides the details of the last stage change + ExecutionStateChangeDetails state_change_details = 14; } // Represents system, rather than user-facing, metadata about an execution. @@ -320,3 +323,33 @@ message WorkflowExecutionGetDataResponse { // Full_outputs will only be populated if they are under a configured size threshold. core.LiteralMap full_outputs = 4; } + +// The state of the execution is used to control its visibility in the UI/CLI. +enum ExecutionState { + // By default, all executions are considered active. + EXECUTION_ACTIVE = 0; + + // Archived executions are no longer visible in the UI. + EXECUTION_ARCHIVED = 1; +} + +message ExecutionUpdateRequest { + // Identifier of the execution to update + core.WorkflowExecutionIdentifier id = 1; + + // State to set as the new value active/archive + ExecutionState state = 2; +} + +message ExecutionStateChangeDetails { + // The state of the execution is used to control its visibility in the UI/CLI. + ExecutionState state = 1; + + // This timestamp represents when the state changed. + google.protobuf.Timestamp occurred_at = 2; + + // Identifies the entity (if any) responsible for causing the state change of the execution + string principal = 3; +} + +message ExecutionUpdateResponse {} \ No newline at end of file diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index 8684ce8b26..ca612515be 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -277,6 +277,17 @@ service AdminService { }; } + // Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. + rpc UpdateExecution (flyteidl.admin.ExecutionUpdateRequest) returns (flyteidl.admin.ExecutionUpdateResponse) { + option (google.api.http) = { + put: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "Update execution belonging to project domain." + }; + } + // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. rpc GetExecutionData (flyteidl.admin.WorkflowExecutionGetDataRequest) returns (flyteidl.admin.WorkflowExecutionGetDataResponse) { option (google.api.http) = {